国产成人福利在线视频播放下载,成人无码www免费视频在线看,放荡的美妇在线播放,大地资源网最新更新,国产成人精品日本亚洲网站

泡泡網(wǎng)顯卡頻道 PCPOP首頁      /      顯卡     /      評測    /    正文

游戲跑分新視角:細(xì)看一秒內(nèi)幀數(shù)變化

    編者按從游戲評測出現(xiàn)至今,F(xiàn)PS(Frames per Second,每秒幀數(shù))一直都是我們衡量硬件表現(xiàn)好壞的標(biāo)準(zhǔn)。毫無疑問,在絕大多數(shù)情況下,F(xiàn)PS的確可以作為游戲性能的標(biāo)桿。但是,經(jīng)歷了長久的測試歷程以及數(shù)以萬計的幀數(shù)統(tǒng)計之后,部分玩家已經(jīng)開始注意到,實際獲得的游戲體驗和表面得出的FPS數(shù)據(jù)并不完全相符。

    是測試數(shù)據(jù)有誤,還是我們的評定標(biāo)準(zhǔn)本身就存在缺陷?FPS真的能代表一切嗎?近日,國外同行TechReport撰文,詳細(xì)解答了我們以上的疑問,深入探究了FPS的一些弊端,并且提出了全新的游戲測試?yán)砟?。?dāng)然,還有更多的問題得以爆料。(以下為全文翻譯,部分內(nèi)容進(jìn)行了調(diào)整。注意,本的主要側(cè)重于新游戲測試?yán)砟畹年U述,而并非顯卡跑分PK。)


    本文的初衷其實來自一個簡短的談話。去年秋天,我和曜越科技(Thermaltake)公關(guān)Ramsom Koay一起共進(jìn)晚餐的時候,被問及了一個看似簡單但又不太好回答的問題:既然一款主流顯卡就能在多數(shù)游戲中提供基本的流暢度(30 FPS以上),為什么還有那么多人還要買更快的顯卡?更高的FPS究竟能代表什么?誰需要它呢?

    表面上,我在這方面是專家。但打心底來說,問題到來那一刻我并沒有做好準(zhǔn)備去如何回答。雖然有些突然,我還是簡單思索了一下然后給出了我自認(rèn)為的非常好的答案,也無非是一些關(guān)于避免卡頓以及保持一個穩(wěn)定的游戲畫面等等。不過說完這話之后我就意識到了不太妥當(dāng),因為在我們以往的顯卡評測中,關(guān)于這些我們并沒有給讀者一個合理的闡釋。

    實話說,這個問題一直讓我很糾結(jié)。雖然接下來的評測任務(wù)量一直不小,但是我還是抽出一些時間改變了一下測試流程,將Fraps的FrameTimes功能啟用,以此來記錄每個獨立幀渲染需要耗費的時間。在此之后的的每一個顯卡評測,我都會仔細(xì)的收集這些數(shù)據(jù)。(雖然這樣很耗時,但對于這篇文章卻是至關(guān)重要的。)

    到上周這一工作算是告一段落。接下來我抽了一部分時間,將這些數(shù)據(jù)進(jìn)行細(xì)化整理。最終的結(jié)果是這些數(shù)據(jù)相當(dāng)有啟發(fā)性,甚至讓人有些擔(dān)心(對于我來說),因為它直接顛覆了我們以往評測的一些結(jié)論。但是,我認(rèn)為這些結(jié)果非常值得分享。實際上,它甚至可能會改變你對于游戲測試的固有理念。

    毋庸置疑,幾乎所有的游戲硬件測試都采用同一種評估方法,那就是大家公認(rèn)的FPS(Frames per Second,每秒幀數(shù))。毫無疑問的是,F(xiàn)PS是一個出色的即時性能匯總,表達(dá)準(zhǔn)確而且簡單易懂。不只是游戲,F(xiàn)PS的概念還常見于我們所熟知電影及電視,比如電影/電視分別以每秒24/30張畫面的速度播放,也就是一秒鐘內(nèi)在屏幕上連續(xù)投射出24/30張靜止畫面,所以播放速率就是24/30FPS,游戲畫面也與之同理。(通常每秒播放24張畫面以上,根據(jù)“視覺惰性”,即視覺暫留現(xiàn)象,人眼就認(rèn)為是連續(xù)的。)

    當(dāng)然,關(guān)于利用FPS進(jìn)行測試的爭論一直存在,尤其是我們常見的平均FPS更是受到很多質(zhì)疑,因為其衡量的太廣泛了。事實上我們也從這些討論中汲取了一些有用的東西并付諸實施,比如在游戲測試的時候同時獲取平均FPS和最低FPS,甚至可能的時候還提供了單位時間內(nèi)的FPS變化圖表。相比干巴巴的平均FPS,我相信這些信息更能夠幫助讀者更好的理解游戲性能表現(xiàn)。

    即便如此,這種方法仍舊有一些明顯的缺點。因為經(jīng)歷多次的測試之后,我們發(fā)現(xiàn)有些時候這些結(jié)果和我們的直覺體驗并不完全一致。最根本的問題在于,無論對于電腦時間還是人類視覺感知來說,一秒都太長了。一秒內(nèi)的平均結(jié)果可能會掩蓋一些系統(tǒng)性能突發(fā)變化,而這對于游戲體驗來說非常重要。

    為了說明,我們先來看兩個例子。雖然經(jīng)過加工,但這些結(jié)果卻是基于我們多年來的游戲測試真實數(shù)據(jù)。下面的圖表縱軸以毫秒(ms)為單位表示所需要的時間,而橫軸則表示一秒內(nèi)兩款不同顯卡所提供的一系列幀數(shù)。

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

    顯而易見,GPU1在大多數(shù)情況下跑得更快,每幀所用的時間較短(絕大多數(shù)都在25ms以下),而CPU2要慢一些,因為每幀時間一直穩(wěn)定在30ms左右。

    但是,我們可以看到GPU1在運行這個游戲的時候有一個明顯的問題(假定說是由于驅(qū)動里糟糕的顯存管理引起的紋理載入毛病造成的,也可能是硬件方面的原因),那就是其中一幀所耗費的時間出奇的長,幾乎達(dá)到了將近500ms,像是被卡在那兒了。如果你是這個游戲的玩家而碰巧遇到這個問題,一瞬間肯定會卡的要死。而如果這個問題經(jīng)常出現(xiàn),游戲也就基本不能玩了。

    而這方面GPU2就要好了不少,雖然平均FPS可能要比GPU1少,每幀耗費的時間都差不多,并且能夠提供一個持續(xù)穩(wěn)定的游戲畫面輸出。那兩款顯卡的平均FPS到底是多少呢?

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

    可以看到,在我們統(tǒng)計的時間內(nèi),兩款GPU的平均FPS幾乎相同。如果就此而言,那么兩款顯卡的性能表現(xiàn)本質(zhì)上沒有區(qū)別。而正是我們使用了平均FPS,才使得GPU1中的一個致命缺陷被掩蓋了起來。

    以上只是一小段時間內(nèi)的反映,如果說GPU1在整個測試中的其它場景也時不時遇到類似的延遲,但耗費時間可能沒有這么大,那整體幀數(shù)可能會達(dá)到50FPS的樣子,最低幀數(shù)也有35FPS。而根據(jù)我們傳統(tǒng)的思維,這是一個看起來相當(dāng)不錯的成績,但是實際游戲體驗的糟糕程度就可想而知了。

    回歸到主題,F(xiàn)PS對于性能評估的意義雖然重大,但短板也是明顯的。而解決以上問題最簡單有效的方法就是將單位時間放大細(xì)化,就像我們剛才做的那樣,把每幀所耗費的時間獨立呈現(xiàn)。事實上這么做并沒有什么難度,想必那些游戲開發(fā)商們已經(jīng)研習(xí)多年。

    所以,對于我們自己來說,也是時候轉(zhuǎn)化一下認(rèn)知理念了。下面表格里的數(shù)據(jù)可能會有一些幫助,詳細(xì)列舉了部分以毫秒為單位的幀時間(越低越好)所對應(yīng)的FPS速率,這里的條件是假定完整的統(tǒng)計時間為1秒。這個表已經(jīng)包含了許多閾值,比如其中16.7ms相當(dāng)于穩(wěn)定的60FPS。打個比方來說,目前大多數(shù)LCD的的刷新率就是每秒60次(60Hz),所以每次刷新的時間高于16.7ms的閾值就不能提供穩(wěn)定的畫面輸出。

