D3DDDICB_SUBMITCOMMAND d3dumddi.h (的)

D3DDDICB_SUBMITCOMMAND 结构用于在支持图形处理单元的上下文上提交命令缓冲区 (GPU) 虚拟寻址。

语法

typedef struct _D3DDDICB_SUBMITCOMMAND {
  D3DGPU_VIRTUAL_ADDRESS      Commands;
  UINT                        CommandLength;
  D3DDDICB_SUBMITCOMMANDFLAGS Flags;
  UINT                        BroadcastContextCount;
  HANDLE                      BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
  VOID                        *pPrivateDriverData;
  UINT                        PrivateDriverDataSize;
  UINT                        NumPrimaries;
  D3DKMT_HANDLE               WrittenPrimaries[D3DDDI_MAX_WRITTEN_PRIMARIES];
  D3DDDI_MARKERLOGTYPE        MarkerLogType;
  UINT                        RenderCBSequence;
  union {
    struct {
      UINT FirstAPISequenceNumberHigh;
      UINT CompletedAPISequenceNumberLow0Size;
      UINT CompletedAPISequenceNumberLow1Size;
      UINT BegunAPISequenceNumberLow0Size;
      UINT BegunAPISequenceNumberLow1Size;
    };
    UINT BatchedMarkerDataCount;
  };
  union {
    struct {
      const UINT *pCompletedAPISequenceNumberLow0;
      const UINT *pCompletedAPISequenceNumberLow1;
      const UINT *pBegunAPISequenceNumberLow0;
      const UINT *pBegunAPISequenceNumberLow1;
    };
    const D3DDDI_BATCHEDMARKERDATA *pBatchedMarkerData;
  };
  UINT                        Reserved;
  UINT                        NumHistoryBuffers;
  D3DKMT_HANDLE               *HistoryBufferArray;
  HANDLE                      hSyncToken;
  void                        *pReserved;
} D3DDDICB_SUBMITCOMMAND;

成员

Commands

要提交到上下文以执行的命令的 GPU 虚拟地址。 此信息在命令提交期间提供给内核模式驱动程序,也用于调试目的。

CommandLength

指定提交到 GPU 的命令的长度(以字节为单位)。 此信息在命令提交期间提供给内核模式驱动程序,也用于调试目的。

Flags

结构 D3DDDICB_SUBMITCOMMANDFLAGS实例

BroadcastContextCount

指定这些命令应提交到的上下文数。 此计数必须至少为 1。

BroadcastContext

指定要执行指定命令的上下文句柄。

pPrivateDriverData

指向要作为此提交一部分传递给内核模式驱动程序的驱动程序专用数据的指针。

PrivateDriverDataSize

要传递的专用驱动程序数据信息的大小。 此大小必须小于内核模式驱动程序为提交专用驱动程序数据请求的大小。

NumPrimaries

指定提交的命令要写入的主服务器和交换链后端缓冲区的数量。 这等于 WrittenPrimaries 数组中的分配 数。

WrittenPrimaries

主控点和交换链后端缓冲区的句柄数组,这些缓冲区由提交的命令写入。

MarkerLogType

D3DDDI_MARKERLOGTYPE一个枚举,它指示用户模式显示驱动程序Windows (ETW) 事件跟踪中的标记类型。

RenderCBSequence

每个 pfnRenderCb 函数调用的唯一标识符。 对于与单线程用户模式 DDIS 关联的上下文,从值 1 开始,对于与自由线程用户模式 DDIS 关联的上下文,范围为 0x80000001。 用户模式显示驱动程序必须递增它在任何引擎上进行 的每个 pfnRenderCb 调用的值。

FirstAPISequenceNumberHigh

由驱动程序用来传递上下文的 API 序列号。

CompletedAPISequenceNumberLow0Size

由驱动程序用来传递上下文的 API 序列号。

CompletedAPISequenceNumberLow1Size

由驱动程序用来传递上下文的 API 序列号。

BegunAPISequenceNumberLow0Size

由驱动程序用来传递上下文的 API 序列号。

BegunAPISequenceNumberLow1Size

由驱动程序用来传递上下文的 API 序列号。

BatchedMarkerDataCount

pCompletedAPISequenceNumberLow0

驱动程序用于传递上下文的 API 序列号的指针。

pCompletedAPISequenceNumberLow1

驱动程序用于传递上下文的 API 序列号的指针。

pBegunAPISequenceNumberLow0

驱动程序用于传递上下文的 API 序列号的指针。

pBegunAPISequenceNumberLow1

驱动程序用于传递上下文的 API 序列号的指针。

pBatchedMarkerData

Reserved

此成员是保留成员,应设置为零。

NumHistoryBuffers

历史记录缓冲区的数量。

HistoryBufferArray

指向历史记录缓冲区数组的指针。

hSyncToken

pReserved

注解

pfnSubmitCommandCb 代码路径不再为用户模式驱动程序提供分配列表,以提供将在此命令期间读取和写入的分配列表。 但是,必须同步某些写入,如果没有分配列表,通常不会知道这些写入。 为此,这是一个新的小型分配列表,专用于将写入和用于显示内容的图面。 WrittenPrimaries 数组应用于提供此类分配。

尽管名称不同, 但 WrittenPrimaries 必须包含根据运行时以及主表被视为 SwapChainBackBuffer 分配的分配。 这会通过用户模式驱动程序中的新标志向用户D3D10_DDI_RESOURCE_MISC_FLAG。 在调用 以创建为 FlipEx 交换链或主D3DWDDM2_0DDI_RESOURCE_MISC_DISPLAYABLE_SURFACE的资源或堆时,运行时会向用户模式驱动程序提供属性标志。 驱动程序可以使用此标志来确定应放入 Microsoft Direct3D 11 的 WrittenPrimaries 列表中的所有分配。 其他运行时未更改。

如果驱动程序收到对此标志 的 CreateResource 的调用,则应在写入图面的每次 pfnSubmitCommandCb 调用上将分配添加到此列表。

要求

   
最低受支持的客户端 Windows 10
最低受支持的服务器 Windows Server 2016
标头 d3dumddi.h (包括 D3dumddi.h)

请参阅

D3D10_DDI_RESOURCE_MISC_FLAG

pfnRenderCb

pfnSubmitCommandCb