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 に、進行状況フェンスをネイティブ フェンスの種類として割り当てます。
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 を