Valve 最近推出了 發布新版 VKD3D-Proton 2.9, vkd3d 代碼庫的一個分支,旨在提高質子遊戲啟動器中的 Direct3D 12 兼容性。
對於那些還不了解 VKD3D-Proton 的人來說,你應該知道這個 支持 Proton 特定的更改、優化和增強功能,以提高基於 Direct3D 12 的 Windows 遊戲的性能,vkd3d 的主要部分尚未接受。 在差異中,還有一個重點是使用現代 Vulkan 擴展和最新版本的圖形驅動程序的功能來實現完全的 Direct3D 12 兼容性。
因此 Valve 使用基於 Wine 的包中指定的 fork 運行 Windows Proton 遊戲。 Proton 對 DirectX 9/10/11 的支持基於 DXVK 包,而 DirectX 12 實現目前一直基於 vkd3d 庫(在 vkd3d 作者去世後,CodeWeavers 繼續開發該組件和 wine 社區)。
VKD3D-Proton 2.9 的主要創新
這個新版本的 VKD3D-Proton 2.9 提到了 一些遊戲開始假設 DLL 的設計類似於 AgilitySDK, 因此,庫 d3d12core.dll 分為加載程序 (d3d12.dll) 和主要實現 (d3d12core.dll)。 通過此更改,現在需要更新多個腳本以適應這兩個 DLL。 在前綴中安裝 d3d12.dll 後,只需更新 d3d12core.dll。
在這個新版本中突出的另一個變化是 實施了性能優化 是在這個版本中 顯著降低內存需求 在第一次啟動應用程序時。
還強調的是e 在使用的代碼中提高了性能 擴展名 VK_EXT_descriptor_buffer,以及對使用 Intel、AMD 和 NVIDIA GPU 的系統進行的優化。
除此之外, 添加了對 D3D11On12 可移植接口的支持, 刪除了先前實現虛擬幀緩衝區 (SwapChain) 的代碼,添加了對 SwapChain 標準 Linux 接口的支持,並修復了使用 NVIDIA 和 RADV 驅動程序時出現的一些問題。
此外, Vulkan 1.3 現在被宣佈為最低要求的版本, 還添加了對無序切片(3D UAV,Unordered View)操作的支持,使用 VK_EXT_image_sliced_view_of_3d 擴展實現。
其他變化 從這個新版本中脫穎而出:
- 支持 VK_EXT_pageable_device_local_memory 時改進了 VRAM 行為,允許以有用的方式實現 Evicty 和 MakeResident API。
VK_EXT_memory_priority 也用於提供靜態優先級作為後備。 - 通過啟用 VK_EXT_pipeline_library_group_handles 擴展改進了對 DXR 1.1 的支持。
- 添加了對 VK_EXT_fragment_shader_interlock 擴展的支持。
- 改進了與使用 AgilitySDK 特定功能的遊戲的兼容性。
- 修復了許多遊戲中的問題。
- 在 Wine 中,使用 winevulkan.dll 代替 vulkan-1.dll(如果可用)。
- 改進了與依賴於 AgilitySDK 某些細節的遊戲的兼容性。
- 改進了構建系統與不同 widl 版本的兼容性
- VKD3D_CONFIG=dxr 現在也啟用 DXR 1.1 並且 dxr11 被保存用於兼容。
- 修復了 HDR 元數據最小亮度值。
- 添加了 VKD3D_LIMIT_TESS_FACTORS 以修復過多的曲面細分。 為臥龍啟用。
- 修復了導致著色器緩存內存過多的 RADV 錯誤。 您可以節省數百 MB 的內存,這對於某些需要大量內存的遊戲來說很重要,可以避免不穩定。
- 修復了使用時間線信號量並發隊列提交的 NVIDIA 錯誤
- 修復了許多不同遊戲中的一堆 Xid 109 CTX_SWITCH_TIMEOUT 無法解釋的錯誤。
終於 如果您有興趣了解有關此新版本的更多信息, 您可以查看詳細信息 在下面的鏈接中。如果你想 立即在Steam上嘗試Proton,您已經知道可以從 官方網站,儘管您也會在大多數發行版的存儲庫中找到它。