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
現在の Blt が GPU で実行されたときに通知されるハードウェア キューの進行状況フェンス ID。
DmaBufferVirtualAddress
GPU で実行される DMA バッファーの仮想アドレス。
DmaBufferSize
GPU で実行される DMA バッファーのサイズ。
DmaBufferPrivateDataSize
バッファーのプライベート データ サイズ。
pDmaBufferPrivateData
ユーザー モードの DDI コールバック pfnSubmitToHwQueueCb、ユーザー モードからのコマンド送信、または Present Blt などのカーネル モードの送信用に、DdiPresent によって入力されたプライベート ドライバー データ バッファーによって渡されるバイナリ データ。
大事な
プライベート ドライバーのデータ バッファーは、DxgkDdiSubmitCommandToHwQueue から戻ると解放されます。 これは WDDM 2.0-2.3 とは異なり、プライベート ドライバーデータの有効期間は GPU でコマンド バッファーが完了するまで延長されます。
Flags
これらは、ユーザー モード ドライバーによって生成されたコマンド バッファーに対して 0 に設定されます。 カーネル モード ドライバー DdiPresentToHwQueue で生成されたコマンド バッファーには、Present フラグが 1 に設定されます。
HwQueueProgressFenceGpuVa
この DMA バッファーの完了時に通知されるフェンスの GPU VA (ビデオ アクセラレーション)。
HwQueueProgressFenceCpuVa
この DMA バッファーの完了時に通知されるフェンスのカーネル モード CPU VA。
送信先のノード RingBufferFenceRelease cap が 0 に設定されている場合、フェンスの更新は、DMA バッファーの最後の命令としてユーザー モード ドライバーによって挿入されます。また、カーネル送信の場合は、DdiSignalMonitoredFence 呼び出しに応答してカーネル モード ドライバーによって挿入されます。
送信されるノード RingBufferFenceRelease cap が 1 に設定されている場合、DMA バッファーが GPU または CPU で使用されなくなった後にフェンスの更新が実行されます。 フェンスの更新の正確なメカニズムは、KMD/GPU にかかっています。 たとえば、DMA バッファーを廃止するときにコンテキスト管理プロセッサ ハードウェアまたは KMD によって実行できます。
必要条件
要件 | 価値 |
---|---|
ヘッダー | d3dkmddi.h |