影像順暢度深度解析:破解 FPS 盲點、找出影像頓呆的主因

ADVERTISEMENT

錯誤畫格造成撕裂

NVIDIA在官方提供的測試指南中提到,當遺失畫格產生時,畫面會由後續的畫格遞補,表現在色條資訊上,就是其中幾個顏色會被略過,以附圖為例,畫面缺少由橄欖色代表的畫格。筆者在測試期間也曾遇到遺失畫格的狀況,但是狀況時間皆持續超過1張畫格的顯示時間,從色條資訊來看,就是在幾張畫格皆為同一顏色後,直接跳至其他顏色,由於無法於靜態圖片中展示此一情況,因此引用測試指南中圖片做為說明。

侏儒畫格則是在多GPU環境下,某畫格顯示於螢幕的時間過短,其產生的原因與遺失畫格不同,但是造成的影響卻相同,會讓畫面產生撕裂狀況。或許讀者會有問題,為什麼這些狀況都會造成撕裂?

會產生撕裂的主因,是在螢幕在同一次更新中,顯示了多張由顯示卡繪製的畫面,由於這些畫面會有些許的時間差(FPS為60幀時為16.7ms),所以畫面中移動的物件會因前後畫格的時間差,落在不同位置,前後畫格交接處就會產生撕裂。然而遺失畫格是在在第一畫格顯示後,直接跳到第三畫格,侏儒畫格雖然會顯示第二畫格,不過其上下端交接處都會產生撕裂,所以影響畫質的狀況更為明顯。

影像順暢度深度解析:破解 FPS 盲點、找出影像頓呆的主因

▲侏儒畫格只會發生於多GPU環境,畫面中的綠色色條異常短,且在與前後畫格交接處造成畫面撕裂。

分析真實影像數據

以下面的測試圖表為例,在測試的過程中FPS表現相當不穩定,大部分的frame time(畫格描繪需時)分佈於14至20ms之間,介於16ms上下,但是當效能瓶頸產生時,frame time高鋒值高達665ms,其停頓時間超過半秒以上,對於視覺感受影響相當嚴重。瞬間最小FPS的波動幅度也很大,介於15~40幀之間,流暢度有待加強,這些精確的FPS是FRAPS不容易測到的。

最後1張圖表可以看到遺失畫格與侏儒畫格的分部狀況,這張圖表也正是FCAT最大的價值所在。由於FRAPS無法判定遺失與侏儒畫格,所以測得之FPS會有以少報多的狀況,FCAT則可判斷非正常畫格。圖中紅色與黃色部分的上、下緣分別表示FRAPS與FCAT測得的成績,可以看見兩者間差距對於效能判定的影響有多大。

影像順暢度深度解析:破解 FPS 盲點、找出影像頓呆的主因

▲此圖為各畫格輸出時間的分佈圖,縱軸是繪圖時間,越高代表繪製該畫格需要較多時間(效能較低)。

影像順暢度深度解析:破解 FPS 盲點、找出影像頓呆的主因

▲最低FPS的分佈代表顯示卡運作的穩定性,曲線越接近水平代表效能分佈較為平均,畫面的流暢度趨於一致。

影像順暢度深度解析:破解 FPS 盲點、找出影像頓呆的主因

▲這是FCAT測得的FPS效能,黑色曲線代表FRAPS測得的FPS,藍色曲線則為FCAT測得的FPS,差異很大。

結果導向,找出問題

NVIDIA官方表示,開發FCAT之目的在於找到問題,而不是分析問題的成因,於是造成了FCAT的用途真的僅止於將問題測出,無從知道是哪些因素造成這些不正常畫格的產生,需要靠工程師人肉分析,過程相當耗費時間。

即便如此,FCAT仍然提供了有效的方法,可以找出傳統測試方式無法找出的問題,只不過其硬體設備需求太高,讓FCAT除了投入研發工作外,恐怕只能淪為廠商互相攻訐的武器。

FCAT可用於除錯

由於目前絕大多數的遊戲,都是靠遊戲引擎製作,而非從零開始開發,所以當發現繪圖bug時,責任歸屬就落在遊戲引擎廠商、遊戲廠商、顯示卡廠商等3者之間。

NVIDIA官方表示他們會定期針對新推出的遊戲,進行除錯與效能最佳化,工作內容當然也會透過FCAT檢測有無錯誤畫格發生的狀況,雖然FCAT無法直接找出問題成因,但是至少可以鎖定問題發生的時間點,提供比較精確的方向讓工程師做進一部的分析,讓大海撈針的工作有些頭緒可尋。

 

本文同步刊載於電腦王雜誌
 
 影像順暢度深度解析:破解 FPS 盲點、找出影像頓呆的主因
歡迎加入電腦王雜誌粉絲團

國寶大師 李文恩
作者

電腦王特約作者,專門負責硬派內容,從處理器、主機板到開發板、零組件,尖端科技都一手包辦,最近的研究計畫則包括Windows 98復活與AI圖像生成。

使用 Facebook 留言
一定要配溫開水
2.  一定要配溫開水 (發表於 2013年6月21日 02:27)
※ 引述《劈你是為你好》的留言:
> 標題寫的動人,內容卻完全讓一般人看不懂

深度解析這種東西
不是給小孩子看的╮(╯_╰)╭
FUCXSOP
3.  FUCXSOP (發表於 2013年6月21日 11:58)
這個國寶大師是在亂寫個什麼東西
開啟垂直同步並不會造成效能的浪費好嗎
垂直同步的作用是強迫顯示卡把繪圖時序抓在一個穩定的時間間隔上
以避免顯示卡不斷用最高效能無窮盡的輸出

"若效能足以繪製55幀,但是實際運作時會受垂直同步的影響,讓FPS只能達到30幀,其中有25幀的效能就浪費了。"

這 25 幀並不是浪費
而是顯示卡被系統命令限制叫它不要畫這 25 幀
所以這 25 幀在開啟垂直同步後就根本不存在了
如果畫了 55 幀卻只輸出 30 幀那才叫真的浪費
但垂直同步明顯並不是這個樣子 ╮(╯_╰)╭

所以相反的
關閉垂直同步才會造成效能的浪費
尤其在超過 60 幀的情況下 ╮(╯_╰)╭
國寶大師 李文恩
4.  國寶大師 李文恩 (發表於 2013年6月22日 14:50)
※ 引述《SOP》的留言:
> 這個國寶大師是在亂寫個什麼東西
> 開啟垂直同步並不會造成效能的浪費好嗎
> 垂直同步的作用是強迫顯示卡把繪圖時序抓在一個穩定的時間間隔上
> 以避免顯示卡不斷用最高效能無窮盡的輸出
>
> "若效能足以繪製55幀,但是實際運作時會受垂直同步的影響,讓FPS只能達到30幀,其中有25幀的效能就浪費了。"
>
> 這 25 幀並不是浪費
> 而是顯示卡被系統命令限制叫它不要畫這 25 幀
> 所以這 25 幀在開啟垂直同步後就根本不存在了
> 如果畫了 55 幀卻只輸出 30 幀那才叫真的浪費
> 但垂直同步明顯並不是這個樣子 ╮(╯_╰)╭

應該是我文章沒有寫的很清楚的關係,導致有些誤會

我想表達的是,如果你買了一張高階顯示卡,它能提供55幀的效能,而你開起垂直同步後,它就只能輸出30幀,效能表現可能變成與低階顯示卡一樣。

我說的效能浪費指的就是這段落差。
發表回應
謹慎發言,尊重彼此。按此展開留言規則