次の方法で共有


DXGKARG_CREATEHWQUEUE構造体 (d3dkmddi.h)

DXGKARG_CREATEHWQUEUE 構造体は、ハードウェア キューを作成 DxgkDdiCreateHwQueue と共に使用されます。

構文

typedef struct _DXGKARG_CREATEHWQUEUE {
  HANDLE                    hHwQueue;
  D3DDDI_CREATEHWQUEUEFLAGS Flags;
  UINT                      PrivateDriverDataSize;
  VOID                      *pPrivateDriverData;
  D3DKMT_HANDLE             hHwQueueProgressFence;
  VOID                      *HwQueueProgressFenceCPUVirtualAddress;
  D3DGPU_VIRTUAL_ADDRESS    HwQueueProgressFenceGPUVirtualAddress;
} DXGKARG_CREATEHWQUEUE;

メンバーズ

hHwQueue

[入力/出力]入力時に、Dxgkrnlハードウェア キューへのハンドルを します。 出力時に、ハードウェア キューに対するドライバーのハンドル。

Flags

[in]キュー作成フラグを含む D3DDDI_CREATEHWQUEUEFLAGS 構造体。

PrivateDriverDataSize

[in]pPrivateDriverData が指 プライベート ドライバー データのサイズ (バイト単位)。

pPrivateDriverData

[入力/出力]ユーザー モード ドライバーの pfnCreateHwContextCb 関数によって渡されたプライベート ドライバー データへのポインター。 pPrivateDriverData はインアウト パラメーターであるため、KMD は UMD にプライベート データを返すこともできます。

hHwQueueProgressFence

[in]このハードウェア キューの OS によって作成された GPU 同期オブジェクトを処理します。 進行状況フェンスは、このハードウェア キューで DMA バッファーの完了を同期するために使用されます。 「解説」を参照してください。

HwQueueProgressFenceCPUVirtualAddress

[in]ハードウェア キューの進行状況フェンスの現在のシグナル値を読み取るために使用できるカーネル モードの CPU 仮想アドレス。

HwQueueProgressFenceGPUVirtualAddress

[in]ハードウェア キューの進行状況フェンスの値の読み取りまたは書き込みに使用できる GPU 仮想アドレス。 キューの進行状況のフェンス値は、ハードウェア キューへの新しい送信のたびに単調に増加する必要があります。 キューの進行状況フェンスを更新する GPU 命令は、追跡対象の DMA バッファーの末尾にユーザー モード ドライバーによって挿入される必要があります。

備考

カーネル送信 HWQueues の場合、OS は、ネイティブ フェンスをサポートする GPU に、進行状況フェンスをネイティブ フェンスの種類として割り当てます。 NativeProgressFence フラグが設定されている場合、KMD の DxgkDdiCreateHwQueue は、dxgkDdiCreateNativeFenceで作成 ネイティブ フェンス オブジェクトへのドライバー ハンドルを指定する対応する hHwQueueNativeProgressFence フィールドを読み取る必要があります。 NativeProgressFence フラグが FALSE の場合、この HWQueue の進行状況フェンスは通常の監視対象のフェンス オブジェクトであり、KMD は以前と同様に従来の hHwQueueProgressFence フィールドを読み取る必要があります。

HWQueue のネイティブ フェンスを作成すると、OS は D3DKMT_CREATEHWQUEUE::Flags.NativeProgressFence を TRUE に設定するため、ランタイムは HWQueue の進行状況フェンスがネイティブ フェンスとして割り当てられたことも認識します。

ユーザー送信 HWQueues の場合、OS は、定義によって DxgkDdiCreateHwQueueForUserModeSubmission() のネイティブ フェンスとして進行状況フェンスを割り当てます。

ドライバーの互換性に関する注意: Dxgkrnl は、NativeGpuFence キャップをサポートするドライバーの hHwQueueNativeProgressFence フィールドにのみ書き込まれます。 これにより、OS は、この更新されたヘッダーでコンパイルされる開発中および将来のドライバーでのみこのフィールドを参照できるようになります。 KMD は、DXGKARG_CREATEHWQUEUE 場合にのみこのフィールドを読み取ります。Flags.NativeProgressFence は TRUE です。 これにより、KMD は、ネイティブ進行状況フェンスとこの更新されたヘッダーをサポートする最新の OS ビルドでのみこのフィールドを参照します。

必要条件

要件 価値
サポートされる最小クライアント Windows 10 バージョン 1703 (WDDM 2.2)
ヘッダー d3dkmddi.h

関連項目

DxgkDdiCreateHwQueue を する