Condividi tramite


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

Vedere anche

D3DKMT_UPDATEGPUVIRTUALADDRESS

ReserveGpuVirtualAddressRange