次の方法で共有


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