遊戲幀數暴漲&無需讀圖?談談PS5和RTX3000的黑科技
對於遊戲玩家來說,最近可謂是重磅消息連連。新一代遊戲主機無論是PS5還是Xbox SX,都公布了售價,即將在年底開售;而在PC領域老黃也祭出了新核彈RTX3000系列,性價比高得嚇人。這些全新的遊戲硬體,除了在性能和價格方面帶來驚喜,它們所帶來的全新技術,也會徹底改變未來遊戲的體驗。
關於新硬體帶來的遊戲技術,大家提及最多的可能就是光線追蹤,它可以帶來更加逼真的畫面。不過對於遊戲整體的體驗,可能卻是另一方面的技術,會產生更加翻天覆地的影響。而這方面技術,卻被很多玩家所忽視。今天,就來談談新一代遊戲硬體,在遊戲數據傳輸I/O機制上的革新,會為遊戲帶來怎樣驚人的變化吧。
現今遊戲的大問題:數據I/O瓶頸
如果你是一名有一定閱歷的遊戲玩家,應該都不難發現,多年來遊戲始終存在一個尾大不掉的問題——需要讀圖。在以往,這可能不是什麼大問題,但在近十年來越來越多遊戲擁抱開放世界,地圖做得越來越大,讀圖的時間愈發誇張。某些遊戲即在SSD的環境下,讀圖時間仍然足夠你去泡杯茶,體驗相當抓狂。
這其實就體現出了遊戲在I/O方面的瓶頸。在傳統的流程中,數據存儲在硬碟上,玩遊戲數據得先從硬碟讀取到記憶體,然後經由CPU分配,再傳輸到顯示記憶體中,最後由GPU來進行處理。可見,遊戲數據是需要經由硬碟-記憶體-顯示記憶體這個冗長的傳輸環節的,而且在這些環節當中還需要依賴CPU的調度,這並不高效。
遊戲數據的傳輸流程,先從硬碟經由CPU讀取到記憶體,然後CPU再將數據載入顯示記憶體,交給GPU渲染
隨著遊戲的地圖越來越大、畫面越來越精細,遊戲數據I/O方面的瓶頸愈發凸顯。這主要制約了遊戲在以下方面的表現。
·讀圖。首先影響的自然是前面提到過的讀圖。只要地圖足夠大,就算用上了SSD,仍會有明顯的等待時間,這點就不多贅述了。
像《血源詛咒》這樣的遊戲,復活、過關、換地圖都需要經由冗長的讀圖
作為一個古老的遊戲機制,讀圖伴隨玩家已久。但為何遊戲必須要讀圖?甚至遊戲為什麼要做成不同的關卡?在遊戲數據I/O瓶頸愈發突出的今天,越來越多人開始思考這個問題。
·場景製作。遊戲數據的I/O效率不高,導致遊戲製作者沒辦法一次性調用太多的數據,去製作理想中的龐大場景。
遊戲運行時,GPU所處理的數據來自於顯示記憶體,顯示記憶體乃至記憶體的容量和硬碟不可同日而語。遊戲製作者必須在螺螄殼裡做道場,用幾個G的數據,來構建當前畫面所有的遊戲場景;否則,數據就需要重新從硬碟讀取,替換當前顯示記憶體和記憶體的數據。
如此一來,遊戲場景要麼犧牲精細度,要麼縮減規模,不然就會頻頻讀圖——實際上很多遊戲也的確需要頻頻讀圖。為了掩飾讀圖、避免遊戲體驗中斷,遊戲製作者採用了很多巧妙的方法,例如《神秘海域》中,當玩家爬山爬了一段後,背後會發生懸崖崩落之類的情節,緊張刺激的同時,隨著崩落,舊的地圖也被刪掉了,顯示記憶體中的數據得到了清空,開始讀取下一個場景的數據,而讀圖過程則被CG動畫播片等手段掩飾。
《神秘海域》系列遊戲會用崩塌、爆炸等方式,刪掉舊地圖,騰出顯示記憶體容量
但無論如何,這也只是權宜之策。受限於容量有限的顯示記憶體、低下的I/O效率,遊戲場景始終難以隨心所欲地擴張。在畫面越來越精細、高精度貼圖紋理佔據越來越多容量的現今,遊戲場景製作受到遊戲數據I/O瓶頸的掣肘,愈發明顯。很多遊戲都做了大量鑽山洞之類的場景,就是不得已而為之——鑽山洞不需要太多數據堆砌場景,還可以藉此時機載入下一個大場景的數據。想要像超人一樣數秒內連續飛越幾個城市?對不起,現在的遊戲做不到。
·幀數上限。近幾年,市面上出現了很多高刷新率顯示器,佼佼者甚至把刷新率堆到了240Hz。然而大家不難發現,就算降低遊戲畫質,很多遊戲的幀數也依然沒法達到這個水平,而此時的GPU佔用率其實並不高,這其實也是遊戲數據I/O瓶頸導致的。
CPU頻率已最大,GPU卻遠沒有滿載,幀數還是沒法跑到240以上,一部分原因是CPU成了I/O調度瓶頸
前面提到,遊戲數據從硬碟傳輸到記憶體最後到顯示記憶體,這些過程當中,需要CPU參與調度。在高頻調度數據時,CPU成為了瓶頸,遊戲幀數無法進一步提高。
次時代的遊戲硬體,往往肩負著引領遊戲改革的使命,這次PS5和RTX3000「安培」GPU,正是如此。
PS5:獨有的架構打破I/O瓶頸
先來說說PS5。無論是Xbox SX還是PS5,都是用了SSD作為存儲介質。但是,雙方又有所不同,PS5的架構更多地為打破遊戲I/O的瓶頸而設計。
根據當前資訊,PS5的SSD傳輸速率達到了5.5 GB/s,但這不是關鍵。關鍵在於,PS5的遊戲數據讀取,和傳統流程是不同的。在PS5的架構中,在一定程度上,GPU可以直接向SSD索取所需要的遊戲數據,這減少了數據中轉的環節,效率大為提升。
PS5是如何做到這一點的呢?這需要從當前遊戲的數據存儲架構說起。
當前遊戲的數據,是以打包的形式存放在硬碟中的。一張張貼圖、各種紋理的文件,往往會集中打包,當遊戲需要相應數據時,才會解包輸送到顯示記憶體當中,隨後再交給GPU渲染。
某PC遊戲中的紋理文件,其實是一個紋理包,要輸送到顯示記憶體解壓
如此一來,顯示記憶體就不得不存放大量未必用得到的貼圖紋理數據,每次切換新場景都必須歷經一次讀包-解包的過程,這在遊玩過程中,就體現為讀圖。
為什麼遊戲數據要打包放置?在傳統HDD硬碟中,將零散文件統一打包,有助於減少磁頭尋道,HDD硬碟的性能瓶頸就在於此。將遊戲數據打包為大文件,可以讓HDD持續傳輸數據,提升性能。
PS4等機器仍使用HDD,如果紋理不打包分散存儲,那麼HDD冗長的尋道時間,會佔據更多讀圖時長
現在已經進入了SSD時代,SSD沒有尋道這一概念,對零散文件的讀取速度是HDD的百倍不止,更合理的機制是GPU需要什麼貼圖紋理,就直接讀取什麼貼圖紋理。但由於當前的遊戲主機PS4、Xbox One依然採用HDD,遊戲也只能隨主流適配HDD,因此遊戲的做法還是將數據打包在一起,這令SSD需要讀取額外的大量數據,並沒有發揮出應有特長。大家從HDD換用SSD,感覺到的變化也就是讀圖更快了,但讀圖始終是一道邁不過去的檻。
在PS5中,情況終於得以改變。根據目前透露的消息,針對PS5開發的遊戲,其貼圖等數據不再集中打包,而是分布放置(或是打成更小的包),遊戲可以僅僅讀取所需數據到顯示記憶體,效率大為提升。
PS5的存儲架構,GPU能更直接讀取到SSD的數據,SSD的主控也提供了解壓紋理包的功能
PS5的獨到設計,有兩個好處。
·消滅讀圖的過程。遊戲數據不再需要統一打包、讀取,可以按需實時讀取,更加靈活,沒有了統一載入也就是讀圖的過程;
·解除場景規模限制。前面提到,遊戲場景規模受限,是由於顯示記憶體難以承載大場景所需的海量數據。在PS5的新存儲架構中,場景所需要的數據分散存儲在SSD中,實際需要的時候才會實時讀取,這些數據再無必要一次性載入顯示記憶體,大大減輕了顯示記憶體負擔,也令更大場景的製作成為了可能。
理論上如此,實際也是如此。索尼早前演示了運行中PS5中的《蜘蛛俠》新作,演示中蜘蛛俠在地圖上自由飛盪過一座座高樓,儘管地圖非常廣闊,但PS5基本不需要讀圖。
PS5中運行《蜘蛛俠》Demo,高速在大地圖移動無需讀圖
PS4Pro運行同樣的Demo,可以看到頻頻出現讀圖等待
RTX3000「安培」GPU:開創性的RTX IO
改善遊戲數據讀取流程這一思路,不僅索尼有想到,老黃也意識到了。在最近發布的RTX3000系列「安培」GPU中,帶來了DirectX Storage的特性,它有望打破PC遊戲的I/O瓶頸。
DirectX Storage其實是微軟推出新DirectX API,而NV在安培GPU中,對其進行了支援,推出了RTX IO技術。簡單來說,RTX IO可以讓PC遊戲的數據傳輸繞過CPU,直接傳輸到顯示記憶體供GPU使用,這其實和PS5的設計是有相似之處的。
DirectX Storage針對SSD進行優化,無論是PC還是新一代的Xbox,都會使用這個API
毫無疑問,RTX IO可以大大增加PC遊戲數據傳輸的效率,根據NV給出的數據,通過RTX IO,GPU解壓遊戲數據的性能甚至超過了PCIe Gen4下SSD的傳輸速度。這一方面可以大大減少讀圖時間,另一方面可以突破CPU瓶頸,讓PC遊戲的幀數更加「電競級」。
前面提到過,很多PC電競遊戲,幀數上不去,其實不是GPU的問題。通過軟體觀察到,GPU的佔用率其實根本不高,但CPU卻已經是滿頻率運行,幀數的瓶頸在於CPU。CPU調度的數據「喂不飽」GPU?現在RTX IO可以讓遊戲數據I/O繞開CPU,從根本上解決這問題。如此一來,遊戲幀數就有了更高的上限,在高刷新率螢幕逐漸普及的今天,無論對於職業電競選手還是普通玩家,這項技術都意義重大。
當前PC遊戲幀數的一個瓶頸,在於I/O系統,遊戲數據傳輸都需要經過CPU,CPU已經不堪重負
另外,RTX IO也可以帶來解除場景規模限制的好處,這和上面PS5文段中所敘述的是類似的,這裡就不多作贅述了。
總結
很多老玩家都感概,近年來遊戲畫面,已經沒有什麼質的提升了。現在的大部分遊戲的畫面對比的《孤島危機》,有質變的提升么?《孤島危機》誕生於2007年,用《孤島危機》對比它五年前也就是2002年的遊戲,再用現在的遊戲對比距離現在十多年前《孤島危機》,不能難發現最近十幾年遊戲畫質提升之小,是遠慢於之前的。
大部分遊戲畫面對比2007年的《孤島危機》,並沒有質的提升,光線追蹤的普及才能改變這一切
之所以如此,是因為遊戲的圖形技術,久久未有根本性的革新。PS4、Xbox One這代遊戲主機,將光柵化等圖形技術發揮到了一個新高度,然而遊戲的渲染流程沒有質變。PS3/Xbox360時代開始出現的法線貼圖、環境光遮蔽、動態光照、體積光等,當今依然是提升遊戲畫質的法寶。同樣,遊戲的渲染流程,也依然停留在從硬碟讀取數據包、傳輸到記憶體顯示記憶體解壓,再交由GPU渲染的傳統。從這個角度來看,其實PS4、Xbox One是設計相當保守、缺乏開創性的一代遊戲主機。
在這個世代,轉機終於來了。支援光線追蹤的GPU實裝在了PS5、Xbox SX等下一代遊戲主機以及PC顯示卡中,SSD也成為了遊戲硬體的標配。遊戲全方位發生質變,終於有了前提條件。
光線追蹤大大提升了遊戲畫面的上限,而遊戲數據I/O的變革,則可以讓遊戲流程天翻地覆。相信隨著新一代遊戲硬體的普及,越來越多的玩家會感嘆「原來遊戲還可以這麼做」,共同期待吧。