DXGKARG_CREATEHWQUEUE Struktur (d3dkmddi.h)
Die DXGKARG_CREATEHWQUEUE-Struktur wird mit DxgkDdiCreateHwQueue- verwendet, um eine Hardwarewarteschlange zu erstellen.
Syntax
typedef struct _DXGKARG_CREATEHWQUEUE {
HANDLE hHwQueue;
D3DDDI_CREATEHWQUEUEFLAGS Flags;
UINT PrivateDriverDataSize;
VOID *pPrivateDriverData;
D3DKMT_HANDLE hHwQueueProgressFence;
VOID *HwQueueProgressFenceCPUVirtualAddress;
D3DGPU_VIRTUAL_ADDRESS HwQueueProgressFenceGPUVirtualAddress;
} DXGKARG_CREATEHWQUEUE;
Angehörige
hHwQueue
[in/out] Bei eingaben Dxgkrnl's handle to the hardware queue. Bei der Ausgabe übernimmt der Treiberhandle die Hardwarewarteschlange.
Flags
[in] Eine D3DDDI_CREATEHWQUEUEFLAGS Struktur, die die Flags für die Warteschlangenerstellung enthält.
PrivateDriverDataSize
[in] Größe in Byte der privaten Treiberdaten, auf die pPrivateDriverData verweist.
pPrivateDriverData
[in/out] Zeiger auf die privaten Treiberdaten, die vom pfnCreateHwContextCb-Funktion des Benutzermodustreibers übergeben wurden. Da pPrivateDriverData- ein In-Out-Parameter ist, kann KMD auch private Daten zurück an die UMD zurückgeben.
hHwQueueProgressFence
[in] Behandeln Sie das GPU-Synchronisierungsobjekt, das vom Betriebssystem für diese Hardwarewarteschlange erstellt wurde. Der Statuszaun wird verwendet, um den DMA-Pufferabschluss in dieser Hardwarewarteschlange zu synchronisieren. Siehe Anmerkungen.
HwQueueProgressFenceCPUVirtualAddress
[in] Virtuelle CPU-Adresse im Kernelmodus, die verwendet werden kann, um den aktuell signalierten Wert des Statuszauns der Hardwarewarteschlange zu lesen.
HwQueueProgressFenceGPUVirtualAddress
[in] Virtuelle GPU-Adresse, die verwendet werden kann, um den Wert des Statuszauns der Hardwarewarteschlange zu lesen oder zu schreiben. Der Wert des Warteschlangenstatus-Zauns muss monoton mit jeder neuen Übermittlung an die Hardwarewarteschlange erhöht werden. GPU-Anweisungen zum Aktualisieren des Warteschlangenstatuszauns müssen vom Benutzermodustreiber am Ende des DMA-Puffers eingefügt werden, der nachverfolgt wird.
Bemerkungen
Für Kernel-Übermittlungen HWQueues wird das Betriebssystem den Statuszaun als systemeigenen Zauntyp auf GPUs zuweisen, die systemeigene Zäune unterstützen. Wenn das NativeProgressFence--Flag festgelegt ist, muss das DxgkDdiCreateHwQueue- das entsprechende hHwQueueNativeProgressFence Feld lesen, das das Treiberhandle für das systemeigene Zaunobjekt angibt, das zuvor in DxgkDdiCreateNativeFenceerstellt wurde. Wenn die NativeProgressFence Flag FALSCH ist, ist der Fortschrittszaun dieses HWQueue ein reguläres überwachtes Zaunobjekt, und KMD muss das Legacy-hHwQueueProgressFence Feld wie zuvor lesen.
Beim Erstellen eines nativen Zauns für eine HWQueue wird das Betriebssystem auch D3DKMT_CREATEHWQUEUE::Flags.NativeProgressFence auf TRUE festgelegt, sodass die Laufzeit auch weiß, dass der Fortschrittszaun des HWQueue als nativen Zaun zugewiesen wurde.
Für die Benutzerübermittlung HWQueues weist os seinen Statuszaun als nativen Zaun in DxgkDdiCreateHwQueueForUserModeSubmission() nach Definition zu.
Hinweis zur Treiberkompatibilität: Dxgkrnl- schreibt nur in das hHwQueueNativeProgressFence Feld für Treiber, die die NativeGpuFence Cap unterstützen. Dadurch wird sichergestellt, dass das Betriebssystem nur auf dieses Feld in der Entwicklung und zukünftigen Treiber verweist, die mit diesem aktualisierten Header kompiliert werden. KMD liest dieses Feld nur, wenn DXGKARG_CREATEHWQUEUE. Flags.NativeProgressFence ist TRUE. Dadurch wird sichergestellt, dass KMD nur auf dieses Feld auf den neuesten Betriebssystembuilds verweist, die systemeigene Fortschrittszäune und diesen aktualisierten Header unterstützen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 10, Version 1703 (WDDM 2.2) |
Header- | d3dkmddi.h |