微軟大型免費“公測”系統(tǒng)Windows 10的裝機量目前已經(jīng)達到3億臺,市場份額則達到14.5%,成為全球使用人數(shù)第二多的操作系統(tǒng),距離10億臺的目標指日可待。毫無疑問,已經(jīng)有越來越多的游戲玩家轉(zhuǎn)向Windows 10系統(tǒng),其中緣由不言而喻,畢竟微軟新一代圖形API——DirectX 12(以下簡稱DX12)是Windows 10專屬的,那么想玩新游戲,體驗最精彩的3D特效,非Windows 10莫屬。
據(jù)不完全統(tǒng)計,微軟大型免費“公測”系統(tǒng)Windows 10的裝機量目前已經(jīng)達到3億臺,市場份額則達到14.5%,成為全球使用人數(shù)第二多的操作系統(tǒng),距離10億臺的目標指日可待。毫無疑問,已經(jīng)有越來越多的游戲玩家轉(zhuǎn)向Windows 10系統(tǒng),其中緣由不言而喻,畢竟微軟新一代圖形API——DirectX 12(以下簡稱DX12)是Windows 10專屬的,那么想玩新游戲,體驗最精彩的3D特效,非Windows 10莫屬。
Windows 10巨大的裝機量也推動了DX12游戲的蓬勃發(fā)展,今年以來已經(jīng)有越來越多的游戲支持DX12,或者是在游戲正式發(fā)售后通過補丁升級了對DX12的支持,想要找一款DX12的游戲仔細體驗一番已不再是件難事。不過,對于DX12帶來的諸多變化以及AMD、NVIDIA和Intel對DX12的支持情況,很多讀者還是一頭霧水,那么,DX12里到底都有什么新東西?支持DX12的游戲又有哪些呢?
有關(guān)DX12帶來的技術(shù)革新,我們在去年已經(jīng)做過一次全面解析,著重介紹了DirectX 12到底帶來了什么,在本文中,雖然我們還聚焦于DX12,但與上次的側(cè)重點有所不同,DX12的一些技術(shù)介紹、功能等級之前已經(jīng)說過了,這次我們的著眼點則是AMD、NVIDIA和Intel最新顯卡對DX12的支持情況以及它們之間的主要區(qū)別,另外,我們還會提及一些已上市或者即將上市的可支持DX12的游戲。
DX12到底帶來了什么新功能?
盡管本文不會再長篇贅述DX12的新特性,但我們還是有必要重溫一個話題:DX12帶來了什么新功能?去年我們說過,這次還會再說一次,因為即便Windows 10裝機量超過3億了,這個問題對不少用戶來說仍是個困惑——自己使用的顯卡到底支持什么DX12功能。
從最初曝光的類似AMD Mantle那樣的底層優(yōu)化,再到支持AMD、NVIDIA顯卡混合工作,微軟的DX12確實帶來了不少新技術(shù)和新功能,而就API層面來說,DX12的新功能可分為三個層級:
首先是底層的優(yōu)化,DX12降低了系統(tǒng)開銷(Low Overhead),給予開發(fā)者更多的控制(More Control),并支持異步運算(Asynchronous Compute)。其中,對用戶來說,低開銷這一項是最重要的,我們此前見過的DX12優(yōu)勢特性展示大多基于這一點,它跟AMD的Mantel優(yōu)化很相似,可以提高游戲性能,有效利用多核處理器。另外,異步運算也值得一提,AMD與NVIDIA在這一點上有分歧,產(chǎn)生過不少爭議,后面我們還會重點談到。
DX12帶來的渲染功能主要是平鋪資源(Tiled Resoure)、歸類UAV訪問、無綁定(Bindless),這屬于DX12 Feature Level 12_0級的要求。一般來說,支持DX12 Feature Level 12_0已經(jīng)算是完整支持DX12了,不過類似此前的DX10.1、DX11.1一樣,DX12還有個更高級的Feature Level 12_1,其中有保守光柵(Conservative Rasterization)、光柵順序視圖(Raster Order Views)等新功能。
參考前面那張NVIDIA的PPT,需要留意的是,NVIDIA在這里“耍”了一點小花招——從圖中的結(jié)構(gòu)劃分來看,我們很容易誤認為立體平鋪資源(Volume Tiled Resources,簡稱VTR)也是Feature Level 12_1的要求,但實際上它并不是,VTR是DX11.3里的功能了,在DX12中并不是必備要求。
實際上,微軟對DX API的支持定義了多個級別,上述很多技術(shù)其實并不是DX12中才出現(xiàn)的,此前的DX11及DX11.1中就被列為可選功能了,在DX12中只是把平鋪資源、無綁定等特性變成了必備或者提升了功能級別。
具體到每個技術(shù)上,它實際上也是分為多個等級,可分為Tier 1(簡稱T1,玩魔獸的玩家對這種稱呼應該不會陌生)到T2再到T3,不過,本文并不會詳細介紹T1到T3的區(qū)別,也不會詳細介紹上述技術(shù)在圖形渲染中具體的作用,因為這些東西說清楚不容易,而且內(nèi)容太枯燥,非專業(yè)人士不會對此感興趣的。
我們只要知道的是,微軟在DX FL 12_0、DX FL 12_1上的定義比較寬松,反倒是NVIDIA、AMD這兩家廠商私下里爭得異常激烈,就和之前的DX10.1及DX11.1/11.2完整支持一樣,只不過這一次是NVIDIA占“上風”,他們的顯卡可以支持到DX FL 12_1,而AMD的GCN架構(gòu)只支持到DX FL 12_0,對可選的保守光柵、光柵順序視圖等技術(shù)并不熱心。
AMD、NVIDIA、Intel顯卡對DX12的支持程度
那么AMD、NVIDIA再加上Intel,這三家的GPU對DX12到底支持到什么程度呢,為此,我們專門制作了下面這張表格,從底層優(yōu)化再到高級特性,這張表格基本上都囊括了,其中對尚未正式確認的Polaris、Psacal及Kaby Lake也給了目前所知的信息,當然,這部分內(nèi)容就只供參考了。
在底層優(yōu)化方面,這三家的GPU做得都不錯,AMD承諾GCN架構(gòu)、NVIDIA承諾Fermi及之后、Intel的Haswell及之后架構(gòu)都可以支持。
異步運算方面值得重點說,AMD、NVIDIA雙方已經(jīng)打過不少口水戰(zhàn)了,是目前的熱點。從技術(shù)上來講,異步運算是指GPU在運算過程中同時支持圖形及計算隊列,大家可以把它理解為CPU指令的順序及亂序執(zhí)行,異步運算就相當于亂序指令,可以不按順序處理指令,它支持圖形及計算指令混合運算,這樣做的好處就是提高效率,進而提升性能。當然,異步運算不僅能讓游戲受益,VR應用中也可以受益。
在這兩家中,AMD強調(diào)他們從GCN架構(gòu)開始就重視異步運算,這幾代架構(gòu)都做了支持,當然每代GPU支持的混合指令數(shù)量并不完全相當,但確定都是支持異步運算的。
AMD強調(diào)他們是唯一完整支持異步運算的,言外之意就是NVIDIA或者Intel的GPU不支持異步運算,這在《奇點灰燼》游戲測試中也有過交鋒,有一種說法是NVIDIA的GPU功能上是支持異步運算的,但驅(qū)動沒做好,但這個解釋其實很有問題,驅(qū)動之前沒做好可以理解,但是直到現(xiàn)在也沒做好,這恐怕就是有問題了。
對此,我們查閱過相關(guān)資料,個人傾向于認為NVIDIA直到Maxwell 1.0架構(gòu)中都是不能真正支持異步運算的,只能執(zhí)行純圖形指令,不支持混合指令,Maxwell 2.0架構(gòu)中可以支持混合指令,但性能較之對手略遜一籌,直到Pascal架構(gòu)中,這個問題可能才得以解決——此前發(fā)布新聞中,NVIDIA強調(diào)了Pascal架構(gòu)的異步運算性能。
至于Intel核顯,在Intel官網(wǎng)可以找到有關(guān)MIC眾核架構(gòu)中對異步運算的支持,但目前沒證據(jù)證實他們的核顯是否支持異步運算,對此,個人傾向于認為不支持。
在DX12的幾個主要特性中,NVIDIA從Maxwell 2.0架構(gòu)開始做得確實比AMD好了,并且還支持DX12_1,不過話說回來,DX12_1本來就是可選的,并非強制標準,實際應用中開發(fā)者選擇什么級別的功能來開發(fā)游戲也比較復雜,在這一點上,NVIDIA的領(lǐng)先并不足以擊倒AMD,因為后者的GCN顯卡也做到了DX12_0支持。
AMD的變數(shù)發(fā)生在Polaris及Vega顯卡上,也就是GCN 4.0架構(gòu),此前AMD并沒有公開新架構(gòu)的DX12支持程度,樂觀點看,AMD可能會趁機補足對DX12_1的支持,減少被NVIDIA攻擊的弱點,不過真要是不做改動的話,大家也不要驚訝,這也沒什么大不了的。
主要的DX12游戲一覽
在API層面,DX12_0還是DX12_1的支持其實并沒有那么重要,影響用戶的還得看DX12游戲,這里簡單統(tǒng)計了已上市及未上市但基本確定支持DX12的游戲,雖然這不是所有DX12的列表,但挑選的絕對是目前的熱門或者知名游戲。