與 KMD 共用備份儲存區
從 Windows 11 22H2 版開始,WDDM API 已擴充為允許從核心模式驅動程式存取圖形配置支援存放區, (KMD) 。 使用此 API 時,使用者模式驅動程式 (UMD) 和 KMD 都可以存取相同的配置記憶體。 當UMD在主機上執行或使用 GPU 參數化 (GPU-PV) 的虛擬機時,可以使用此功能。
這項功能已回移植到 Windows 10 20H1 版。 DDI 適用於 WDDM 3.1 驅動程式或更新版本。
WDDM 圖形配置與備份儲存區
WDDM 模型中的每個圖形配置都有一個備份儲存區,這是一個認可的記憶體緩衝區,會在配置內容不在視訊記憶體中時保留該配置內容。
圖形配置是藉由呼叫 D3DKMTCreateAllocation 來建立。 UMD 會傳遞此配置的私人數據, Dxgkrnl 會透過呼叫來傳遞至 KMD DXGKDDI_CREATEALLOCATION。 KMD 會將所需的配置旗標傳回 Dxgkrnl。
檢查功能可用性
若要檢查備份儲存區共用功能是否可用,KMD 必須先呼叫下列其中一個回呼, 並將 FeatureId 設定為 DXGK_FEATURE_SHARE_BACKING_STORE_WITH_KMD:
- 從 WDDM 2.9) 開始,DXGKCB_QUERYFEATURESUPPORT (
- DXGKCB_ISFEATUREENABLED
只有在回呼成功且 Enable 設定為 TRUE 時,才能使用此功能。
功能流程
一旦 KMD 成功判斷已啟用此功能,UMD 會呼叫 D3DKMTCreateAllocation 來建立共用的 CPU 可見配置,並透過私人數據指示 KMD 與 KMD 共用配置。 在此呼叫過程中,會發生下列情況:
當OS呼叫 KMD 的DXGKDDI_CREATEALLOCATION回呼時,KMD 會設定DXGK_ALLOCATIONINFOFLAGS2的ShareBackingStoreWithKmd旗標。 如果未啟用此功能,KMD 不得設定 ShareBackingStoreWithKmd 旗標。
Dxgkrnl 會呼叫 DXGKDDI_SETALLOCATIONBACKINGSTORE DDI,為 KMD 提供核心模式位址給配置支援存放區。
UMD 會呼叫 D3DKMTLock2 以取得配置的使用者模式位址。
配置的屬性
以此方式建立的設定必須具有下列屬性:
- 配置只允許在系統記憶體區段中。
- 配置必須建立為共用。
- 配置無法使用現有的系統記憶體作為備份儲存區。
- UMD 可以針對一般配置執行任何作業。
- UMD 可以呼叫 D3DKMTLock2 以取得配置指標。
- UMD 可以呼叫 D3DKMTMakeResident ,讓 GPU 能夠存取配置。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應