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 |