Frame time in milliseconds

FPS rate

8.3

120

10

100

16.7

60

20

50

25

40

33

30

42

24

50

20

60

17

70

14

    經(jīng)過以上幾點介紹,下面我們就來看一下實際游戲測試中的一些數(shù)據(jù),看看我們能夠從中獲得什么。

    第一個實例來自我們之前的GeForce GTX 560 Ti評測。雖然測試發(fā)布較早,測試驅(qū)動也有些老,但并不影響驗證我們下面采用的新方法。測試游戲使用的是《戰(zhàn)地:叛逆連隊2》,畫質(zhì)設(shè)定如下圖所示。

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

    雖然一大推數(shù)據(jù)看起來相當(dāng)繁雜,但在準(zhǔn)確的繪制每款顯卡幀數(shù)時間的時候卻并不十分困難,這個時候我們之前工作的效果就體現(xiàn)出來了。

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

    正如你所見,即便各項數(shù)據(jù)糾結(jié)到一塊兒,但異常值(耗時較高的幀數(shù))還是能一眼就看出來。另外可以看到,高端卡能夠在單位時間內(nèi)輸出更多的幀數(shù),而且每幀耗時交少,所以數(shù)據(jù)線也要更長更低。

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

    另外,競爭對手之間的數(shù)據(jù)比拼可以在圖中非常直接的體現(xiàn)出來??偟膩碚f,這種方法相當(dāng)直觀而且簡單易懂。比如上圖中的GTX 560 Ti在2150-2250幀數(shù)范圍之間明顯更快,在500幀左右HD 6870有一個明顯的異常值等等。接下來我們將這些數(shù)據(jù)放大,進(jìn)一步深入觀察。

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

    這些放大數(shù)據(jù)和我們之前的數(shù)據(jù)基本對應(yīng),盡管HD 6870那個異常值看起來并沒有那么長。很明顯,兩款顯卡的差別如果采用FPS是無論如何也無法體現(xiàn)出來的。

    另外,我們看到在58ms異常值之后的那兩幀出現(xiàn)了突然的回落,延時非常低。之所以會出現(xiàn)這種情況,是因為顯卡采用了三重緩沖技術(shù),也就是每三幀可以同時渲染,所以后兩幀并不需要等待前一幀的延時。雖然可以把這三幀看做一個整體,而且平均耗時也只有23ms,但是只要那個58ms延時存在,就會對實際游戲的流暢度造成一定影響。

    實際上,我們并不想夸大類似一個單獨的突發(fā)幀延時的影響,但是借助已經(jīng)在錄的眾多數(shù)據(jù),可以看看還有沒有類似的情況發(fā)生。

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

    我們將以上八款顯卡60秒內(nèi)超過50ms延時的幀數(shù)列舉出來??梢钥吹剑目預(yù)卡中除了HD 6970之外,都出現(xiàn)了4個以上的異常值。而與之相反的是四款N卡類似的情況則沒有出現(xiàn)一次,即便是老邁的GTX 260也是如此。

    比如對反應(yīng)時間要求極高的聯(lián)機(jī)游戲玩家,穩(wěn)定的幀數(shù)時間就顯得尤為重要。那么參考我們上文提供的數(shù)據(jù)圖表,將幀數(shù)時間降低到20ms以下(對應(yīng)50FPS),可以輕而易舉的選擇出合適的顯卡。

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

    結(jié)果相當(dāng)明了,只有GTX 570和HD 6970(稍有一些)兩款顯卡幾乎沒有20ms以上的延時幀?;蛟S看完這些對比之后還是沒有一個清晰的概念,這些數(shù)字到底有什么意義呢?

    回到文章開頭我們提到的問題,之所以許多人熱衷于高端顯卡,就是為了獲得更好的游戲體驗。而更好的游戲體驗,就是建立在顯卡在單位時間內(nèi)提供穩(wěn)定的幀數(shù)輸出的基礎(chǔ)上,每幀占用更少的延時時間。而這遠(yuǎn)比單純的一個FPS數(shù)據(jù)更有意義,也更加客觀。

    下面我們就將篩選條件進(jìn)一步提高,統(tǒng)計出每款顯卡99%的幀數(shù)中的最低耗時時間(以下圖二為例,GTX 570的99%幀數(shù)耗時都在18ms以下),并據(jù)此對比一下各款顯卡的FPS排名。

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

    兩種測試方法下,各款顯卡的排名基本一致,差別程度也比較相仿。從某種意義上來說,這些顯卡在平衡FPS和每幀耗時之間做的不錯。如果這樣來看,傳統(tǒng)的FPS并沒有什么問題,高FPS顯卡能夠獲得更低的幀耗時,反之亦然。那么這種新的測試方法又有什么意義呢,難道僅僅是為數(shù)據(jù)分析提供便利嗎?先別急,下文便見分曉。

    上文中我們的新方法和傳統(tǒng)方法測試得出的結(jié)果排名基本一致,或許會有讀者質(zhì)疑這種方法的實用性。不過別忘了,到此為止我們僅僅測試了單塊顯卡,而多卡并聯(lián)系統(tǒng)還只字未提。結(jié)果又會怎樣呢?

    以下多卡測試數(shù)據(jù)來自我們之前的GeForce GTX 590評測。和前面一樣,測試游戲同樣是《戰(zhàn)地:叛逆連隊2》,這一次我們采用了更加符合多卡系統(tǒng)定位的2560x1600分辨率。

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

    測試方法與上面的單卡測試相同,具體結(jié)果如下:

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

    可以明顯的看到,多卡的數(shù)據(jù)走向與單卡差別非常明顯,形狀也不再是一條線,而且突發(fā)幀的數(shù)量大大增加,這究竟是怎么回事兒?同樣,我們將這些繼續(xù)將這些數(shù)據(jù)放大,更直觀地觀察。

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

