
D7VK 2.1現已發布,作為這款開源圖形轉換層的新版本,它允許基於 Direct3D 7、6、5 和 3 的舊版 Windows 遊戲在 Vulkan 環境下運行。繼前幾個版本顯著提升效能之後,本次更新的重點在於縮短遊戲載入和啟動時間。在某些遊戲中,這些改進可以將遊戲載入或啟動時間縮短一半。
D7VK 專為使用早期 Direct3D 版本的經典遊戲而設計,這些遊戲仍然可以在 Linux 系統上使用 Wine 或 Proton 運行。該專案使用 Vulkan 作為這些舊版 API 的後端,填補了現代 DXVK 版本(主要針對 Direct3D 8、9、10 和 11)或專為 Direct3D 12 設計的 VKD3D-Proton 未直接解決的空白。
D7VK 2.1 加快了經典遊戲的載入速度
D7VK 2.1 的主要新特性與物件建立和銷毀有關。該專案減少了追蹤這些物件生命週期所帶來的開銷,從而降低了遊戲載入和初始化階段所需的工作量。
這項改動直接影響了遊戲的啟動速度。據開發者稱,多款遊戲的啟動速度都有顯著提升,部分遊戲的載入時間甚至比之前的 D7VK 版本縮短了一半或更多。雖然經典遊戲在現代硬體上通常不會出現嚴重的載入時間問題,但該專案認為這些優化能夠更好地利用可用資源。
緩存系統也得到了改進。更低的物件生命週期管理成本和更有效率的快取行為相結合,減少了 D7VK 在應用程式啟動和某些後續操作期間必須執行的工作量。
此外,還有一些重要的兼容性修復。
D7VK 2.1 不僅優化了載入速度,此次更新還修復了一個與釋放關聯深度模板表面相關的「釋放後使用」問題。該錯誤僅出現在使用 MSVC 或 Clang 編譯的特定二進位檔案中,並可能導致某些遊戲在啟動過程中意外崩潰。
受影響的遊戲之一是《Arx Fatalis》,該遊戲可能會在啟動時崩潰。 D7VK 2.1 版本中的修復程式解決了這個問題,使遊戲能夠正常運作而不會遇到該特定錯誤。
此次更新還包含針對特定遊戲的調整,其中包括《生化危機2》和《帝國時代:征服的藝術》這兩款經典遊戲的性能提升,它們都能從本次更新中受益。
GetDC 和 ReleaseDC 新增選用路徑
的另一個新穎之處 D7VK 2.1 這是呼叫的一個可選執行路徑 GetDC y ReleaseDC目標是提高某些大量使用這些功能的遊戲的效能。
實現此功能是可選的,因為其結果很大程度上取決於每局遊戲的具體情況。在某些情況下,它可以提升效能;而在其他情況下,則可能產生完全相反的效果,增加某些操作的成本。
開發者本人觀察到,在《Arx Fatalis》遊戲中,採用這種方法後,遊戲幀率提升了約5-10% 。然而,同樣的改變會導致遊戲主選單渲染時出現明顯的效能下降。因此,這並非一項通用的最佳化措施,不應隨意啟用,而是可能在某些特定遊戲中發揮作用的選項。
為在 Linux 上玩 Windows 經典遊戲帶來了一個有趣的改進
D7VK 2.1的主要優勢在於其遊戲庫,雖然與現代遊戲相比可能略顯單薄,但對於那些使用 Linux 平台玩經典遊戲的用戶來說仍然很有價值。這層可以將較舊的 Direct3D API 3、5、6 和 7 轉換為 Vulkan,從而可以使用 Wine 或 Proton 來運行這些遊戲。
這對於在現代圖形API成為標準之前開發的遊戲尤其有用。 D7VK並非僅依賴Wine提供的傳統Direct3D實現,而是提供了一種基於Vulkan的方案,可在目前的圖形硬體和驅動程式上提供更好的相容性和效能。
D7VK 2.1 現已推出
D7VK 2.1現已可從專案倉庫下載。與先前的更新相比,新版本不再著重於大幅提升幀率,而是更著重於優化翻譯層的內部機制。
減少物件創建過程中的開銷、改進快取以及優化啟動過程可以顯著縮短某些遊戲的載入時間。此外,我們還修復了《Arx Fatalis》的崩潰問題,調整了其他遊戲,並添加了一個新的可選路徑。 GetDC/ReleaseDC.
透過此次更新,D7VK 2.1繼續改進 Linux 系統上遊戲體驗的一個特定方面:運行那些依賴微軟舊版圖形 API 的經典遊戲。此次更新表明,即使這些遊戲已有數十年歷史,並且運行在現代硬體上,仍然有提升空間。