次の方法で共有


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