Condividi tramite


PFND3DDDI_UPDATEGPUVIRTUALADDRESSCB funzione di callback (d3dumddi.h)

pfnUpdateGpuVirtualAddressCb è un'operazione speciale usata nel contesto delle risorse del riquadro. Consente al driver in modalità utente di specificare una serie di operazioni di mapping da applicare allo spazio indirizzi virtuale del processo in un singolo batch di aggiornamenti della tabella di pagine.

L'intervallo di indirizzi virtuali dell'unità di elaborazione grafica (GPU) in tutte le operazioni (ad eccezione dell'indirizzo di origine delle operazioni di copia) deve appartenere a un singolo intervallo di indirizzi virtuali ottenuto chiamando pfnReserveGpuVirtualAddressCb. 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 pfnReserveGpuVirtualAddressCb.

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.

Sintassi

PFND3DDDI_UPDATEGPUVIRTUALADDRESSCB Pfnd3dddiUpdategpuvirtualaddresscb;

HRESULT Pfnd3dddiUpdategpuvirtualaddresscb(
  HANDLE hDevice,
  const D3DDDICB_UPDATEGPUVIRTUALADDRESS *unnamedParam2
)
{...}

Parametri

hDevice

Handle per il dispositivo di visualizzazione.

unnamedParam2

pData [in]

Puntatore a una struttura D3DDDICB_UPDATEGPUVIRTUALADDRESS che descrive l'operazione da eseguire.

Valore restituito

Se la funzione di callback ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT.

Osservazioni

Gli intervalli di indirizzi virtuali nelle operazioni di aggiornamento possono intersecarsi. Le operazioni verranno applicate nell'ordine in cui vengono inviate.

In un singolo pfnUpdateVirtualAddressCb 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).
Il driver in modalità utente può inviare molte pfnUpdateGpuVirtualAddressCb chiamate e operazioni 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 Desktop
intestazione d3dumddi.h (include D3dumddi.h)

Vedere anche

D3DDDICB_UPDATEGPUVIRTUALADDRESS

pfnReserveGpuVirtualAddressCb