DXGKARG_SUBMITCOMMANDTOHWQUEUE-Struktur (d3dkmddi.h)
Argumente, die zum Übermitteln eines Befehls an die Hardwarewarteschlange verwendet werden.
Syntax
typedef struct _DXGKARG_SUBMITCOMMANDTOHWQUEUE {
[in] HANDLE hHwQueue;
UINT64 HwQueueProgressFenceId;
D3DGPU_VIRTUAL_ADDRESS DmaBufferVirtualAddress;
UINT DmaBufferSize;
UINT DmaBufferPrivateDataSize;
VOID *pDmaBufferPrivateData;
DXGK_SUBMITCOMMANDFLAGS Flags;
D3DGPU_VIRTUAL_ADDRESS HwQueueProgressFenceGpuVa;
VOID *HwQueueProgressFenceCpuVa;
} DXGKARG_SUBMITCOMMANDTOHWQUEUE;
Member
[in] hHwQueue
Hardwarewarteschlange, an die übermittelt wird.
HwQueueProgressFenceId
Statusstatus-ID der Hardwarewarteschlange, die signalisiert wird, wenn das Present Blt auf der GPU ausgeführt wird.
DmaBufferVirtualAddress
Die virtuelle Adresse des DMA-Puffers, der auf der GPU ausgeführt werden soll.
DmaBufferSize
Die Größe des DMA-Puffers, der auf der GPU ausgeführt werden soll.
DmaBufferPrivateDataSize
Die private Datengröße des Puffers.
pDmaBufferPrivateData
Binärdaten, die vom DDI-Rückruf pfnSubmitToHwQueueCb im Benutzermodus übergeben werden, für Befehlsübermittlungen aus dem Benutzermodus oder für Kernelmodusübermittlungen wie Present Blt, private Treiberdatenpuffer, der von DdiPresent ausgefüllt wurde.
Wichtig
Der datenpuffer des privaten Treibers wird bei der Rückgabe von DxgkDdiSubmitCommandToHwQueue freigegeben. Dies unterscheidet sich von WDDM 2.0-2.3, bei dem die Datenlebensdauer des privaten Treibers bis zum Abschluss des Befehlspuffers auf der GPU verlängert wird.
Flags
Diese werden für vom Benutzermodustreiber generierte Befehlspuffer auf 0 festgelegt. Für die vom Kernelmodustreiber DdiPresentToHwQueue generierten Befehlspuffer ist present flag auf 1 festgelegt.
HwQueueProgressFenceGpuVa
GPU VA (Videobeschleunigung) des Zauns, der bei Abschluss dieses DMA-Puffers signalisiert wird.
HwQueueProgressFenceCpuVa
CPU-VA im Kernelmodus des Zauns, der bei Abschluss dieses DMA-Puffers signalisiert wird.
Wenn für den Knoten, an den übermittelt wird, die RingBufferFenceRelease-Obergrenze auf 0 festgelegt ist, wird das Umgrenzungsupdate vom Benutzermodustreiber als letzte Anweisung am Ende des DMA-Puffers oder für Kernelübermittlungen vom Kernelmodustreiber als Reaktion auf den DdiSignalMonitoredFence-Aufruf eingefügt.
Wenn für den knoten, an den übermittelt wird, die RingBufferFenceRelease-Obergrenze auf 1 festgelegt ist, wird das Fenceupdate ausgeführt, nachdem der DMA-Puffer nicht mehr von GPU oder CPU verwendet wird. Die genaue Mechanik des Zaunupdates ist bis zur KMD/GPU gültig. Dies kann beispielsweise durch die Hardware des Kontextverwaltungsprozessors erfolgen, wenn der DMA-Puffer eingestellt wird, oder durch den KMD.
Anforderungen
Anforderung | Wert |
---|---|
Header | d3dkmddi.h |