D3DKMTUpdateGpuVirtualAddress-Funktion (d3dkmthk.h)

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

Syntax

NTSTATUS D3DKMTUpdateGpuVirtualAddress(
  [in] const D3DKMT_UPDATEGPUVIRTUALADDRESS *unnamedParam1
);

Parameter

[in] unnamedParam1

Ein Zeiger auf eine D3DKMT_UPDATEGPUVIRTUALADDRESS Struktur, die den Vorgang beschreibt.

Rückgabewert

Rückgabecode Beschreibung
STATUS_SUCCESS Der Gerätekontext wurde erfolgreich erstellt.
STATUS_INVALID_PARAMETER Die Parameter wurden überprüft und als falsch ermittelt.

Diese Funktion gibt möglicherweise auch andere NTSTATUS-Werte zurück.

Hinweise

Der Bereich der virtuellen GPU-Adressen (Graphics Processing Unit) in allen Vorgängen (mit Ausnahme der Quelle der Kopiervorgänge) muss zu einem einzelnen virtuellen Adressbereich gehören, der durch Aufrufen von ReserveGpuVirtualAddressRange abgerufen wurde. Ebenso müssen die virtuellen Adressbereiche aller Quellen in Kopiervorgängen zu einem einzelnen virtuellen Adressbereich gehören, der durch Aufrufen von ReserveGpuVirtualAddressRange 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.

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 UpdateVirtualAddress-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.

Treiber können viele UpdateGpuVirtualAddress-Aufrufe senden, die hinter dem Renderingzaun in die Warteschlange eingereiht werden. 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 Universell
Header d3dkmthk.h (include D3dkmthk.h)
Bibliothek Gdi32.lib
DLL Gdi32.dll

Weitere Informationen

D3DKMT_UPDATEGPUVIRTUALADDRESS

ReserveGpuVirtualAddressRange