微軟全新的Win10係統已經於2015年7月29日發布正式版,除了界麵和操作上的改進之外,Win10最讓遊戲玩家動心的部分莫過於DirectX 12(以下簡稱DX12)了,這是新一代的圖形API規範,那麼它到底為我們帶來什麼樣的變化呢?很多在使用Win10係統的用戶對DX12也是一知半解,下麵就由小編分享一下DirectX 12的林林總總
DX12將帶來3D遊戲性能、畫質上的提升
對於DX12,我們說起來並不算陌生,超能網前前後後曝光DX12消息的新聞和評測有幾十篇了,大家對DX12相對DX11的性能提升印象很深刻吧,不過另一方麵,DX12對我們來說還是“熟悉的陌生人”,我們了解其中的一部分,但是更多的人還沒有最好迎接DX12的準備,今天這篇文章將詳細介紹DX12到底帶來了哪些變化,又有哪些顯卡和平台將會支持DX12。
1、DX12帶來的新變化
我們都知道微軟會在今年的Windows 10係統帶來DX12,也從之前超能網連篇累牘的報道與測試中知道了DX12改善了底層硬件效率,多線程支持更好,遊戲性能更強。但大家對DX12的完整印象依然很模糊,它到底能為我們帶來什麼新變化,使用DX12 API的遊戲會在畫質、性能等方麵有質的提升嗎?
DX12可以分為三個層次
就像之前的DirectX規範一樣,DX12實際上也可以分為多個功能不同的功能層(Feature Level),不過DX12這次還多了一個底層優化,所以DX12規範可以視作三個不同層級:
·D3D 12 Low Level API:這部分實際上是見諸報道最多的一部分,DX12相比DX11性能大提升就是底層優化的功勞,這也是DX12最吸引人的一點,不論是對遊戲開發者還是對遊戲玩家來說都是如此。
底層優化部分包括Low Overhead(低開銷)、更多的控製及異步計算(Async Compute)等多個部分,低開銷類似AMD提出的Mantle優化,後者也是大幅改善了遊戲的多線程效率,降低了驅動層開銷,現在這部分已經可以使用3DMark的Driver Overhead做測試了,詳情可以參考我們之前做過的兩篇測試:
·DX12 Feature Level 12_0:前麵的底層優化部分實際上是幫助DX12打通了“經脈”,提高了開發者的潛力,但那些並不涉及具體的招式——Feature Level 12_0這部分開始涉及更新的3D渲染方法,包括平鋪資源(Tiled Resoure)、歸類UAV訪問、無綁定(Bindless)等等,其中多項功能實際上DX11.1中就有了,不過DX11中多是T1級別的,現在的則是T2級別的。
·DX12高級功能Feature Level 12_1:跟以往的DX11.1/11.2一樣,DX12還有比Feature Level 12_0更高級的Feature Level 12_1功能,包括立體平鋪資源(Volume Tiled Resources)、保守光柵(Conservative Rasterization)、光柵順序視圖(Raster Order Views)等,這些功能通常屬於可選支持,但它們可以更好地提升開發者的效率或者遊戲畫質,同時對顯卡的要求也更高。
以上三部分是DX12規範的主要內容,但這些還不是DX12的全部功能,還記得之前曝光過的DX12黑科技——A、N顯卡混合交火嗎?微軟確實在DX12中嚐試了不同顯卡的混搭技術,該技術名為Muti-Adapter(多顯卡適配器),它就可以把不同架構的GPU聯合起來渲染。
DX12的多GPU混合渲染演示
微軟的Build大會上做過一個多顯卡的演示,分別使用獨顯及獨顯+集顯兩種方式渲染635幀的UE引擎,其中獨顯渲染幀速35.9fps,支持Muti-Adapter的集顯+獨顯平台成績為39.7fps,小幅優勢領先了獨顯平台。(提升不大的原因主要是獨顯與集顯的性能差距通常很大,並行運算的時候不會有CF/SLI這樣的接近2倍提升,之前Lucid的Virtu技術也是如此。)
Muti-Adapter技術另一個好處就是多卡下對GPU顯存的利用率更高,以往不論是CF還是SLI技術,DX隻能將其中一個顯卡的顯存存儲數據,另一個顯卡的顯存就浪費了,比如GTX 980 Ti顯卡雙卡SLI時,其總的顯存容量還是4GB,多卡互聯時其GPU容量並不能翻倍。
現在有了Muti-Adapter技術,它就可以合並所有的顯存而利用了,顯存容量可以翻倍了。(微軟的WDDM 2.0模型還支持了GPU虛擬內存,猜測跟這個也有關係)
總之,微軟的DX12最重要的變化就是帶來了底層硬件優化,它改善了多線程效率,降低了驅動開銷,這對遊戲玩家和開發者來說都是大有裨益的。3D渲染技術上DX12也有更新,而在多卡互聯上,DX12有可能成為黑馬,如果最終對AMD、NVIDIA及Intel核顯異構運算支持到位,那麼遊戲玩家屆時就不會受CF或者SLI的限製了。
2、DX12顯卡兼容列表
巧婦難為無米之炊,不過在解決米之前我們得先解決做飯用鍋問題——那些顯卡才能支持DX12,或者說完整支持DX12,從前麵的介紹來看,支持和完整支持還是有些不同的。
對於DX12支持,我們之前聽到的最多的就是AMD、NVIDIA各自宣稱他們的GCN架構、Fermi及之後的架構都會支持DX12,Intel也是自第四代智能處理器、也就是Haswell開始的核顯開始支持DX12。
這方麵,AMD之前公布了具體的DX12兼容列表了,NVIDIA前不久也公布了自家的DX12兼容名單,不過NVIDAI還趁機“黑”了AMD一把,因為AMD的顯卡目前並不完整支持DX12規範,但N家的GTX 980/980 Ti等GM2xx核心的GPU可以完整支持DX12_1。要知道在DX11時代,AMD的顯卡能完整DX11.1及DX11.2規範,而NVIDIA的顯卡隻能支持到DX11.0,現在隻能說是風水輪流轉了。
AMD、NVIDIA、Intel對DX12規範的支持度
AMD、NVIDIA、Intel三家廠商的GPU對DX12的詳細支持規格可以參考上圖,AMD的GCN 1.0架構(多數HD 7000及後來的馬甲)隻能支持兼容DX12、支持到Feature Level 11_1,HD 7790及R7 260/260X、R9 285等GCN新核心的顯卡可以支持到Feature Level 12_0,但目前所有顯卡都不能完整支持Feature Level 12_1功能。
AMD顯卡的DX12支持列表
NVIDIA方麵,雖然Fermi及之後的顯卡都可以兼容DX12,不過真要支持DX12功能還得看Maxwell架構,其中GM1xx第一代Maxwell架構的顯卡可以支持到Feature Level 12_0,包括GTX 980/970/960/Titan X/980 Ti在內的第二代Maxwell架構則可以支持到Feature Level 12_1。
Intel方麵,Haswell之後的核顯都可以兼容DX12,但說到Feature Levei支持,Haswell及最新的Broadwell依然隻能支持到Feature Level 11_1。
當然,事情也得分兩麵看,NVIDIA當年不能完全支持DX11.1,就說DX11.1是可選功能,實際影響不大,現在他們能完整支持DX12,就開始宣傳DX12_1的好處,實際上DX12_1的3D功能也不會有什麼質變,實際遊戲中也難說能帶來明顯的體驗差別,大家對這個問題還是淡定就好。
3、DX12平台及軟件支持
邁過硬件支持這一關之後我們還要麵臨軟件平台支持的問題,這會涉及到我們用的操作係統選擇。
目前能確定支持DX12的係統就隻有微軟全力打造的Windows 10係統,以往期待的Windows 7支持DX12的美夢已經破滅了,不過微軟多少也發了點善心——Windows 7/8/8.1用戶可以免費升級Windows 10係統。
微軟之所以如此決絕地讓DX12成為Windows 10專屬,除了保證Windows 10隻許勝不許敗的戰略之外,還有一個因素不能忽略——Windows 10升級了WDDM 2.0顯示驅動引擎,支持DX12必須先支持WDDM 2.0,Windows 7支持的還隻是WDDM 1.1。
Widonws 10是目前唯一確定支持DX12的係統
WDDM 2.0中最主要的變化是支持GPU虛擬顯存尋址(GPU virtual memory),所有GPU物理內存都被抽象成虛擬內存,由GPU負責管理,每個步驟都可以有自己的虛擬內存。另一個新功能是驅動常駐(Driver residency),顯存管理器會數據從命令緩衝器提交到驅動層之前所有分配空間都是常駐的,為此還增加了DDI設備驅動接口。
支持WDDM 2.0和Windows 10是支持DX12的一個前提,我們現在依然不能確定他們與DX12之間到底誰是因誰是果,但可以肯定的是微軟隻讓Windows 10支持DX12更多地還是出於商業策略,Windows 7/8/8.1在技術上不見得就不能支持WDDM 2.0及DX12,現在我們能做的隻能是祈禱Windows 10係統能跟Windows 7一樣大獲成功,成為遊戲玩家的首選平台,不然以後可有得糾結了。
4、支持DX12的引擎及遊戲
有了DX12顯卡和Windows 10平台,支持DX12還是隻賣出第一步,這些內容相當於做飯的大廚和廚具,飯菜是否好好吃還得看食材——DX12遊戲,這一項是目前進度最慢的,畢竟這是最頂層的,落後於硬件和係統平台是必然的,反過來說軟硬件平台沒準備好的話,DX12遊戲也不可能運行起來。
支持DX12一勞永逸的方法還是得靠遊戲引擎,目前已經支持DX12的3D引擎有EPIC的UE 4.4、Crytek的CryEngine、Unity的Unity 5、Oxide Games的Nitrous等,已有的遊戲包括《九陽神功》、賽車遊戲Forza 5等,前者是CryEnging引擎的,後者是UE引擎的。
還有很多遊戲廠商自己開發的引擎支持DX12,比如Build大會上驚豔四方的Square Enix《最終幻想》所用的 Luminous 引擎打造的的“巫女哭泣”(Witch: Chapter 0)Demo等。
《九陽神功》將成為首個支持DX12的國產遊戲
值得一提的是,在首波DX12遊戲中,國內的遊戲廠商這次也走在了前列,Build大會上遊戲蝸牛就作為嘉賓發表了《九陽神功》(英文King of wushu)遊戲的開發經曆,它就使用了CryEnging引擎並支持DX12,當然還有NVIDIA的Gameworks特效。
《奇點灰燼》最快6月就能上市了
大部分DX12遊戲發布上市也要等到今年底的聖誕節期間了,一些遊戲大作可能要到明年,不過我們最早能見到的DX12遊戲很可能是《奇點灰燼》(Ashes of the Singularity),這款遊戲使用的Nitrous引擎也不默認,關注過Mantle的玩家對該引擎另一個作品《Star Sworm》應該很熟悉,它能支持Mantle也就能更好地支持DX12。
不過這款遊戲之所以這麼快上市很可能是它隻是支持了DX12中的底層優化功能,這部分功能之前支持Mantle的時候應該已經做好了,但它應該沒有完全使用高級DX12渲染功能,否則開發進度上不會這麼快。
總之,DX12雖然是Windows 10功能中的一部分,但對PC遊戲玩家來說DX12比目前的DX11性能更強、功能更多,對移動平台來說,DX12也有著提升性能甚至降低功耗的奇效(GPU利用率上升,CPU功耗可以降低了)。相比DX11需要全新硬件不同,DX12可以兼容AMD、NVIDIA、Intel的DX11顯卡,雖然更高級的功能還是需要全新的硬件,但DX12相對DX11來說總體上並沒有提高硬件需求,這種平滑升級更有利於玩家升級到Windows 10平台。
win10相關教程