Funzione D3DKMTUpdateGpuVirtualAddress (d3dkmthk.h)
D3DKMTUpdateGpuVirtualAddress è un'operazione speciale usata nel contesto delle risorse del riquadro. Consente al driver di specificare una serie di operazioni di mapping da applicare allo spazio indirizzi virtuale del processo in un singolo batch di aggiornamenti delle tabelle di pagine.
Sintassi
NTSTATUS D3DKMTUpdateGpuVirtualAddress(
[in] const D3DKMT_UPDATEGPUVIRTUALADDRESS *unnamedParam1
);
Parametri
[in] unnamedParam1
Puntatore a una struttura D3DKMT_UPDATEGPUVIRTUALADDRESS che descrive l'operazione.
Valore restituito
Codice restituito | Descrizione |
---|---|
STATUS_SUCCESS | Il contesto del dispositivo è stato creato correttamente. |
STATUS_INVALID_PARAMETER | I parametri sono stati convalidati e sono stati determinati in modo che non siano corretti. |
Questa funzione potrebbe restituire anche altri valori NTSTATUS.
Osservazioni
L'intervallo di indirizzi virtuali dell'unità di elaborazione grafica (GPU) in tutte le operazioni (ad eccezione dell'origine delle operazioni di copia) deve appartenere a un singolo intervallo di indirizzi virtuali ottenuto chiamando ReserveGpuVirtualAddressRange. Analogamente, gli intervalli di indirizzi virtuali di tutte le origini nelle operazioni di copia devono appartenere a un singolo intervallo di indirizzi virtuali, ottenuto chiamando ReserveGpuVirtualAddressRange.
Gli aggiornamenti della tabella di pagina vengono eseguiti in un contesto di paging, dedicato al contesto di rendering specificato e eseguiti sulla GPU solo dopo che il contesto di rendering associato ha segnalato FenceValue per l'oggetto recinto monitorato specificato. Al termine degli aggiornamenti della tabella delle pagine, il contesto di paging segnala all'oggetto di isolamento monitorato di FenceValue+1, consentendo al contesto di rendering di eseguire un'interlock stretta con gli aggiornamenti della tabella della pagina.
Gli intervalli di indirizzi virtuali nelle operazioni di aggiornamento possono intersecarsi. Le operazioni verranno applicate nell'ordine in cui vengono inviate.
In un singolo UpdateVirtualAddress chiamata:
- Tutti gli intervalli di indirizzi virtuali nelle operazioni di mapping e l'intervallo di destinazione nelle operazioni di copia devono appartenere allo stesso intervallo riservato (zero).
- L'intervallo di indirizzi virtuali di origine nelle operazioni di copia può essere compreso in un intervallo riservato diverso (zero).
- L'intervallo di indirizzi virtuali di origine in tutte le operazioni di copia deve appartenere allo stesso intervallo riservato (zero).
I driver possono inviare molti UpdateGpuVirtualAddress chiamate, che verranno accodate dietro il recinto di rendering. Quando il numero di operazioni di aggiornamento in coda supera 128, il thread chiamante verrà bloccato fino a quando le operazioni precedenti non vengono elaborate dalla gestione della memoria video.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 10 |
server minimo supportato | Windows Server 2016 |
piattaforma di destinazione | Universale |
intestazione | d3dkmthk.h (include D3dkmthk.h) |
libreria | Gdi32.lib |
dll | Gdi32.dll |