PFND3DDDI_UPDATEGPUVIRTUALADDRESSCB Rückruffunktion (d3dumddi.h)

pfnUpdateGpuVirtualAddressCb ist ein spezieller Vorgang, der im Kontext von Kachelressourcen verwendet wird. Dadurch kann der Benutzermodustreiber eine Reihe von Zuordnungsvorgängen angeben, die in einem einzelnen Batch von Seitentabellenupdates auf den virtuellen Adressraum des Prozesses angewendet werden sollen.

Der Bereich der virtuellen GPU-Adressen (Graphics Processing Unit) in allen Vorgängen (mit Ausnahme der Quelladresse von Kopiervorgängen) muss zu einem einzelnen virtuellen Adressbereich gehören, der durch Aufrufen von pfnReserveGpuVirtualAddressCb abgerufen wurde. Ebenso müssen die virtuellen Adressbereiche aller Quellen in Kopiervorgängen zu einem einzelnen virtuellen Adressbereich gehören, der durch Aufrufen von pfnReserveGpuVirtualAddressCb abgerufen wurde.

Die Seitentabellenupdates werden in einem Pagingkontext ausgeführt, dem angegebenen Renderingkontext zugewiesen und nur auf der GPU ausgeführt, nachdem der zugeordnete Renderingkontext FenceValue für das angegebene überwachte Fence-Objekt signalisiert hat. Wenn die Seitentabellenaktualisierungen abgeschlossen sind, signalisiert der Pagingkontext das überwachte Fence-Objekt an FenceValue+1, sodass der Renderingkontext eine enge Verzahnung mit den Seitentabellenupdates durchführen kann.

Syntax

PFND3DDDI_UPDATEGPUVIRTUALADDRESSCB Pfnd3dddiUpdategpuvirtualaddresscb;

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

Parameter

hDevice

Ein Handle für das Anzeigegerät.

unnamedParam2

pData [in]

Ein Zeiger auf eine D3DDDICB_UPDATEGPUVIRTUALADDRESS Struktur, die den auszuführenden Vorgang beschreibt.

Rückgabewert

Wenn diese Rückruffunktion erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.

Hinweise

Die virtuellen Adressbereiche in den Updatevorgängen können sich überschneiden. Die Vorgänge werden in der Reihenfolge angewendet, in der sie übermittelt werden.

In einem einzelnen pfnUpdateVirtualAddressCb-Aufruf :

  • Alle virtuellen Adressbereiche in Zuordnungsvorgängen und der Zielbereich bei Kopiervorgängen müssen demselben reservierten Bereich (null) angehören.
  • Der virtuelle Quelladressbereich bei Kopiervorgängen darf aus einem anderen reservierten Bereich (null) stammen.
  • Der virtuelle Quelladressbereich in allen Kopiervorgängen muss zum gleichen reservierten Bereich (null) gehören.
Der Benutzermodustreiber kann viele pfnUpdateGpuVirtualAddressCb-Aufrufe übermitteln, und Vorgänge werden hinter dem Renderingzaun in die Warteschlange gestellt. Wenn die Anzahl von Aktualisierungsvorgängen in der Warteschlange 128 überschreitet, wird der aufrufende Thread blockiert, bis die vorherigen Vorgänge vom Videospeicher-Manager verarbeitet wurden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10
Unterstützte Mindestversion (Server) Windows Server 2016
Zielplattform Desktop
Kopfzeile d3dumddi.h (include D3dumddi.h)

Weitere Informationen

D3DDDICB_UPDATEGPUVIRTUALADDRESS

pfnReserveGpuVirtualAddressCb