共用方式為


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

[in/out]在輸入時,Dxgkrnl硬體佇列的句柄。 在輸出中,驅動程式對硬體佇列的句柄。

Flags

[in]包含佇列建立旗標的 D3DDDI_CREATEHWQUEUEFLAGS 結構。

PrivateDriverDataSize

[in]pPrivateDriverData 指向的私人驅動程式數據位元組大小。

pPrivateDriverData

[in/out]使用者模式驅動程式 pfnCreateHwContextCb 函式傳遞的私人驅動程式數據的指標。 由於 pPrivateDriverData 是輸出參數,KMD 也可以將私人數據傳回 UMD。

hHwQueueProgressFence

[in]處理此硬體佇列作業系統所建立的 GPU 同步處理物件。 進度柵欄可用來同步處理此硬體佇列上的 DMA 緩衝區完成。 請參閱。

HwQueueProgressFenceCPUVirtualAddress

[in]核心模式 CPU 虛擬位址,可用來讀取硬體佇列進度柵欄目前訊號值。

HwQueueProgressFenceGPUVirtualAddress

[in]GPU 虛擬位址,可用來讀取或寫入硬體佇列進度柵欄的值。 伩列進度柵欄值必須單調增加,每個新的提交到硬體佇列。 更新佇列進度柵欄的 GPU 指示必須由正在追蹤的 DMA 緩衝區結尾的使用者模式驅動程式插入。

言論

針對核心提交 HWQueues,OS 會在支援原生柵欄的 GPU 上,將進度柵欄配置為原生柵欄類型。 設定 NativeProgressFence 旗標時,KMD 的 DxgkDdiCreateHwQueue 必須讀取對應的 hHwQueueNativeProgressFence 字段,以指定先前在 dxgkDdiCreateNativeFence 中建立之原生柵欄對象的驅動程式句柄。 如果 NativeProgressFence 旗標為 FALSE,則此 HWQueue 的進度柵欄是一般受監視的柵欄物件,KMD 必須讀取舊版 hHwQueueProgressFence 字段,例如之前。

建立 HWQueue 的原生柵欄時,OS 也會將 D3DKMT_CREATEHWQUEUE::Flags.NativeProgressFence 設為 TRUE,讓運行時間也知道 HWQueue 的進度柵欄已配置為原生柵欄。

針對使用者提交 HWQueues,OS 會根據定義將進度柵欄配置為 DxgkDdiCreateHwQueueForUserModeSubmission() 中的原生柵欄。

驅動程式相容性注意事項:Dxgkrnl 只會寫入支援 NativeGpuFence cap 的驅動程式上 hHwQueueNativeProgressFence 字段。 這可確保 OS 只會參考開發中的此字段,以及使用此更新標頭編譯的未來驅動程式。 KMD 只有在 DXGKARG_CREATEHWQUEUE 時才會讀取此欄位。Flags.NativeProgressFence 為 TRUE。 這可確保 KMD 只會在支援原生進度柵欄和此更新標頭的最新 OS 組建上參考此欄位。

要求

要求 價值
最低支援的用戶端 Windows 10 版本 1703 (WDDM 2.2)
標頭 d3dkmddi.h

另請參閱

DxgkDdiCreateHwQueue