同樣的,三款單卡看起來還比較正常,總體來說比較問題,而且突發(fā)幀數(shù)量并不多。

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

從GTX 560 Ti SLI身上就已經(jīng)開始顯現(xiàn)出較大波動,總體上遵循一高一低的趨勢,下面的多卡系統(tǒng)莫不如此。

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

    已經(jīng)不止一次的聽到關(guān)于多卡系統(tǒng)的Micro-stuttering(下文會具體解釋)問題了,這次算是一個集中的反映。需要清楚的是,我們這里看到的很像是多卡系統(tǒng)工作方式的一個人工還原。

    不管是AMD還是NVIDIA,在CrossFire/SLI多卡系統(tǒng)中都將AFR(Alternate Frame Rendering,交替幀渲染)作為首要渲染模式。顧名思義,比如在雙卡系統(tǒng)中,AFR就是將偶數(shù)幀交給GPU1渲染,而奇數(shù)幀則安排給GPU2渲染;或者說把第 n 幀畫面指派給 GPU1渲染,把 n+1幀指派給 GPU2 渲染,使幀數(shù)渲染交替進(jìn)行,從而充分利用多卡系統(tǒng)的并行幾何處能力。(三卡或四卡的原理一樣,渲染交替進(jìn)行。) 雖然,CrossFire/SLI同樣支持其它一些負(fù)載平衡渲染模式,比如SFR(Split Frame Rendering,分割幀渲染),但效率方面并不如AFR。

    雖然這些基本原理非常簡單,但要在多卡系統(tǒng)中做到負(fù)載平衡卻相當(dāng)不易。首先,每一個獨立的幀從渲染原理上來看就是一個需要高度平行的任務(wù),需要高度平行的天性使得幀與幀之間的平行也相當(dāng)拿捏,所以保持幀間的同步很是困難,更不用說多卡之間的負(fù)載平衡了。(比如GPU1已經(jīng)完成了1幀渲染,需要進(jìn)行第3幀渲染,而此時GPU2的渲染還在進(jìn)行,那么GPU1就需要等待。當(dāng)然,實際的平衡負(fù)載問題要復(fù)雜的多,需要平衡算法來解決。)

    另外,因為不管多卡系統(tǒng)中有幾款顯卡,只有主卡才能與顯示器連接,所以其他顯卡渲染的幀只能通過傳輸?shù)街骺ㄟM(jìn)行輸出。而無論是CrossFire還是SLI接口,這種數(shù)據(jù)傳輸都會耗費時間。除了幀數(shù)據(jù),其它的一些緩存數(shù)據(jù)也需要經(jīng)常在顯卡之間進(jìn)行傳輸,尤其是一些高級渲染技術(shù)(比如render-to-texture,渲染到紋理)使用的情況下。而這些數(shù)據(jù)通常會使用PCI-E接口,同樣會造成延遲。

    上面的圖表很好的說明了多卡系統(tǒng)之間負(fù)載平衡還遠(yuǎn)遠(yuǎn)未達(dá)到完美,需要解決的問題還有很多。不過現(xiàn)在,我們可以先從一些多卡系統(tǒng)的天生缺陷說起。

    很明顯,繼續(xù)使用平均FPS去評估多卡系統(tǒng)的性能表現(xiàn)肯定是不靠譜的。因為從平均FPS很難看出高延遲幀,而這些高延遲幀卻恰恰是獲得連貫游戲畫面的關(guān)鍵因素。我的感覺是,在提供連貫的游戲體驗方面,幀延遲在20ms和50ms之間交替進(jìn)行并不如一直穩(wěn)定在50ms。
