
D7VK 2.3現已發布,這是該相容層的最新版本,旨在讓基於Direct3D 7、Direct3D 6、Direct3D 5 和 Direct3D 3 的舊遊戲能夠在 Vulkan Linux 上運行。該更新於 2016 年 9 月 29 日發布,包含新的優化、針對多款經典遊戲的特定修復,以及旨在提升舊版圖形 API 效能的內部變更。
然而,這個版本也帶來了對專案未來發展至關重要的消息:開發者宣布 D7VK 將進入維護模式。這意味著不會再有重大新功能推出,未來的版本將主要致力於修復特定遊戲或配置中可能出現的漏洞。
D7VK 2.3 將舊版 Direct3D 引入 Vulkan
D7VK 是源自 DXVK 的項目,專門針對 DXVK 沒有直接涵蓋的 DirectX 部分:第一代 Direct3D。
雖然 DXVK 主要專注於較新的 API,但 D7VK 為Direct3D 3、5、6 和 7提供了基於 Vulkan 的實作。這使得 Wine 能夠運行大量 20 世紀 90 年代末和 21 世紀初依賴這些較舊圖形介面的遊戲。
該專案對於使用第一代 Direct3D 的遊戲來說尤其有趣,因為這些遊戲在使用 Wine 的傳統圖形路徑運行時可能會出現問題。
針對陰影表面的一種新最佳化
D7VK 2.3 的主要修改之一影響了所謂的陰影表面,這些表面在內部使用,以避免 D3D 交換鍊和使用 DirectDraw 的呈現之間發生衝突。
在先前的版本中,這些表面儲存在裝置的記憶體中。 D7VK 2.3 將它們移到了系統記憶體中。
這項改動專為那些大量使用這些表面的遊戲而設計,例如,將滑鼠遊標直接複製到最終圖像上的情況。開發者指出,這種修改可以顯著提升此類場景下的效能。
紋理識別碼處理方式的重組
D7VK 2.3 也對舊版 Direct3D API 使用的識別碼的處理方式進行了更改。
儘管 Direct3D 6 官方已移除紋理標識符,但仍有一些程式繼續使用依賴這些標識符的相容路徑。新版本規範了不同代 Direct3D(相容 D7VK)對這些標識符的處理方式。
目標是提高與以非常規方式使用這些介面的舊應用程式的兼容性,並防止某些遊戲中出現錯誤行為。
經典遊戲的修正
D7VK 2.3 也包含對舊版的一些具體修正。
受影響的遊戲包括《極速快感:保時捷》、《黑暗復仇》 、《ZAR》和《星際大戰:X翼聯盟》。此外,也針對渲染問題、表面管理問題以及舊版API的行為問題進行了多項修復。
以《極速快感:保時捷》為例,新增了與圖形表現相關的更改,而其他遊戲則進行了修復,旨在解決相容性測試期間發現的特定問題。
D7VK 2.3 基於 DXVK 3.1.1
此版本還更新了 D7VK 使用的程式碼庫。 D7VK 2.3 基於DXVK 3.1.1構建,並包含了其來源項目的相應修改。
這樣,D7VK 就可以繼續受益於共享基礎架構的修復和更改,同時保持其針對舊版 Direct3D API 的特定修改。
項目進入維護模式
D7VK 2.3 最重要的新功能與 Vulkan 或任何特定遊戲沒有直接關係。
開發人員WinterSnowfall宣布 D7VK 專案即將進入維護模式。該專案已基本實現其目標,未來將不會再推出任何重大新功能。
這並不意味著D7VK項目將被放棄。該專案仍將繼續進行錯誤修復,但開發速度將放慢,新版本發布頻率也會降低。
從專案發展的角度來看,這個決定是合理的:D7VK 實現的 API 已經幾十年沒有改變,現在的主要目標是保持現有遊戲正常運行,而不是不斷擴展功能。
這對Linux用戶意味著什麼?
對於透過 Wine 使用經典 Windows 遊戲的用戶來說,D7VK 2.3 主要代表了一個整合版本。
該專案在其不同版本中不斷累積效能和相容性改進,使得基於 Direct3D 3、5、6 和 7 的遊戲能夠透過 Vulkan 在現代圖形硬體上運行。
轉為維護狀態意味著未來版本的功能不會有重大提升,但這並不意味著 D7VK 將失去作用。如果某個遊戲已經能與 D7VK 完美相容,那麼專案的新狀態僅僅意味著開發工作將專注於維護這種相容性,並在發現問題時進行修復。
使用老舊硬體的用戶還可以使用DXVK-Sarek,它在與舊版 Vulkan 相容的基礎上整合了 D7VK 的許多功能。此版本適用於無法使用最新版本 D7VK 的系統。
D7VK 2.3,鞏固階段
D7VK 2.3 代表著技術改進與專案新階段的結合。新版本優化了介面管理,重組了內部組件,修復了多款經典遊戲中的問題,並更新了其技術基礎。
但最重要的是,這標誌著 D7VK 從一個不斷擴展的專案過渡到一個僅維護的工具。對於仍需要在 Linux 上運行基於第一代 Direct3D 的遊戲的用戶來說,該專案仍將可用並繼續獲得錯誤修復,儘管不再提供主要的新功能。