共用方式為


WDDM 2.0 中的驅動程式落地

本節提供 Windows 顯示驅動程式模型 (WDDM) 2.0 驅動程式落地變更的詳細數據。 從 Windows 10 開始,即可使用所述的功能。

本節內容

主題 描述

落地概觀

引進新的落地模型后,落地會移至裝置上的明確清單,而不是個別命令緩衝區清單。 視訊記憶體管理員可確保特定裝置落地需求清單上的所有配置都會在屬於該裝置的任何內容都已排定執行之前進行駐留。

配置使用量追蹤

當配置清單消失時,視訊記憶體管理員便無法再看到特定命令緩衝區中所參考的配置。 因此,視訊記憶體管理員已不再處於追蹤配置使用量及處理相關同步處理的位置。 此責任現在會落在使用者模式驅動程式。 特別是,使用者模式驅動程式必須處理與直接 CPU 存取和重新命名相關的同步處理。

供應專案和回收變更

對於WDDM v2,供應專案和回收的需求會寬鬆。 不再需要使用者模式驅動程式,即可在內部配置上使用供應專案和回收。 閑置/暫停的應用程式會使用 Microsoft DirectX 11.1 中引進的 TrimAPI 來移除驅動程式內部資源。

存取非駐留配置

圖形處理單位 (GPU) 存取不合法的配置,並會導致產生錯誤的應用程式移除裝置。

根據錯誤引擎是否支援 GPU 虛擬尋址,有兩個不同的模型可處理這類無效的存取:

  • 對於不支援 GPU 虛擬尋址並使用配置和修補程式位置清單來修補記憶體參考的引擎,當使用者模式驅動程式提交配置清單時,就會發生無效的存取,該配置清單會參考裝置上的配置 (也就是使用者模式驅動程式尚未在該配置上呼叫 MakeResidentCb) 。 發生這種情況時,圖形核心會將錯誤的內容/裝置置於錯誤中。
  • 對於支援 GPU 虛擬尋址但存取無效之 GPU 虛擬位址的引擎,可能是因為虛擬位址後面沒有配置,或沒有有效的配置,但尚未存在,GPU 預期會以中斷的形式引發無法復原的頁面錯誤。 發生頁面錯誤中斷時,核心模式驅動程式必須透過新的頁面錯誤通知,將錯誤轉送至圖形核心。 收到此通知時,圖形核心會在錯誤引擎上起始引擎重設,並將錯誤的內容/裝置置於錯誤中。 如果引擎重設失敗,圖形核心會將錯誤升階為完整的適配卡寬逾時偵測和復原 (TDR) 。

處理落地預算

在 WDDM v2 中,系統會為進程指派可保留多少記憶體的預算。 此預算可能會隨著時間變更,但通常只有在系統處於記憶體壓力時才會加總。 在 Microsoft Direct3D 12 之前,預算是由使用者模式驅動程式以 Trim 通知和 MakeResident 失敗的形式來處理 並STATUS_NO_MEMORY。 TrimToBudget 通知、 收回和失敗 的 MakeResident 呼叫都會以整數 NumBytesToTrim 值的形式傳回最新的預算,指出需要修剪多少才能符合新預算。