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 キャップが 0 に設定されている場合、フェンスの更新は、ユーザー モード ドライバーによって DMA バッファーの最後の命令として挿入されます。また、カーネル送信の場合は、DdiSignalMonitoredFence 呼び出しに応答してカーネル モード ドライバーによって挿入されます。
送信されるノードに RingBufferFenceRelease キャップが 1 に設定されている場合、DMA バッファーが GPU または CPU で使用されなくなった後にフェンスの更新が実行されます。 フェンスの更新の正確なメカニズムは、KMD/GPU までです。 たとえば、DMA バッファーをインベントリから削除する場合はコンテキスト管理プロセッサ ハードウェア、または KMD によって実行できます。
要件
要件 | 値 |
---|---|
Header | d3dkmddi.h |