QEMU 技術突破:現在可以玩具現代視覺效果的 Windows 遊戲
QEMU 是一套開源的虛擬機軟體,近期宣布了一項重要的技術突破:現在可以玩具現代視覺效果的 Windows 遊戲。這項技術突破得益於 Neptune 和 Triton 兩個重要元件的開發。
Neptune 是一層 Direct3D 通訊協定轉發層,負責將 Direct3D API 呼叫序列化並跨越虛擬機界限。這使得 QEMU 可以在 Linux 主機上運行 Windows 遊戲,並且比直接在 Windows 虛擬機上運行更快。Triton 是一款新的 Windows 驅動程式,與 Neptune 配合使用,可以提供完整的 DirectX 11 支援給 QEMU 虛擬機。
背景分析
但是,為什麼不直接使用 Wine 來運行 Windows 遊戲呢?Wine 是一套開源的 Windows 模擬器,可以讓 Linux 用戶運行 Windows 應用程式。然而,Wine 的性能並不理想,尤其是在圖形加速方面。Neptune 和 Triton 的開發就是為了解決這個問題。
Neptune 可以序列化 Direct3D API 呼叫,但是如果直接使用 Neptune 來運行 Windows 遊戲,仍然會遇到一些問題。例如,Windows 的桌面組合器(DWM)會將遊戲畫面當作一張圖片,需要使用 CPU 來複製 GPU 的圖像緩衝區到正確的窗口位置。這會導致性能下降,尤其是在全螢幕應用程式中。另外,直接修改 Windows 的系統檔案也是不可能的,因為這會導致 Windows 無法正常運作。
技術細節
Triton 的開發就是為了解決這些問題。Triton 是一款 Windows 驅動程式,實現了 DirectX DDIs(Device Driver Interface)。在 Windows 中,應用程式會與系統的 Direct3D 和 DXGI 函式庫進行通訊。Direct3D 函式庫會將複雜的工作交給用戶模式驅動程式(UMD),而 UMD 則會實現 DDI。Triton 就是這種 UMD,負責實現 DirectX 的圖形加速功能。
未來展望
QEMU 的這項技術突破意味著 Linux 用戶可以在虛擬機中運行 Windows 遊戲,並且享受到現代視覺效果。這項技術也可以應用於其他領域,例如雲端遊戲和虛擬現實。未來,QEMU 的開發團隊將繼續改進和擴展這項技術,讓用戶可以享受到更好的性能和更廣泛的兼容性。同時,開發者也可以利用這項技術來創造更多的遊戲和應用程式,讓用戶可以在 Linux 平台上享受到更豐富的娛樂體驗。
