DXGKARG_SUBMITCOMMANDTOHWQUEUE 结构 (d3dkmddi.h)
用于将命令提交到硬件队列的参数。
语法
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;
成员
[in] hHwQueue
正在提交到的硬件队列。
HwQueueProgressFenceId
在 GPU 上完成 Present Blt 时,将发出信号的硬件队列进度围栏 ID。
DmaBufferVirtualAddress
要对 GPU 执行的 DMA 缓冲区的虚拟地址。
DmaBufferSize
要对 GPU 执行的 DMA 缓冲区的大小。
DmaBufferPrivateDataSize
缓冲区的专用数据大小。
pDmaBufferPrivateData
用户模式 DDI 回调 pfnSubmitToHwQueueCb 传递的二进制数据,用于从用户模式提交命令,或者对于内核模式提交(如 Present Blt),由 DdiPresent 填充的专用驱动程序数据缓冲区。
重要
从 DxgkDdiSubmitCommandToHwQueue 返回后,将释放专用驱动程序数据缓冲区。 这与 WDDM 2.0-2.3 不同,因为 WDDM 2.0-2.3 将专用驱动程序数据生存期延长到 GPU 上的命令缓冲区完成。
Flags
对于用户模式驱动程序生成的命令缓冲区,这些缓冲区将设置为零。 内核模式驱动程序 DdiPresentToHwQueue 生成的命令缓冲区将 Present 标志设置为 1。
HwQueueProgressFenceGpuVa
GPU VA (在此 DMA 缓冲区完成后发出信号的围栏的视频加速) 。
HwQueueProgressFenceCpuVa
在此 DMA 缓冲区完成时将发出信号的围栏的内核模式 CPU VA。
如果提交到的节点将 RingBufferFenceRelease 上限设置为 0,则用户模式驱动程序会将围栏更新作为最后一条指令插入到 DMA 缓冲区末尾,或者由内核模式驱动程序在响应 DdiSignalMonitoredFence 调用时插入内核提交。
如果提交到 的节点将 RingBufferFenceRelease 上限设置为 1,则会在 GPU 或 CPU 不再使用 DMA 缓冲区后执行围栏更新。 围栏更新的确切机制由 KMD/GPU 决定。 例如,可以在停用 DMA 缓冲区时由上下文管理处理器硬件完成此操作,也可以由 KMD 完成。
要求
要求 | 值 |
---|---|
Header | d3dkmddi.h |