相信一說到電競遊戲,大傢肯定會想起「高幀率」、「高刷新率」、「1080P」這幾個關鍵詞。這也是難怪的,因為電競遊戲最理想的狀態下的確是顯示器愈高刷新率、計算機能夠給到愈高幀數愈好,而目前最高刷新率的顯示器也是1080P分辨率的。

其實,除瞭幀數之外,還有一個關鍵因素對於電競玩傢們來說是可以左右大局的,那就是延遲。可能很多人都覺得:「隻要我幀數夠高,刷新率跟得上,延遲就低瞭呀」這個說法是沒問題的,因為如果刷新率愈高而遊戲內的幀數也跟得上的話,那麼幀與幀之間的等待時間也會愈低,從而降低延遲。
系統延遲
不過幀延遲其實隻占整體延遲的一部分,從玩傢點擊鼠標到顯示器上最終顯示出相應的變化這個過程當中,是包含著好幾個不同部份的延遲。那麼,這其中到底有些什麼延遲呢?下面的這個圖就簡單顯示瞭都有哪些。

簡單來說,延遲是分為3個部分的:外設、計算機內部以及顯示器延遲。外設的延遲很好理解,以鼠標為例,一部份是鼠標接收到玩傢點擊訊號的延遲,另一部分就是鼠標發送訊號之後,連接著鼠目標USB接口處理這些訊號的時間。計算機內部的延遲主要是分為兩部分,遊戲內容的延遲以及渲染的時間,前者主要是由CPU負責的,包括瞭采樣、提交渲染、驅動等等,而後者則是由顯卡負責的,最大頭的兩部分就是渲染序列以及實際的渲染。在顯卡渲染完畫面到顯示器實際顯示那幀畫面前,還需要經過掃瞄輸出、顯示器處理畫面才可以最終輸出到玩傢眼前。
在這裡面,可能大傢比較熟悉的是顯示器部分的延遲,畢竟響應時間以及輸入延遲這兩個東西也是不少玩傢經常掛在嘴邊的,也是不少電競顯示器經常強調的並且嘗試改進的。至於計算機主機延遲這個比較大頭的部分則是比較少被提及。那麼,既然顯示器的響應時間可以被改進,主機延遲有方法減少嗎?NVIDIA以及AMD兩傢就給出瞭答案,並且都是以減少渲染延遲為主。

在這裡筆者要先解決一下渲染延遲。當顯示器在顯示一幀畫面時,顯卡會同時渲染下一幀,而CPU提交給顯卡等待渲染的渲染序列裡也至少有一幀,等到一個60Hz刷新率的顯示器顯示出這幀原本在渲染序列中的畫面時,已經比它原本從CPU提交時慢瞭兩幀也就是33.3毫秒,因此造成更高的渲染延遲。
NVIDIA Ultra Low Latnecy
在NVIDIA顯卡這邊,玩傢可以在NVIDIA控制面板內開啟NVIDIA Ultra Low Latency模式,或者在特定的遊戲裡打開NVIDIA Reflex Low Latency模式,而AMD顯卡的玩傢則可以在驅動中心內打開Anti-Lag選項。

我們先來說NVIDIA Ultra Low Latency模式(下稱NULL)。NULL是NVIDIA去年8月份隨著436.02 Game Ready驅動而推出的一個新功能。透過把渲染序列中的待渲染幀數完全清空,讓渲染序列在顯卡準備渲染下一幀畫面時才把所需的幀畫面提交給顯卡,NULL可以有效減少渲染延遲,從而縮減整體的系統延遲。

在NULL的選項中,「On」代表把渲染序列設為1幀,而「Ultra」則是把渲染序列完全減至顯卡需要渲染時才會提交下一幀畫面,而這也是NULL要達到的目的。但是有一點要註意的是,NULL隻適用於基於DX9以及DX11這兩個API的遊戲,DX12、Vulkan由於是遊戲決定渲染序列,所以NULL起不到作用。
AMD Anti-Lag

AMD的Anti-Lag的作用也是差不多的。這個在去年隨著RX 5000系顯卡一起登場的功能在開啟之後系統會自動調整CPU的工作進度,使CPU可以覆蓋部分顯卡的工作,這樣CPU的工作進度就不會領先顯卡過多,從而減少渲染延遲。而與NVIDIA的NULL一樣,Anti-Lag隻支持DX9以及DX11的遊戲。

不過NULL以及Anti-Lag對於降低系統延遲還是有不足的地方,最明顯的一點就是兩者都是在驅動層面進行的,並不能夠對遊戲本身進行優化,也正因如此,所以NULL以及Anti-Lag都不能夠支持DX12以及Vulkan API遊戲的原因。

雖然說目前大部分遊戲都是以DX11來運行的,不過近年來已經有愈來愈多的遊戲開始使用或者增加DX12 以及Vulkan的選項,因為兩者對比起DX11以及更久的DX9可讓遊戲的性能表現更佳,也會加入眾多新特性,例如EPIC大熱的《堡壘之夜》就已經用上瞭DX12來實現光追效果,使用Vulkan的也有不少,例如《Doom:Eternal》以及《荒野大鏢客 2》這樣的大作。因此一個可以兼容DX12以及Vulkan API的降延遲技術會是一個比較全面的解決方案。
NVIDIA Reflex Low Latency

