D3DKMTNotifyWorkSubmission 函式 (d3dkmthk.h)
重要
某些資訊與發行前版本產品有關,在發行前版本產品可能經過大幅修改。 Microsoft未就此處提供的資訊提供任何明示或默示擔保。
D3DKMTNotifyWorkSubmission 通知內核模式顯示驅動程式 (KMD) 使用者模式顯示驅動程式 (UMD) 已將工作提交至 GPU。
語法
NTSTATUS D3DKMTNotifyWorkSubmission(
D3DKMT_NOTIFY_WORK_SUBMISSION *unnamedParam1
);
參數
unnamedParam1
D3DKMT_NOTIFY_WORK_SUBMISSION 結構的指標,識別提交工作的硬體佇列。
傳回值
D3DKMTNotifyWorkSubmission 如果成功 ping KMD,就會傳回STATUS_SUCCESS。 否則,如果指定了無效的硬體佇列或旗標,則會傳回適當的錯誤碼,例如STATUS_INVALID_PARAMETER。
言論
在 使用者模式工作提交 模型中,KMD 不會參與工作提交,因此不知道何時在 HWQueue 上提交新工作。 這個低延遲的工作提交路徑是模型的主要動機。 不過,當 KMD 需要在 HWQueue 上提交工作時收到通知時,會有某些利基案例和硬體限制。 例如,當實時內容提交工作時,GPU 硬體排程器需要 KMD 將硬體 Runlist 從一般切換為即時。 如果 KMD 未參與工作提交,則無法立即觸發 Runlist 參數,這會導致延遲即時工作執行。
為了適應這項需求,KMD 可以在 門鈴建立時間指定門鈴連線狀態為D3DDDI_DOORBELL_STATUS_CONNECTED_NOTIFY。 每當 UMD 看到此門鈴狀態時,它會調整其工作提交工作流程,讓在撰寫新的命令並響鈴之後,使用 D3DKMTNotifyWorkSubmission呼叫核心。 Dxgkrnl 會使用 DxgkDddiNotifyWorkSubmission將此呼叫轉送至 KMD。
D3DKMTNotifyWorkSubmission 是從 UMD 到 Dxgkrnl 到 KMD 的簡單 Ping,通知後者特定 HWQueue 已提交新工作,讓 KMD 可以起始特定動作,例如將 Runlist 切換為即時。
KMD 也可以在建立門鈴之後動態要求通知。 如果 KMD 偵測到應該在此硬體佇列上收到工作提交通知的條件,則必須先呼叫 Dxgkrnl的 DxgkCbDisconnectDoorbell 狀態為D3DDDI_DOORBELL_STATUS_DISCONNECTED_RETRY來中斷門鈴。 稍後,當 UMD 嘗試重新連線門鈴時,KMD 可以透過狀態D3DDDI_DOORBELL_STATUS_CONNECTED_NOTIFY進行連線。
驅動程式應該在非常特定且不頻繁的情況下使用此機制,因為它牽涉到每個工作提交的 UMD 到 KMD 的來回行程,如果用於廣泛的案例,則會失敗低延遲使用者模式提交模型的用途。
如需詳細資訊,請參閱 使用者模式工作提交。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 11 版本 24H2 (WDDM 3.2) |
標頭 | d3dkmthk.h |