Gainward
Systémová latence v počítačových hrách - Vše, co byste měli vědět
Jste-li přesvědčeni o tom, že kvalitní hraní počítačových her vám přinese pouze vysoká snímková frekvence, pak věřte, že jste na omylu a to velkém! Ostatně o tom vás rád přesvědčím právě v tomto článku, ve kterém se podíváme na systémové latence při hraní počítačových her ...
gpureport.cz  Pavel Šantrůček  08.04.2021

OBSAH:
1. Úvod do systémové latence          
4. Měření systémové latence          
2. Jak snížit latence          
5. Závěrečná doporučení          
3. Nástroje pro snížení latence          
 

Nástroje pro snížení latencí

V minulé kapitole jsme si ukázali několik scénářů závislosti rychlosti CPU a GPU, se kterýma se můžeme setkat při hraní počítačových her. S ohledem na vysoké latence je pak pro nás klíčovým scénářem GPU bound, tedy scénář, ve kterém procesor připravuje snímky mnohem rychleji, nežli nám je grafická karta stačí renderovat a při kterém nám tak v grafické pipeline vstupuje do hry také ten největší viník vysokých latencí - Render queue. V této kapitole se tak budeme bavit o věcech, které se týkají výhradně právě tohoto scénáře a nástrojích, které se snaží Render queue z grafické pipeline eliminovat.

Framerate limiter

CoD Frame Limiter
Framerate limiter implementovaný v počítačové hře Call of Duty: MW

Jedním z nejdostupnějších nástrojů na eliminaci Render queue je framerate limiter. Ale pozor, musí se jednat framerate limiter, který je implementován přímo ve hře a který omezuje snímkovou frekvenci na straně enginu hry (tedy CPU)!!! Pokud byste využili externí framerate limiter (například ten v MSI Afterburner), snížení latencí se nedočkáte, ten totiž „brzdí“ jen grafickou kartu a tak díky vyšším frametimes na GPU vám latence naopak naroste.

 

CPU Frame 2 idle Frame 3 idle Frame 4 idle  
Render queue      
GPU Frame 1 Frame 2 Frame 3 Frame 4

 

Při nastavování framerate limiteru je však velmi důležité, abyste zvolili tu správnou hodnotu, na kterou vám pak engine hry uzamkne snímkovou frekvenci. Obecně se dá říci, že snímková frekvence pro uzamčení by se měla rovnat (nebo být o chlup nižší) snímkové frekvenci generované grafickou kartou (frametime). Pokud se vám podaří snímkovnou frekvenci framerate limiterem uzamknout na správné hodnotě, místo toho, aby procesor připravoval nové snímky do Render queue, bude čekat (idle) a Render queue se tak vůbec nevyužije. Vy se tak dočkáte nižší latence.

Systémová latence při Framerate limiteru 80 FPS

Po zapnutí framerate limiteru sice přijdete o trochu snímkové frekvence, odměnou vám však bude nižší systémová latence.

 

Nevýhodou in-game framerate limiteru je pak omezená snímková frekvence v celé hře. Jak jistě víte, snímková frekvence se ve hrách pohybuje dynamicky podle toho, jak náročná je scéna na rendering. V některých scénách se může pohybovat kolem 100 fps a v jiných zas třeba jen 80 fps. Pokud si tedy pomocí framerate limiteru nastavíte snímkovou frekvenci na 80 fps, vyšších FPS se pak ve hře již nedočkáte a přes to nepojede vlak.

Systémová latence při Framerate limiteru 80 FPS

Pokud je snímková frekvence v některých scénách významně vyšší nežli ta, kterou máte nastavenou v limiteru (v našem případě narostla z 90 FPS na 169 FPS a limiter zůstal uzamčen na 80 FPS), vy se s pak nedočkáte nejen vyšší snímkové frekvence, ale dokonce vám významně naroste také systémová latence.

 

Pokud by se ve hře jednalo o nějaké markantní rozdíly ve snímkové frekvenci, nejenže přijdete o FPS, ale může se stát také to, že i latence ve scénách s nejvyšší snímkovou frekvencí budou s framerate limiterem dokonce vyšší, nežli byste ho neměli zapnutý vůbec. V počítačových hrách s velkými rozdíly snímkové frekvence tak framerate limiter pro potlačení Render queue a snížení latencí raději vůbec nepoužívejte!

 

AMD Radeon Anti-lag a NVIDIA Ultra Low Latency (NULL)

AMD Radeon Anti-lagNVIDIA Low Latency Mode

Jak společnost AMD, tak také NVIDIA mají přímo ve svých ovladačích implantovanou funkci, která se snaží eliminovat využití Render queue na minimum. Zatímco Radeon Anti-lag by měl teoreticky fungovat s valnou většinou her, řešení společnosti NVIDIA je vázáno pouze na tituly pod grafickým rozhraní DirextX 11. Pro hry s DirectX 12 má NVIDIA přichystánu jinou technologii s názvem NVIDIA Reflex, o které si ale podrobně povíme až za chvilku.

Systémová latence Anti-lag a NULL

Jak můžete vidět AMD Radeon Anti-lag i NVIDIA NULL v počítačové hře Battlefield V fungují dobře. S Radeonem 5500 XT si tak v systémové latenci můžete polepšit kolem 9%, s GeForce GTX 1660 pak necelými 7%. V jiných hrách či nastavení to může být samozřejmě jinak.

 

Výhodou obou těchto technologií je jejich snadné a jednoduché zapnutí přímo v ovladačích, nevýhoda je pak celkem nabíledni. Protože jsou technologie Radeon Anti-lag i NULL implementovány „pouze“ v ovladačích grafické karty a nemají tak přístup k samotnému engine hry (a tedy i k práci CPU), jejich účinnost tedy bude zřejmě docela omezená.

 

