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[D3DDDI_MAX_BROADCAST_CONTEXT]

指定要執行指定命令之內容的句柄。

pPrivateDriverData

要在此提交過程中傳遞至核心模式驅動程式之驅動程式私用數據的指標。

PrivateDriverDataSize

正在傳遞的私人驅動程式數據資訊大小。 此大小必須小於提交私人驅動程序數據的核心模式驅動程式所要求的大小。

NumPrimaries

指定送出命令寫入的主要複本和交換鏈回緩衝區數目。 這等於 WrittenPrimaries 陣列中的配置數目。

WrittenPrimaries[D3DDDI_MAX_WRITTEN_PRIMARIES]

由提交命令寫入的主要和交換鏈回緩衝區的句柄陣列。

MarkerLogType

D3DDDI_MARKERLOGTYPE列舉,指出使用者模式顯示驅動程式所支援之 Windows 事件追蹤 (ETW) 記錄中的標記類型。

RenderCBSequence

每個 pfnRenderCb 函數調用的唯一標識碼。 針對與單個線程使用者模式 DIS 相關聯的內容,從值 1 開始,針對與自由線程使用者模式 DIS 相關聯的內容,範圍為 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 中的新旗標向使用者模式驅動程序公開。 運行時間會在呼叫期間將 D3DWDDM2_0DDI_RESOURCE_MISC_DISPLAYABLE_SURFACE 旗標提供給使用者模式驅動程式,以建立建立為 FlipEx 交換鏈主要資源的資源或堆積。 驅動程式可以使用此旗標來判斷應該放在 Microsoft Direct3D 11 的 WrittenPrimaries 清單中的所有配置。 其他運行時間尚未變更。

如果驅動程式收到具有此旗標的 CreateResource 呼叫,則應該在每個寫入介面的 pfnSubmitCommandCb 呼叫上,將配置新增至此清單。

規格需求

需求
最低支援的用戶端 Windows 10
最低支援的伺服器 Windows Server 2016
標頭 d3dumddi.h (包含 D3dumddi.h)

另請參閱

D3D10_DDI_RESOURCE_MISC_FLAG

pfnRenderCb

pfnSubmitCommandCb