游戲NPC分布密度高《博德之門3》第三章大幅損耗CPU性能
在上周《博德之門3》的主要內(nèi)容“掉落”后不久,我注意到有很多評(píng)論表明,玩家玩得越深入,游戲的性能特征變化就越大。早期體驗(yàn)老手想要更具體的第三個(gè)場(chǎng)景測(cè)試,感謝Twitter用戶darkessfx給我們的游戲保存,我們獲得了99個(gè)小時(shí)的保存時(shí)間,并準(zhǔn)備進(jìn)行一些壓力測(cè)試性能測(cè)試。
那么,第三幕有什么特別之處?簡(jiǎn)單地說,這都是關(guān)于密度,將行動(dòng)轉(zhuǎn)移到Baldur's Gate城市本身,這是該系列中的一個(gè)大城市,擁有許多npc。在我上周的核心評(píng)測(cè)中,我注意到中等規(guī)格的pc在人口稠密的地區(qū)表現(xiàn)不佳,在城市中運(yùn)行表明這里的NPC數(shù)量明顯更高。這里的密度大大增加了CPU負(fù)擔(dān)。
在第三章節(jié)中這種較重的表現(xiàn)的一個(gè)怪僻之處在于移動(dòng)會(huì)讓游戲?qū)PU造成明顯的負(fù)擔(dān)。在一個(gè)特定的靜態(tài)場(chǎng)景中,我注意到酷睿i9 12900K的幀率為90fps,但只是在小圓圈中移動(dòng)角色會(huì)使性能下降20%,即使屏幕上的視圖和對(duì)象數(shù)量基本上是相同的。幀率較低,但更有針對(duì)性的是,幀時(shí)間更短。
在第三幕中發(fā)現(xiàn)的另一個(gè)問題是鏡頭過渡到過場(chǎng)動(dòng)畫或?qū)υ挘@是在這個(gè)區(qū)域中經(jīng)常發(fā)生的事情。過渡到過場(chǎng)動(dòng)畫通常會(huì)導(dǎo)致較高的CPU使用率,但由于第三幕的CPU負(fù)擔(dān)通常更高,這些進(jìn)入對(duì)話的暫?,F(xiàn)在明顯更糟糕。然而,你會(huì)注意到,在第三幕中費(fèi)力的場(chǎng)景中,最大的影響可以歸結(jié)為整體的幀時(shí)間穩(wěn)定性——或者我稱之為“幀健康”。在嵌入的視頻中可以更好地從視覺上解釋這一點(diǎn),但是當(dāng)幀時(shí)間增加50%到100%時(shí),這就表現(xiàn)為口吃。更復(fù)雜的是,城市里的地震——每次地震都伴隨著多個(gè)大的幀時(shí)間尖峰,呈現(xiàn)出明顯的口吃。
渲染API的選擇也可以發(fā)揮作用。在Vulkan下,游戲以與DirectX 11相似或更差的方式運(yùn)行npc裝載區(qū)域。所以,盡管Vulkan在Nvidia或AMD硬件上沒有npc的空白處速度更快,但在npc多的地方它的運(yùn)行速度卻更差——在我的12900K上大約差10%。
這是一款頂級(jí)處理器,但坦率地說,它對(duì)性能的影響在主流的Ryzen 5 3600上是災(zāi)難性的。性能立刻下降了50%,但幀時(shí)間卻非常非常糟糕。雖然12900K確實(shí)有一些幀時(shí)間峰值和一些抖動(dòng),但Ryzen 5 3600的情況更糟,幾乎每隔一幀渲染都會(huì)顯示肉眼可見的長(zhǎng)度變化。它的平均運(yùn)行速度為30fps,但看起來(lái)并不流暢,就像PlayStation主機(jī)上的《血源》一樣,因?yàn)槊繋牟町愄吡?。如果從一幀到下一幀的幀時(shí)間增加了40%到50%,那就無(wú)法平滑,這意味著FreeSync和G-Sync在這里幫不了你。
而且情況還可能變得更糟。如果你是第三幕的巫師并且使用了一些召喚生物呢?在12900K上,性能下降了10%,幀時(shí)間更加不穩(wěn)定。每隔幾幀,就有一幀比另一幀更昂貴——這可能是尋徑、動(dòng)畫或AI更新。當(dāng)然,這很難知道,但在像Ryzen 5 3600這樣的較老的中檔芯片上,這種AI更新每隔幾幀就會(huì)被放大,導(dǎo)致災(zāi)難性的結(jié)果。幀率數(shù)字表明下降幅度僅為6%,但幀時(shí)間可能會(huì)增加50%,導(dǎo)致運(yùn)動(dòng)不穩(wěn)定,看起來(lái)永遠(yuǎn)不會(huì)平滑。第三幕真的是一個(gè)怪物,舊的Zen 2芯片似乎無(wú)法勝任這項(xiàng)任務(wù)。
因此,特別要求審查第三幕是合理的?!恫┑轮T3》的運(yùn)行情況更糟糕——但這是可以解釋的,因?yàn)槠聊簧嫌懈嗟腁I,放大了CPU的限制。你對(duì)此也無(wú)能為力。在絕對(duì)最低的設(shè)置下,可以看到平均性能提高了14%左右。幀時(shí)間不那么不穩(wěn)定了,但所有這些地震仍然會(huì)導(dǎo)致幀時(shí)間大幅飆升,現(xiàn)在你失去了很多視覺上的輝煌,這要?dú)w功于對(duì)細(xì)節(jié)水平的沖擊。Vulkan能幫上忙嗎?不完全是,我的性能下降了7% - DX11仍然是最好的方法。
也許是30fps上限?內(nèi)置的幀率上限會(huì)在v同步激活時(shí)產(chǎn)生不一致的幀速,而即使是Nvidia穩(wěn)定的半速率自適應(yīng)v同步控制面板選項(xiàng),由于CPU限制,仍然會(huì)看到一些幀時(shí)間飆升。但它更一致,所以像這樣的選擇,或Kaldien的SpecialK限制器可能值得研究。
這種表現(xiàn)是否合理,是否可以修復(fù)?為了回答這個(gè)問題,我認(rèn)為我們可以看看性能是如何隨著內(nèi)核和線程的數(shù)量而變化的。在研究Core i9 12900K時(shí),我們看到了一些有趣的數(shù)據(jù),當(dāng)我們研究游戲如何在不同數(shù)量的內(nèi)核和線程上運(yùn)行時(shí)。這里表現(xiàn)最好的組合實(shí)際上是沒有超線程的8核。八核只比六核好4%,而完全啟用的12900K只比六核好兩個(gè)百分點(diǎn),盡管線程數(shù)和可用核數(shù)翻了一番。啟用超線程的8個(gè)p核是最糟糕的結(jié)果,比6個(gè)核的結(jié)果要慢一點(diǎn)。
正如我所看到的,這種擴(kuò)展表明《博德之門3》需要更多的工作,更好地利用多核處理器(并且可能理解用戶不太可能在BIOS級(jí)別關(guān)閉超線程)。將重點(diǎn)放在減少地震和攝像機(jī)位置變化造成的口吃上也會(huì)受到歡迎。
Vulkan仍然是個(gè)問號(hào)。如果它不能在您最需要的時(shí)候提高CPU性能,那么它的目的似乎是無(wú)效的,而一個(gè)好的、高性能的Vulkan實(shí)現(xiàn)可能是幫助解決CPU有限問題所需的基礎(chǔ)。考慮到所有這些,看看PlayStation 5版本如何堆疊將是令人著迷的,記住它使用與Ryzen 5 3600相同的Zen 2架構(gòu),在第三章環(huán)境中掙扎得如此之多。