真DX12效能測試《奇點灰燼 Ashes of the Singularity》

ashes-of-the-singularity-dx12-amd-1

AMD攜手獨立製作由Oxide Games與Stardock Entertainment所開發的即時戰略遊戲《奇點灰燼 Ashes of the Singularity》,可以說是目前遊戲市場中,首款可運行DirectX 12的beta遊戲。筆者遂使用AMD Radeon R9 Fury X與NVIDIA GeForce GTX TITAN X來試試,順道來看看DirectX 12究竟有什麼好料。

 

DirectX 12葫蘆裡的新招

DirectX 12將API分為不同的功能層級(Feature Level),在直觀上DirectX 12(以下簡稱DX12)僅分為12_0與12_1兩層,但其實這次DX12還有個底層API,因此可將DX12分為D3D 12 Low Level、Feature Level 12_0與12_1三層。

D3D 12 Low Level:這層可以說是在蹲馬步,是為了替12_0與12_1奠定好的優化效果所致,像是Low Overhead、More Control與Async Compute。Low Overhead筆者認為是為了降低過多的效能浪費,因此在API底層進行優化;而更多的控制則是,讓遊戲能得到更多的硬體控制權,讓開發者更能充分的發揮系統效能;Async Compute非同步運算,則是將GPU工作分層,將運算材質、記憶體處理、陰影處理等工作,在非同步的狀況下善用GPU資源進行處理。

而Feature Level 12_0與12_1則提供新的3D渲染方法,例如Volume Tiled Resource(12_1)、Conservative Raster(12_1)、Raster Order Views(12_1)、Tiled Resource(12_0)、Typed UAV Access(12_0)、Bindless Textures(12_0),若對於研發DirectX有興趣的朋友,則可以在網上搜尋“Direct3D feature levels”,即可找到從9_3到最新的12_1各版本所支援的技術。

綜觀來看,DX12與玩家所在意的效能,有著密切關係的肯定是「非同步運算」「多線程指令緩衝」。在過去DX11對於多核心多線程的CPU優化不佳,大多DX指令都集中在Core 1進行處理,反而冷落了其它可用的核心,在DX12當中可以有效的,發揮多核心多線程CPU的能力,使得遊戲效能更突出。

而非同步運算,則是將以往線性工作分層管線進行平行處理,藉此讓效能再次提升,因此這功能與NVIDIA或者AMD的GPU架構設計、驅動程式的支援,就有著密切的關係。舉個例來說,AMD的GCN(Graphics Core Next)架構,在設計之初就有著ACE(Asynchronous Compute Engines)單元,有助於進行DX12所支持的非同步運算,換句話說GCN架構天生就支援非同步運算,只不過各位可別小看NVIDIA驅動優化的能力,因此現在斷定A、N兩家對DX12的效能提升還言之過早。

此外DX12還有個殺手鐧「Multiadapter」,那就是支援不同廠牌的顯卡進行協同運算,例如Intel GPU+NVIDIA GPU的方式,進行協同運算,藉此讓效能再提高一些;而這技術對於NVIDIA SLI與AMD Crossfire多顯卡系統中,可以允許遊戲開發商,盡情的使用每個GPU的VRAM空間,讓多卡系統發揮出更強大的硬體效能。

ashes-of-the-singularity-dx12-amd-2
↑ 過往DX11對於多核心CPU運算優化不佳,導致大部分的工作都在Core1處理。

 

ashes-of-the-singularity-dx12-amd-3
↑ 時至今日DX12,已經能夠有效的運用多核心CPU的資源。

 

ashes-of-the-singularity-dx12-amd-4
↑ 在以往,這些運算都會是線性進行,如今在DX12能透過非同步運算加速這些工作。

 

《奇點灰燼》Benchmark 2.0

《奇點灰燼》的效能測試針對部分功能進行了調整,方能全面測試運行這款遊戲的系統性能,像是禁用「 單位死亡」功能,在RTS遊戲中畫面會有大量的物件,若物件因為攻擊死亡,則帶有不定變因,使得效能測試會有落差,因此在這版則是禁用單位死亡,此外Benchmark 2.0版本將測試畫面細節提升有著:1.新環境、2.新材質、3.平均畫面更新數輸出。

此次奇點灰燼是透過Steam進行販售,因此在beta測試上也是透過Steam來安裝遊戲,而在遊戲啟動時可以選擇要運行DirectX 11或者DirectX 12 API,當然運行DX12需要使用Windows 10作業系統,但比較麻煩的是,若運行DX12會導致遊戲截圖軟體Fraps無法使用,而Steam平台提供的節圖功能 (F12),同樣在DX12上無法運作,因此筆者則使用擷取盒的方式擷取畫面。

而遊戲效能測試,則是大場面的雙方會戰,空對空的大規模戰爭畫面,而測試結束之後,會有平均幀數的總結畫面,以及此次測試時的遊戲設定與硬體資訊,就測試來看提供的資訊相當充足,筆者也將四次測試結果,整理成圖表讓大家好分析、比較。

ashes-of-the-singularity-dx12-amd-5
↑ 奇點灰燼實際遊戲畫面,一開始只有一台工程機,要趕快先穩定資源的開發,接著生產工程機、工廠,產出第一批部隊後,就可以拓荒開地圖並尋找更多的資源,再慢慢的建立軍隊與防禦工事。

 

ashes-of-the-singularity-dx12-amd-6
↑ 遊戲測試時,會有一套真實玩法的腳本,讓遊戲中的部隊進行會戰。

 

從最後的結果來看,AMD與奇點灰燼有著密切合作,在效能表現上Normal Batches都有60fps的表,現但相對來說DX11與DX12的比較上,fps表現並沒有大幅度的落差,換句話說從奇點灰燼的效能測試中,很難了解到DX12相較於DX11,在遊戲開發上與最終遊戲效能表現的差距。而較好玩的是,DX12有針對多核心多線程的CPU優化,這在遊戲啟動時就會自動進行核心優化的動作,而在效能測試結果中,Intel Core i7-6700K處理器,不論搭配AMD或者NVIDIA的顯示卡,都在All Batches中獲得99fps的平均幀數;各位要知道,這在DX11的時代,是不可能偵測CPU的吞吐量或者相關的訊息。

就目前僅只有奇點灰燼與3DMARK,可以測試DX12的效能來看,現在下結論還言之過早,此次測試分數也提供給各位玩家參考,期待日後更多款遊戲邁入DX12 API新紀元。

ashes-of-the-singularity-dx12-amd-7
↑ 效能測試整理。

 

ashes-of-the-singularity-dx12-amd-8
↑ AMD F9 Fury X DX12。

 

ashes-of-the-singularity-dx12-amd-9
↑ AMD F9 Fury X DX11。

 

ashes-of-the-singularity-dx12-amd-10
↑ NVIDIA GTX TITAN X DX12。

 

ashes-of-the-singularity-dx12-amd-11
↑ NVIDIA GTX TITAN X DX11。

臉書留言