而來自NVIDIA的Reflex Low Latency模式(下稱NVIDIA Reflex)則是第一個支持DX12以及Vulkan的降低延遲功能。其實NVIDIA Reflex和NULL是有點相似的,因為兩者都同樣可以把渲染延遲降低,但前者對於延遲的縮減可以有更精準的控制並且可以做得更多。透過把NVIDIA Reflex SDK植入到遊戲當中,玩傢隻要在遊戲內打NVIDIA Reflex選項,遊戲就可以動態平衡CPU和GPU的負載配比,減少CPU從渲染序列以及其他管線受到的反壓,而這點是NULL所做不到的。

當一個場景很吃CPU的時候,顯卡基本上是等著CPU完成一幀畫面來渲染,這時候渲染序列是完全空的,NVIDIA Reflex就會讓顯卡維持在較高的頻率並且讓幀畫面稍微快點發送到顯示器上來減少延遲。

反之如果是很吃顯卡的話,那麼NVIDIA Reflex也會讓CPU處理的進度慢下來,使得渲染序列不會有待處理的幀畫面堆積起來,隻會讓顯卡在準備渲染下一幀時才把畫面提交上去。而減慢CPU的工作進度也可以讓玩傢的操作輸入在最後一刻才被采樣,進一步減低延遲。

除瞭理論上可以更有效地外削減延遲外,NVIDIA Reflex對比起NULL以及Anti-Lag還有一個更加優勝的地方,那就是透過配搭相應的分析工具以及軟件,可以更加直觀地讓玩傢得知目前的系統延遲是多少,前陣子推出的360Hz電競顯示器以及其內置的Low Latency Analyzer就是這些工具的其中一種。不過這個功能的目標對像更多的是那些專業的電競選手,可以協助他們更科學地訓練。

延遲成績
那麼,NVIDIA Reflex對比起自傢的NULL以及AMD的Anti-Lag,在降低延遲方面可以有什麼實際表現呢?筆者就以3款遊戲,配合LDAT來測試瞭一下這幾個技術在不同顯卡下可以有甚麼效果,分別是擁有NVIDIA Reflex的《堡壘之夜》及《使命召喚:黑色行動 冷戰》,以及暫時還沒有NVIDIA Reflex的《CS:GO》。
所有遊戲的畫質特效都會調至最高。至於顯卡方面,筆者選擇的是NVIDIA的RTX 3080、RTX 3070,以及AMD的RX 6800 XT以及RX 6800。至於測試用的顯示器則是一部4K 144Hz的遊戲顯示器。
先來看看《CS:GO》的表現,由於這款遊戲目前仍然沒有NVIDIA Reflex,因此這裡可以對比的隻有開關NULL及Anti-Lag的成績。




可以看到,NVIDIA Reflex以及Anti-Lag都是有作用的,不過作用其實不太明顯,延遲削減幅度是在2%至6%左右,在大部分情況下還是比起在2K分辨下的延遲要高。
在《堡壘之夜》中,由於NULL以及Anti-Lag不支持DX12,兩者的成績都是以遊戲在DX11的情況下測試得出的。




這個遊戲就可以看到各種降延遲技術的最大潛能瞭。在隻開NULL或者Anti-Lag之下,延遲都可以比原本的降低瞭15%左右,效果已經很明顯瞭。但要說降延遲效果最好的,還是那個做進瞭遊戲內的NVIDIA Reflex,開啟之後延遲可以降到原本的40%左右,而這時的系統延遲甚至差不多降到瞭使用2K分辨率的程度,整體系統的反應可以說是大大改善不少。




不過NVIDIA Reflex的實際效果其實也是要看遊戲對於這個功能的優化。在《使命召喚:黑色行動 冷戰》中,可以看到NVIDIA Reflex大概是把延遲降低瞭4%至5%。
總結
如果想要降低系統延遲的話,不論是NVIDIA的NULL還是AMD的Anti-Lag都是可以做到的,但是它們兩者都隻是屬於表層的功能,如果要想獲得更好的效果,那麼NVIDIA Reflex可能會是比較好的選擇。
一來NULL以及Anti-Lag在運行DX12以及Vulkan API遊戲時起不瞭效果,這在未來遊戲會以DX12以及Vulkan為主的大趨勢下顯然並不是一個最佳的方案。二來是NVIDIA Reflex由於是植入到遊戲中,與遊戲的配合可以做得更好,因此可以做到更為準確以及動態的延遲控制,彈性會稍為好點。
總的來說,要實現更好的延遲削減的話,那麼諸如NVIDIA Reflex這樣,直接植入到遊戲裡的會比起僅僅在驅動層面的要來得好,並且也會是最為全面的一種方案。
請先 登入 以發表留言。