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