DXGKARG_SUBMITCOMMANDTOHWQUEUE structure (d3dkmddi.h)
Arguments used to submit a command to the hardware queue.
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;
Members
[in] hHwQueue
Hardware queue being submitted to.
HwQueueProgressFenceId
Hardware queue progress fence ID that will be signaled when the Present Blt is done on the GPU.
DmaBufferVirtualAddress
The virtual address of the DMA buffer to be executed on the GPU.
DmaBufferSize
The size of the DMA buffer to be executed on the GPU.
DmaBufferPrivateDataSize
The buffer's private data size.
pDmaBufferPrivateData
Binary data that is passed by the user mode DDI callback pfnSubmitToHwQueueCb, for command submissions from user mode, or for kernel mode submissions such as Present Blt, private driver data buffer filled out by DdiPresent.
Important
The private driver data buffer will be freed upon the return from DxgkDdiSubmitCommandToHwQueue. This is different from WDDM 2.0-2.3, where the private driver data lifetime is extended until the command buffer completion on the GPU.
Flags
These will be set to zero for user mode driver generated command buffers. Kernel mode driver DdiPresentToHwQueue generated command buffers will have Present flag set to 1.
HwQueueProgressFenceGpuVa
GPU VA (video acceleration) of the fence that will be signaled upon this DMA buffer completion.
HwQueueProgressFenceCpuVa
Kernel mode CPU VA of the fence that will be signaled upon this DMA buffer completion.
If the node being submitted to has RingBufferFenceRelease cap set to 0, the fence update is inserted by the user mode driver as the last instruction at the end of the DMA buffer, or for kernel submissions, by the kernel mode driver in response to DdiSignalMonitoredFence call.
If the node being submitted to has RingBufferFenceRelease cap set to 1, the fence update is performed after the DMA buffer is no longer in use by either GPU or CPU. Exact mechanics of the fence update are up to the KMD/GPU. As an example, it can be done by the context management processor hardware when retiring the DMA buffer, or by the KMD.
Requirements
Requirement | Value |
---|---|
Header | d3dkmddi.h |