NVIDIA Reflex

CoD NVIDIA Reflex
NVIDIA Reflex implementovaný v počítačové hře Call of Duty: Moder Warfare

Není to zas až tak dávno, co společnost NVIDA představila svého asi největšího bojovníka proti vysokým latencím s názvem Reflex. Na rozdíl od NULL se však Reflex musí implementovat přímo do enginu hry, což sice není tak jednoduché a vyžaduje to spolupráci s vývojáři her, na druhou stranu mu to však poskytuje také mnohem větší možnosti při eliminaci Render queue, protože tak může účině řídit také práci CPU (simulaci). Pokud bych měl Reflex v krátkosti nějak osvětlit, pak se jedná o jakýsi inteligentní in-game framerate limiter, který pracuje na stejném principu (omezuje snímkovou frekvenci v enginu hry), avšak s tím rozdílem, že je dynamický a neomezuje tak snímkovou frekvenci na jedinou předem danou pevnou hodnotu. Reflex sleduje časy potřebné na přípravy snímků i časy na jejich rendering a podle toho také rozhoduje, ve který okamžik je nejlépe zahájit práci na simulaci následujího snímku procesorem tak, aby nebyla zbytečně naplňována Render queue.

 

CPU idle Frame 2 idle Frame 3 idle Frame 4 idle Frame 5
Render queue
GPU Frame 1 Frame 2 Frame 3 Frame 4

 

Na rozdíl od klasického in-game framerate limiteru, si můžete povšimnout, že v případě Reflex je práce CPU na simulaci cíleně odložena tak, aby ihned po jeho ukončení co možná nejplynuleji navazoval samotný rendering, což vede k nejnižší možné latenci. Stav nečinnosti (idle) CPU tak předchází práci na simulaci a simulace tedy pracuje také s nejaktuálnější stavem vstupních periferií (myš, klávesnice atd.). Opět tedy další úspora latence.

Systémová latence NVIDIA Reflex

V počítačové hře Call of Duty: Modern Warfare si díky NVIDIA Reflex přijdete s grafickou kartou GeForce GTX 1660 k zhruba o 10% nižší latenci. V jiných hrách to může být samozřejmě i lepší.

 

Nevýhoda NVIDIA Reflex je pak zřejmá, nutnost implementace přímo do enginu hry a tak tuto technologii docela jistě neuvidíme v úplně každé počítačové hře.

 

AMD Radeon Boost

AMD Radeon Boost

AMD Radeon Boost je takový technologický samorost, který se vymyká všemu, co jsme si tu doposud říkali. Technologie Radeon Boost totiž primárně necílí na vyprázdnění Render queue, či optimalizaci práce CPU a GPU, místo toho se jen snaží snížit latenci renderingu v době, kdy je nízká latence ve hře vyžadována.

Radeon Boost sleduje vstupní zařízení (myš, klávesnice, gamepad…) a při jeho větší aktivitě dá pokyn grafické kartě, aby snímky začala renderovat vyšší rychlosti (s kratší frametime), avšak na úkor nižší kvality obrazu. V herních titulech založených na předchůdcích DirectX 12 je tak snímek renderován v nižším rozlišení dané parametrem Minimální rozlišení, u počítačových her podporujících DirectX 12 v kombinaci s grafickými kartami generace RDNA 2 je pak k renderingu snímku využita technologie VRS (Variable Rate Shading). „Ošizeného“ obrazu by si pak hráč v bitevní vřavě všimnout neměl. Výsledkem tedy je vyšší snímková frekvence na straně GPU (kratší frametime) a tím i nižší latence. S nižší latencí na straně GPU je pak grafická pipeline tlačena blíže ke scénáři CPU bound a tedy více či méně eliminována také i Render queue.

Systémová latence Radeon Boost

S novým Radeon Boost, který podporují výhradně grafické karty Radeon RX 6XXX (díky podpoře VRS), jsem si v systémové latenci polepšil o velmi výrazných 24%. Zajímavostí z měření Cyberpunk 2077 pak bylo, že jsem se k tak nízké latenci dostal, aniž bych musel vůbec nějak pohybovat myší. Jak je to možné? Nevím, ale testoval jsem to dvakrát. Na nový Radeon Boost se tedy budu muset ještě později znovu zaměřit.

 

AMD Radeon Boost je sice stejně jako Radeon Anti-lag implementován přímo v ovladačích grafických karet, avšak na rozdíl od něj není automaticky funkční ve všech hrách. Radeon Boost musí daná hra podporovat ve svém engine, což je také jeho hlavní nevýhodou.

 

Pokud bych měl nějak hodnotit všechny výše uvedené nástroje, pak nejvíce se mi zamlouval NVIDIA Reflex, kterým je inteligentně řízena práce enginu hry i grafické karty. Doufám tedy, že NVIDIA Reflex uvidíme v co možná nejvíce hrách.

Zajímavě vypadá také nová verze technologie Radeon Boost, která využívá nových možností VRS (Variable Rate Shading) na grafických kartách RDNA2. Uvidíme tedy, jestli a jak se Boost v počítačových hrách rozšíří a pak si to ještě pořádně otestujeme.

         
Předchozí kapitola   Další kapitola
         
Gigabyte

SPONSORS & PARTNERS

Asus  Alza  MSI  Gigabyte
AMD  Sapphire  Gainward  Nvidia

Copyright (c) 2024 InfoTrade Powered by ASP.NET & MS SQL Server