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 を含む) |