因為,從人類的視覺系統(tǒng)特別善于捕捉不規(guī)則的場景,也就是說一快一慢的畫面會讓人感覺相當(dāng)不爽。事實上嗎,這種體驗我已遇到多次。這也就是為何很多人抱怨Micro-stuttering的原因。

    當(dāng)然,這些只是冰山一角。問題的復(fù)雜性要遠(yuǎn)比這些圖表展現(xiàn)的高的多。關(guān)于這個問題我們接下來會進(jìn)一步闡釋,但現(xiàn)在,我還是想把這些數(shù)據(jù)繼續(xù)放大,看看還有那些問題。

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

    這里有一個進(jìn)一步分析這些數(shù)據(jù)的原因, 因為我相信這里看到的問題并不完全依賴于micro-stuttring。如果你看看我們之前完整的測試圖表,就會很清楚的看到這個趨勢:多卡系統(tǒng)明顯要比單卡產(chǎn)生更多的延遲幀。平衡多卡之間的負(fù)載需要更多的系統(tǒng)資源消耗,以超過50ms延遲幀的數(shù)量來看,同樣型號的單卡要明顯好于多卡。

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

    如果我們將閾值降低到20ms,這時多卡系統(tǒng)就看起來好多了,尤其是SLI。雖然我們之前也說到了Micro-stuttering可能會引起各種各樣畫面的不連貫,但只要高延遲幀的數(shù)量不是過多,多卡系統(tǒng)依然能夠在多數(shù)情況下比單卡表現(xiàn)的好。

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

    上面兩張圖算是對我們的新測試方法最好的回報了。在前面單卡測試中,兩種測試方法各款顯卡排名鏡像排列,而這里情況就大不一樣了。比如采用FPS標(biāo)準(zhǔn)衡量,HD 6970 CF排名第二;而到了“99%幀時間”方法中卻跌倒了第四位。另外可以看到,HD 6870 CF的FPS表現(xiàn)相當(dāng)不錯,GTX 580也屈居之后;但是在第二種方法中卻排名墊底,甚至還不如GTX 570。

    現(xiàn)在還很難說這種新方法就是衡量顯卡性能的非常好的途徑,但至少可以肯定的是,作為考量顯卡幀耗時的一個指標(biāo),它要比傳統(tǒng)的FPS更加出色。換句話說,這種方法對我們的玩家更加負(fù)責(zé)、更加中肯,即便表面看起來有些呆板。

    為了更好地反映這種新方法的作用,除了“99%幀時間”,我們還非別統(tǒng)計了50%、66%、75%、80%、90%、95%、98%幾個范圍內(nèi)每組顯卡渲染幀的耗時。雖然我并不建議將來的顯卡評測都采用這種方式,但從說明問題方面來看,還是相當(dāng)直觀的。

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

    從上圖中不難看出,想要對比兩組顯卡相當(dāng)簡單。比如在50%的幀數(shù)范圍內(nèi),HD 6970 CF的幀延時要明顯低于GTX 590,在提高幀數(shù)比例之后,劣勢就慢慢顯現(xiàn)出來。再比如,GTX 570 50%的幀數(shù)延時大大高于HD 6870 CF,但提高到99%的幀數(shù)之后,就基本打個平手了。

    當(dāng)然,僅僅靠一款游戲很難說明問題,接下來看看其他游戲中多卡并聯(lián)是否還是存在類似的問題。下面這款游戲是《子彈風(fēng)暴》,為了區(qū)別于《戰(zhàn)地:叛逆連隊2》,我們使用了不同的測試方法:不再使用固定的場景,而是在一分鐘的時間內(nèi),在同一關(guān)卡內(nèi)試玩5次,選取其中一次的統(tǒng)計結(jié)果。這也就意味著測試結(jié)果的變數(shù)會更大。

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

    不管是什么樣的原因,相比單卡,多卡系統(tǒng)出現(xiàn)了幀延遲波動問題多多少少都會出現(xiàn)。從以上測試結(jié)果來看,除了GTX 580 SLI和HD 6970 CrossFire稍微好一些,其它幾組顯卡的波動都不小。雖然這只是一小段測試的數(shù)據(jù),隨機(jī)性比較高,但我的感覺是即便跑完整個側(cè)這種問題依然無法避免。

    按照慣例,我們將這些數(shù)據(jù)進(jìn)行一步分析:

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

    由于GTX 560 Ti表現(xiàn)太糟糕,50ms以上的延時幀就超過了500個,所以這里就不做討論了。坦白說,大多數(shù)多卡并聯(lián)對高延時幀的抑制還算不錯,唯一的例外就是HD 6870 CF,雖然沒有GTX 560 Ti那么差勁,但50%以上幀數(shù)延時都接近35ms。其中的原因不太好說,但我們分析可能是顯存過于吃緊造成的。

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

    有個問題不得不說,在做類似的統(tǒng)計的時候,一定要注意設(shè)定的閾值。比如上圖中GTX 580高于20ms的延遲幀要明顯高于GTX 570,但以50ms為閾值的話,結(jié)果恰恰相反。一般來說,50ms的閾值對于日常測試應(yīng)該就足夠了,而20ms就顯得稍微有些苛刻了。

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

    在《子彈風(fēng)暴》測試中,傳統(tǒng)的平均FPS和“99%幀時間”兩種方法獲得的顯卡排名基本上一致,但HD 6870 CF算是個例外,從第五名跌倒了第七。而我想說的是,在“99%幀時間”中我們看到了GTX 560 Ti是多么不濟(jì)。雖然平均FPS也達(dá)到了25幀左右,但經(jīng)常出現(xiàn)80ms以上的幀數(shù),玩游戲自然不會流暢。

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

    《星際爭霸2》和其它游戲有些不同。雖然同樣采用Fraps進(jìn)行幀數(shù)記錄,但測試過程中采用的是播放錄像Demo,而并不像前兩款游戲中我們親自去試玩。這里的錄像Demo為33分鐘,由于時間較長,所以每款顯卡也不再測試五遍。33分鐘所產(chǎn)生的幀數(shù)相當(dāng)龐大(有些顯卡達(dá)到了140,000個之多),也不能全部都統(tǒng)計在一張表內(nèi),這里每個表我們只選取了6500個。

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

    有些意外的是,前面兩款游戲中幾款單卡的幀數(shù)耗時幾乎沒有什么波動,但這里…….

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

    可以看到,除了GTX 570還好為好點,無論是GTX 580還是HD 6970均是以三到四幀為跨度出現(xiàn)較大跳躍,尤其是GTX 580波動的周期相當(dāng)有規(guī)律。HD 6970雖然沒有那么規(guī)則,但情況也比較類似。我反復(fù)猜疑其中的原因到底是什么,有可能是三重緩沖的影響,也可能是游戲引擎以周期工作,或者是這兩方面的綜合。這里也充分說明了一個道理,要獲得一個穩(wěn)定的幀數(shù)延遲,單單靠SLI或者CrossFire的優(yōu)化還是遠(yuǎn)遠(yuǎn)不夠的。

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

    多卡系統(tǒng)中,SLI并沒有像NVIDIA單卡中波動那么明顯,反而趨于緩和;而CrossFire的情況與單卡很是類似,按照3-4個幀周期交替進(jìn)行。雖然這里我非常想說明以上問題到底為何,但目前還很難給出一個合理的解釋。

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

    單從《星際爭霸2》這款游戲來看,相同級別下,N卡在避免高延時幀方面顯然做的更好。但在6500個統(tǒng)計幀數(shù)之內(nèi),還是有相當(dāng)多的幀延時超過50ms,即便是GTX 580 SLI也是如此。這里可能與CPU或者其它系統(tǒng)配置的限制有很大關(guān)系,可以肯定的是相對較少的高延遲幀能夠幫助我們獲得更好的游戲體驗。

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

    事實上,文章一開始并沒有打算深入探討多卡并聯(lián)系統(tǒng)的Micro-stuttering(幀延時波動,實在找不到一個合適的詞翻譯…)。新測試方法幫助我們發(fā)現(xiàn)許多有意思的問題,也說明我們的方向沒有錯。但是,這個Micro-stuttering卻使得我們的任務(wù)復(fù)雜了不少。

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化
這張圖可以比較直觀的反映Micro-stuttering(X軸以ns為單位,Y軸以幀數(shù)為單位),多卡系統(tǒng)單位時間內(nèi)幀延時會上下波動。

    很自然,我們已經(jīng)聯(lián)系了主要的顯卡芯片廠商,看看他們對這個問題的解釋。但是令我們意外的是,不管是AMD還是NVIDIA都直接而且坦率地承認(rèn)多卡系統(tǒng)的Micro-stuttering確實存在,而且是一個亟待解決的問題,他們也已研究多時。但有趣是,對于以上的多核心產(chǎn)品(比如HD 6990、GTX 590)或者多卡解決方案(SLI、CrossFire),AMD和NVIDIA都沒有明確告知消費者這個問題的存在。相當(dāng)諷刺,不是嗎?

    AMD的David Nalasco在評估多顯卡派遣幀任務(wù)的時候就發(fā)現(xiàn)了Micro-stuttering,他注意到幀數(shù)延時的波動隨著游戲的反復(fù)進(jìn)行,因為幀與幀之間的相對時間是可變的。而且他聲稱這個問題并沒有普遍性。

    根據(jù)有限但還算公平的測試,我們對于這個說法基本認(rèn)同。首先,盡管幀延時波動隨著時間一直存在,但它更傾向于既定的而且反復(fù)進(jìn)行的測試場景。其次,波動似乎在有相對性能有限的平臺里程度更深。例如,我們在相同設(shè)置下測試相同的游戲,中端的HD 6870 CF所體現(xiàn)出來的幀間波動就要比更高端的HD 6970 CF更加明顯。同理,GTX 560 SLI和GTX 580 SLI的情況也是如此。如果這一狀況是多卡系統(tǒng)的一大特性,那顯然是負(fù)面的。第三,在我們的測試數(shù)據(jù)中,CrossFire在抑制幀延時波動方面明顯沒有SLI好。雖然我們還不能說以上三點具有普適性,但知道從我們的測試中得到的結(jié)果就是如此。

    Nalasco告訴我們一定程度上抑制幀延時波動有許多方法。你或許已經(jīng)猜到了,那就是“垂直同步”?!按怪蓖健眴⒂弥?,可以阻止當(dāng)前幀渲染完畢后GPU跳轉(zhuǎn)到不同的資源緩沖區(qū)(已完成新的幀渲染),而幀緩沖區(qū)跳轉(zhuǎn)被推遲到下一次屏幕刷新。不過Nalasco也指出開啟“垂直同步”也只能在“某些時候”有效果,換句話說也就是不一定完全有效。所以,我們認(rèn)為關(guān)于“垂直同步”對于Micro-stuttering的精確影響還很難預(yù)測。

    Ps.如果選擇“等待垂直同步信號”(也就是“打開垂直同步”),顯卡繪制圖形前會等待信號;性能強(qiáng)勁的顯卡則會提前完成繪制,并在下個信號到達(dá)之前等待。此時,游戲的fps值會受顯示器刷新率的制約。對于高端顯卡而言,這限制了其性能的發(fā)揮。而如果選擇“不等待垂直同步信號”(也就是“關(guān)閉垂直同步”),那么顯卡繪制完一屏畫面,不等待垂直同步信號,就開始下一屏畫面的繪制,自然可以完全發(fā)揮顯卡的實力。但是,不要忘記,正是因為垂直同步的存在,才能使得游戲進(jìn)程和顯示器刷新率同步,使得畫面平滑,使得畫面穩(wěn)定。取消了垂直同步信號,固然可以換來更快的速度,但是在圖像的連續(xù)性上,性能勢必打折扣。這也正是很多朋友抱怨關(guān)閉垂直后發(fā)現(xiàn)畫面不連續(xù)的理論原因。

    有意思的是Nalasco提到的另一中可能:一種“更加聰明”的“垂直同步”,可以通過人的視覺感知來控制幀的跳轉(zhuǎn)。聽起來很不錯,這種方法也有潛在的可行性。但Nalasco只是說了一些未來的構(gòu)想,對于現(xiàn)實技術(shù)只字未提,他也承認(rèn)AMD到現(xiàn)在也沒有一個十全十美的解決方案。

    另外,他還透露,未來AMD會在這方面投入更多精力,因為將來多卡系統(tǒng)肯定和LInao APU有很大關(guān)聯(lián),而且是不對稱的結(jié)構(gòu),相比目前的多卡系統(tǒng)產(chǎn)生Micro-stuttering的幾率更大。

    而NVIDIA的Tom Petersen也進(jìn)行了如下的圖文闡述,幫助我們更好的理解。

