先前 WDDM 2.X 版本中新增的功能
此頁面描述在舊版 WDDM 2.X for Windows 10 中新增的顯示和圖形驅動程式功能。 若要查看針對最新 WDDM 2.X 版本新增的功能,請參閱 Windows 10 顯示器和圖形驅動程式的新功能。
WDDM 2.6
超級濕墨
超濕筆跡是圍繞前端緩衝區轉譯的功能。 IHV 驅動程式可以支援建立硬體不支援之格式或模式的「可顯示」紋理。 他們可以藉由配置應用程式所要求的紋理,以及可顯示之格式/版面配置的「陰影」紋理,然後在目前兩者之間複製,來執行此動作。 這個「陰影」可能不一定是我們認為它的正常紋理,但可能只是壓縮數據。 此外,可能不需要存在,但可能是優化。
執行時間會演進以瞭解可顯示介面的這些層面:
陰影是否必須存在,才能在特定 VidPnSource/平面上顯示。
陰影是否存在是否更理想。
何時將內容從應用程式介面傳輸到陰影表面。 運行時間會明確表示此作業,而不是在 Present 中隱含。
如何要求設定模式,或在原始和陰影表面之間動態翻轉。
掃描可能在 VBlank 之後不久開始,從影像的頂端到底部垂直掃描,並在下一個 VBlank 之前不久完成。 這不一定是這樣,視圖元時鐘的時間和紋理中的數據配置而定:特別是如果有實際可用的壓縮。
新的 DIS 已新增至分隔並瞭解在掃描前發生的轉換,以便(可能的話)啟用前端緩衝區轉譯。 請參閱 D3DWDDM2_6DDI_SCANOUT_FLAGS 和 PFND3DWDDM2_6DDI_PREPARE_SCANOUT_TRANSFORMATION。
可變速率底紋
可變速率底紋或粗圖元底紋是一種機制,可在轉譯影像之間以不同的速率配置轉譯效能/電源。
在上一個模型中,若要使用 MSAA(多重樣本消除鋸齒)來減少幾何別名:
- 在配置目標時,需要預先知道減少幾何別名的數量。
- 一旦配置目標之後,就無法變更減少幾何別名的數量。
在WDDM 2.6中,新模型藉由新增粗陰影概念,將 MSAA 延伸到相反的粗圖元方向。 這是以比圖元粗略的頻率執行底紋的地方。 一組圖元可以著色為單一單位,然後結果會廣播到群組中的所有樣本。
粗細陰影 API 可讓應用程式指定屬於陰影群組的像素數目。 在配置轉譯目標之後,粗略圖元大小可能會有所不同。 因此,螢幕的不同部分或不同的繪製通行證可以有不同的課程底紋速率。
多層式實作有兩個用戶可查詢的上限可供使用。 對於第 1 層和 2 層,單一取樣和 MSAA 資源都可使用粗略底紋。 針對 MSAA 資源,陰影可以像往常一樣執行每個粗圖元或個別樣本。 不過,在 MSAA 資源的第 1 層和第 2 層上,無法使用粗略取樣來以每圖元和每個樣本之間的頻率來著色。
第 1 層:
底紋速率只能以每一繪製為基礎指定;沒有什麼比這更細微的
底紋速率會統一套用至與其位於轉譯目標內的位置無關繪製的內容
第 2 層:
底紋速率可以依每一繪製來指定,如第 1 層所示。 也可以透過每一繪製基礎的組合,以及下列專案來指定:
- 來自每個挑釁頂點的語意,以及
- 屏幕空間影像
三個來源的底紋速率會使用一組結合器來合併
屏幕空間影像磚大小為 16x16 或更小。 應用程式所要求的底紋速率保證會完全傳遞(針對時態性和其他重建篩選器的精確度)
支援SV_ShadingRate PS 輸入。 每個引發頂點的速率,也稱為每個基本速率,只有在使用一個檢視區,且未寫入SV_ViewportIndex時,才會有效。
如果 SupportsPerVertexShadingRateWithMultipleViewports cap 標示為 true,則每個引發頂點速率也稱為個別基本速率,可以搭配多個檢視區使用。 此外,在此情況下,當寫入SV_ViewportIndex時,可以使用它。
請參閱 PFND3D12DDI_RS_SET_SHADING_RATE_0062 和 D3D12DDI_SHADING_RATE_0062。
收集診斷資訊
收集診斷資訊 可讓OS從圖形適配卡的驅動程式收集私人數據,其中包含轉譯和顯示函式。 這項新功能是 WDDM 2.6 中的需求。
新的 DDI 應該允許作業系統在載入驅動程式時隨時收集資訊。 目前操作系統會使用 Miniport 所實作的 DxgkDdiCollectDebugInfo 函式來查詢 TDR 的驅動程式私用數據(逾時偵測和復原)相關案例。 新的 DDI 將因各種原因而用來收集數據。 當需要診斷時,OS 會呼叫此 DDI,以提供所要求的信息類型。 驅動程序應該收集所有重要的私用資訊,以調查問題,並將其提交至OS。 DxgkDdiCollectDebugInfo 最終會被取代,並以 DxgkDdiCollectDiagnosticInfo 取代。
請參閱 DXGKDDI_COLLECTDIAGNOSTICINFO。
背景處理
背景處理可讓使用者模式驅動程式表達所需的線程行為,以及運行時間來控制/監視它。 使用者模式驅動程式會啟動背景線程,並盡可能將線程指派為低優先順序,並依賴 NT 排程器來確保這些線程不會中斷關鍵路徑線程,通常成功。
API 可讓應用程式調整適合其工作負載的背景處理量,以及何時執行該工作。
請參閱 PFND3D12DDI_QUEUEPROCESSINGWORK_CB_0062。
驅動程式經常性更新
需要更新作業系統元件時,驅動程式熱更新可儘可能減少伺服器停機時間。
驅動程式熱修補可用來將安全性修補程式套用至核心模式驅動程式。 在此情況下,系統會要求驅動程式儲存適配卡記憶體、停止適配卡、卸除驅動程式、載入新的驅動程式,並再次啟動適配卡。
請參閱DXGKDDI_SAVEMEMORYFORHOTUPDATE 和 DXGKDDI_RESTOREMEMORYFORHOTUPDATE。
WDDM 2.5
追蹤的工作負載
追蹤的工作負載是一項實驗性功能,可提供更快速處理器執行與較低耗電量之間的取捨控制,而且在進一步通知之前無法使用。 實作已從 Windows 10 版本 2003 中移除;和已從舊版作業系統取代為安全性修正的一部分。
內容變更
主題 | Date | 描述 |
---|---|---|
HMD 和特製化顯示器的 EDID 擴充功能 (VSDB) | 12/03/2018 | 顯示器製造商的規格 |
DirectX 圖形核心子系統 (Dxgkrnl.sys) | 12/04/2018 | Windows 作業系統透過 Microsoft DirectX 圖形核心子系統實作的核心模式介面(Dxgkrnl.sys)。 |
WDDM 2.1 功能 | 01/10/2019 | 描述 WDDM 2.1 的新功能和更新功能 |
Raytracing
新的 Direct3D DDI 是與 Direct3D API 平行建立,以支持硬體加速的光線追蹤。 範例 DIS 包括:
- PFND3D12DDI_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_0054
- PFND3D12DDI_COPY_RAYTRACING_ACCELERATION_STRUCTURE_0054
- PFND3D12DDI_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_0054
- PFND3D12DDI_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_0054
如需有關光線追蹤的詳細資訊,請參閱:
顯示同步處理
OS 會在驅動程式向 OS 公開顯示器時,檢查顯示同步處理的功能,因此在啟用顯示器之前。 針對 TypeIntegratedDisplay 子裝置,這是透過呼叫 DxgkDdiQueryAdapterInfo,在配接器初始化期間使用 Type DXGKQAITYPE_INTEGRATED_DISPLAY_DESCRIPTOR2回報。 針對從 WDDM 2.5 開始支援的 TypeVideoOutput 子裝置,這些功能會透過 DxgkDdiUpdateMonitorLinkInfo 回報為熱插即用處理中的一部分,讓功能可能會根據目標或連線的監視器而變更。
OS 會在每個路徑的 [輸入] 字段中指定 DxgkDdiSetTimingsFromVidPn 呼叫中的顯示同步處理DXGK_SET_TIMING_PATH_INFO結構。
WDDM 2.1
WDDM 2.1 可啟用新的案例,並針對 Windows 圖形子系統提供效能、可靠性、升級復原、診斷改善和未來系統進步方面的顯著改善。 WDDM 2.0 驅動程式模型是 D3D12 的必要條件。 WDDM 2.0 和 DirectX12 僅適用於 Windows 10 和更新版本。
以下是 WDDM 2.1 的功能新增和更新清單。
藉由減少記憶體管理所花費的額外負荷時間,以及更有效率地使用稀缺圖形記憶體,以改善圖形效能。 圖形效能改善包括:
- 提供和回收資源 - 提供和回收改善,以減少在背景模式中執行之應用程式的記憶體使用量。
- 支援 2MB 頁面表格項目編碼 - 在 WDDM 2.1 中,已啟用 VRAM 中的大型分頁表專案 (PTE) 編碼。 這項變更可提升支援其系統的效能。
- 支援 64KB 記憶體頁面 - WDDM 2.1 也支援使用 64KB 數據粒度的虛擬記憶體配置。 這項變更特別有利於 APU 和 SoC,方法是降低存取虛擬記憶體頁面的額外負荷。
以硬體為基礎的受保護內容已改善,目前 批處理 (PlayReady 3.0)
圖形驅動程式的驅動程式市集安裝,以改善驅動程序升級復原能力。
DXIL,新的著色器編譯程序語言
D3D12 效能和優化改善
已改善開發人員的診斷選項
如需詳細資訊,請參閱 WDDM 2.1 功能。
WDDM 2.0
WDDM 2.0 包含記憶體管理更新。
GPU 虛擬記憶體
- 所有物理記憶體都會抽象化成可由圖形處理單元 (GPU) 記憶體管理員管理的虛擬區段。
- 每個進程都會取得自己的 GPU 虛擬位址空間。
- 已移除對令人眼花繚亂的範圍支援。
如需詳細資訊,請參閱 WDDM 2.0 中的 GPU 虛擬記憶體。
司機落地
- 影片記憶體管理員會在將命令緩衝區提交至驅動程式之前,先確定配置位於記憶體中。 為了方便此功能,已新增使用者模式驅動程式設備驅動器介面 (DIS) (MakeResident、TrimResidency、Evict)。
- 配置和修補程式位置清單已逐步淘汰,因為 WDDM 2.0 模型中不需要此清單。
- 使用者模式驅動程式現在負責處理配置追蹤。 已新增數個 DIS 以啟用此功能。
- 驅動程式會獲得記憶體預算,並預期會在記憶體壓力下進行調整。 這可讓通用 Windows 驅動程式跨應用程式平台運作。
- 已新增 DIS 以進行進程同步處理和內容監視。
如需詳細資訊,請參閱 WDDM 2.0 中的驅動程式落地。