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

ユーザー モード ディスプレイ ドライバーがサポートするイベント トレース for Windows (ETW) ログのマーカーの種類を示すD3DDDI_MARKERLOGTYPE列挙。

RenderCBSequence

各 pfnRenderCb 関数呼び出しの一意識別子。 シングルスレッド ユーザー モード DDI に関連付けられているコンテキストの場合は 1 から始まり、フリースレッド ユーザー モードの DDI に関連付けられているコンテキストの場合は 0x80000001 の値に範囲を指定します。 ユーザー モード ディスプレイ ドライバーは、任意のエンジンで行う pfnRenderCb 呼び出しごとに値をインクリメントする必要があります。

FirstAPISequenceNumberHigh

コンテキストの API シーケンス番号を渡すためにドライバーによって使用されます。

CompletedAPISequenceNumberLow0Size

コンテキストの API シーケンス番号を渡すためにドライバーによって使用されます。

CompletedAPISequenceNumberLow1Size

コンテキストの API シーケンス番号を渡すためにドライバーによって使用されます。

BegunAPISequenceNumberLow0Size

コンテキストの API シーケンス番号を渡すためにドライバーによって使用されます。

BegunAPISequenceNumberLow1Size

コンテキストの API シーケンス番号を渡すためにドライバーによって使用されます。

BatchedMarkerDataCount

コンテキストのバッチ マーカー データ数を渡すためにドライバーによって使用されます。

pCompletedAPISequenceNumberLow0

コンテキストの API シーケンス番号を渡すためにドライバーによって使用されるポインター。

pCompletedAPISequenceNumberLow1

コンテキストの API シーケンス番号を渡すためにドライバーによって使用されるポインター。

pBegunAPISequenceNumberLow0

コンテキストの API シーケンス番号を渡すためにドライバーによって使用されるポインター。

pBegunAPISequenceNumberLow1

コンテキストの API シーケンス番号を渡すためにドライバーによって使用されるポインター。

pBatchedMarkerData

コンテキストのバッチ マーカー データを渡すためにドライバーによって使用されるポインター。

Reserved

このメンバーは予約済みであり、0 に設定する必要があります。

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
Header d3dumddi.h (D3dumddi.h を含む)

こちらもご覧ください

D3D10_DDI_RESOURCE_MISC_FLAG

pfnRenderCb

pfnSubmitCommandCb