游戲跑分新視角:細(xì)看一秒內(nèi)的幀數(shù)變化

上面的示意圖表明了幀產(chǎn)生的流程,從游戲引擎到顯示輸出,非常有助于上下文的討論。

    其中,游戲引擎包含了一系列的內(nèi)部變量,物理模擬、圖形處理以及用戶交互等等。當(dāng)一個幀開始渲染,圖形引擎首先將其交給DirectX API。據(jù)Petersen的說法,F(xiàn)raps就是在這個時候開始時間信息記錄。接下來,DirectX將調(diào)用高級API和Shader程序?qū)⑵滢D(zhuǎn)換成更基地的指令,然后交由顯卡驅(qū)動處理。進(jìn)而,顯卡驅(qū)動將這些DirectX低級指令轉(zhuǎn)化成機(jī)器語言交付給GPU進(jìn)行渲染,最終輸出到顯示設(shè)備。

    為了更好的闡述關(guān)鍵問題,Petersen定義了許多變量。比如,”Stutter”就表示游戲時間(T_game)和輸出顯示時間(T_display)之間差的絕對值、”Lag”表示”T_game”和”T_dispaly”之間的耗時、”Slide show”表示每幀渲染時間的總共耗時。按照Petersen的觀點,在這三個變量中,玩家在游戲中感知最為明顯的就是”Stutter”。

    在Petersen透露的諸多細(xì)節(jié)中,最讓人印象深刻的莫過于“NVIDIA在旗下的GPU中安置了許多硬件單元用來固定多卡系統(tǒng)的幀延時波動”。主要原理是基于一種名為“Frame metering(幀測量)”的技術(shù),可以在幀間進(jìn)行動態(tài)追蹤。一些“表現(xiàn)較快”的幀會被適當(dāng)延遲,換句話說,就是GPU不會直接跳轉(zhuǎn)到新的緩沖區(qū),從而保證渲染后的畫面能夠均勻地進(jìn)行顯示輸出。而這些延遲會根據(jù)幀率的快慢在特性的時間進(jìn)行調(diào)整。據(jù)稱,這種“Frame metering(幀測量)”技術(shù)至少在NVIDIA G80時代就已經(jīng)開始運用了。

    現(xiàn)在,注意一下其中的含義。因為這種延遲測量是大概是在T_render和T_display之間進(jìn)行的,所以Fraps根本不會進(jìn)行記錄。這也就意味著我們之前的SLI測試數(shù)據(jù)沒有將這一過程展現(xiàn)給讀者。呈現(xiàn)在他們面前的是表面看起來波動不大,而非一高一低交替進(jìn)行的幀數(shù)流。

    雖然“Frame metering(幀測量)”看起來相當(dāng)不錯,但也包含了一些折中。為了平衡波動,NVIDIA大大提升了介于幀渲染完成到顯示輸出的延遲時間(lag)。雖然這回造成一部分的性能損失嗎,不過在大部分情況下,當(dāng)我們以毫秒為單位進(jìn)行討論的時候,這些延遲并不容易察覺。所以,在沒有一個相對完美的解決方案的前提下,這種方法還是能夠起到減輕波動的效果的。

    當(dāng)然,這種技術(shù)同樣存在不少問題,而關(guān)鍵在于它非常依賴于游戲引擎。如果游戲引擎處理每幀的時間都完全一樣,“Frame metering(幀測量)”就能起到非常不錯的效果;反之,就只能斷斷續(xù)續(xù)地解決暫時問題,甚至可能會起到反作用。舉個例子來說,比如我們的攝像機(jī)以奇數(shù)順序12-34-56-78進(jìn)行幀數(shù)抓取,而投影儀卻已1-2-3-4-5-6-7-8的方式進(jìn)行播放,那看起來會是什么效果?

    這些問題我們也咨詢了Petersen,他也非常坦白的表明了” Frame metering”在面對不同游戲引擎的時候?qū)⒚媾R挑戰(zhàn)。但當(dāng)問及具體哪些游戲引擎能夠和” Frame metering”完美搭配,他也未能給出詳細(xì)的例子。在承認(rèn)還有很多工作要做的同時,Petersent還說道:”如果我們能將所有幀都能統(tǒng)一(不再有波動),那絕大多數(shù)游戲就非常完美了”。言外之意,就像Nalasco說的那樣,這在業(yè)界依然是一個值得研究的課題。

    好吧,我先承認(rèn)下面的文字算不上全文的總結(jié)。

    經(jīng)歷了一大推測試數(shù)據(jù)以及和Nalasco以及Petersen的交談之后,我們有以下幾點值得闡述。最重要的一條:保證游戲中的幀率平滑將會是未來GPU性能評定的一個新途徑,而不再是僅僅衡量單純的渲染速度。就目前來看,多卡并聯(lián)系統(tǒng)依然面臨著很大挑戰(zhàn),而單卡也遠(yuǎn)遠(yuǎn)稱不上完美。可以肯定的是,未來新技術(shù)以及新算法亟待應(yīng)用,而GPU與游戲廠商同樣任務(wù)不輕。只有這樣,才能為用戶提供更加出色的游戲體驗。

    另外,擺在我們(評測人員)的是,如何測試才能夠準(zhǔn)確衡量幀率波動給顯卡性能帶的影響。Petersen已經(jīng)告訴我們NVIDIA正在考慮做一個API,允許Fraps此類第三方程序能夠從GPU內(nèi)部渲染開始讀取時間。當(dāng)然希望他們能夠這么做,我們也會盡量說服AMD在驅(qū)動程序中提供類似的功能。除此之外,或許高速攝像相機(jī)在測試屏幕變化精度方面會大有裨益。(開個玩笑,這可是出錢還要出力啊。)

    最后,不管何種顯卡評估或者測試,讀者的體驗才是王道。比如,我們要對一些基本問題有深刻的理解:Mciro-stuttring的問題影響到底有多嚴(yán)重?(我想回答成畫面間斷不連續(xù)更為精確,而并非“高延遲幀的潛在可能性”云云。)答案很大程度上依賴讀者的觀點,而讀者的觀點往往又依賴于讀者本身以及對問題的認(rèn)知程度等等。

    與此同時,我們對Mciro-stuttring問題的讀者反饋很感興趣。如果你正在使用多卡系統(tǒng),你曾遇到過Micro-stuttering問題嗎?如果遇到過,多久才能看到一次,感覺如何呢?在下面的評論中發(fā)揮吧。

    講了一大推,最后還是說說我們的新測試方法。盡管遇到這樣或那樣的問題,但我們還是比較謹(jǐn)慎樂觀地和大家分享??陀^來講,我們的新方法提供了以往傳統(tǒng)測試方法無法獲得的顯卡性能真實表現(xiàn),并使之大白于天下。無論是數(shù)據(jù)分析還是顯卡對比,都相當(dāng)直觀而且淺顯易懂。甚至,用到CPU測試中也未嘗不可。在未來的測試中,我們很可能付之于實施。也歡迎各位讀者積極反饋??傊覀兊母杏X是,一旦你走進(jìn)微觀世界,就很難再用宏觀的眼光去看它了。■<

1人已贊

關(guān)注我們

泡泡網(wǎng)

手機(jī)掃碼關(guān)注