MSI
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          
 

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. Co jsou zač, co způsobují, jak se měří a konečně také jak je snížit.

Co je systémová latence?

Definice systémové latence je poměrně jednoduchá, i když ne úplně každý ji hned pochopí (legendární slova jednoho komunistického „myslitele“ 😊). Systémová latence je doba (měřená v milisekundách), kterou počítačový systém nutně potřebuje k tomu, aby na základě akce na vstupním zařízení vykreslil snímek na obrazovce počítače. Jedná se tedy o časovou prodlevu mezi vlastní akcí a jejím výsledkem, který vidíme na monitoru počítače. Příkladem může být tlačítko myši, kterým ve hrách aktivujete střelbu a systémová latence nám pak ukazuje prodlevu (latenci), nežli se střelba na obrazovce opravdu viditelně projeví. Někde je tato latence označována také jako „Click to Photon Latency“, „Click to Pixel Latelcy“ nebo „End-to-End latency“.

 

 

Co systémovou latenci způsobuje?

Pokud bychom měli mluvit o celkové systémové latenci, tak ta je dána vlastně součtem menších latencí, které nám vznikají v systému, a to nejen v software, ale také v samotném hardware. Pojďme se podívat, jak to vlastně celé při hraní her v našich počítačích zjednodušeně vůbec funguje:

 

Systémová latence
Systémová latence je součtem všech latencí hardware a software, které vznikají v systému.

 

Na obrázku můžete vidět zjednodušený model tvorby snímku v počítačové hře a také ony menší letence, které vznikají v tomto grafickém potrubí (pipeline) a které nám pak v součtu vlastně definují celkovou systémovou latenci. Pojďme si je nyní představit a trochu popsat.

Peripheral latency

Doba potřebná na zpracování informace ze vstupního zařízení (periferie), jako je myš, klávesnice, gamepad atd. Nějaký čas si vezmou vlastní rutiny hardware, jako například Debounce (ošetření nežádoucího více-kliku), přes čekání na poll signálu USB, až po zaregistrování této události v operačním systému a enginem samotné hry.

Game latency

Doba potřebná na „vytvoření“ snímku počítačovou hrou. Tady se ocitáme v království procesoru. Engin hry pravidelně sleduje vstupy z periferních zařízení a na jejich základě pak „vytváří“ snímky (Simulace). Jakmile je simulace hotova, práce je posílána do API grafického rozhraní (DirectX, Vulkan). Protože grafické rozhraní přímo s grafickou kartou pracovat neumí, musí příkaz na vykreslení snímku poslat do ovladače grafické karty. Ovladač grafické karty příkazy přeloží do jazyka, kterému konkrétní grafická karta rozumí a odešle je na grafickou kartu.

Render latency

Doba potřebná na vykreslení snímku grafickou kartou. Tady se zas ocitáme v království grafické karty. Příkazy na vykreslení snímku jsou ukládány do fronty Render queue, která slouží jako takový zásobník práce pro GPU. Tato fronta může obsahovat až několik předpřipravených snímků z CPU, které zajišťují, že bude grafická karta neustále vytížena. Grafická karta si pak z této fronty postupně bere příkazy na vykreslení a snímek vykreslí do svého framebufferu.

Display latency

Doba potřebná na zobrazení snímku na monitoru. Z framebufferu grafické karty je snímek postupně přenášen do monitoru počítače (Scanout). Tato doba je dána rychlostí vašeho monitoru (obnovovací frekvencí) a vlastní zobrazení na panelu pak rychlostí zpracování dat a odezvou pixelů monitoru. Pokud navíc počítačovou hru nehrajete v režimu Fullscreen, do hry pak ještě vstupuje WDDM (Windows Display Driver Model ), který se musí před odesláním snímku na monitor postarat o finální kompozici obrazu (obraz z více oken).

Jak vidíte, ono těch operací na hardware a software, nežli se váš klik myší v počítačové hře fyzicky projeví na obrazovce, je více než dost a nějaký čas to prostě trvat musí. Při hraní rychlých akčních stříleček je ale však velmi žádoucí, aby právě tento čas (latence) byl co nejmenší. Proč?

Co nám latence ve hrách způsobují?

Pokud se nad problematikou latencí pořádně zamyslíte, latence je vlastně nějaké zpoždění, které nám způsobuje to, že na monitoru počítače nevidíte aktuální stav hry, ale stav, který se odehrál před nějakým časem, který se rovná právě systémové latenci. Co právě vidíte na monitoru, tedy není současnost, ale minulost, která je tím vzdálenější, čím vyšší je právě systémová latence.

Příliš vysoké systémové latence tedy pro vás ve hrách znamenají pohromu a ani váš sebelepší skill na tom nic nezmění. Představte si jeden takový hloupý příklad. Soutěžíte s kamarádem v závodech FPV dronů, které jsou vybaveny kamerou, díky které ho v překážkovém závodě můžete pilotovat, aniž byste na něj museli fyzicky vidět (obraz kamery je totiž promítán do vašich FPV brýlí). Váš dron je dvakrát tak rychlejší, nežli ten kamarádův a porazit ho tak v soutěži by pro vás pak neměl být žádný problém. Co se ale stane, když vás kvůli vyšším rychlostem vašeho dronu handicapují a pošlou vás ho řídit z mnohem větší vzdálenosti, řekněme třeba na měsíc, kam signál letí asi 1.25 sekundy?

FPV Dron

Ve vašich brýlích tak neuvidíte aktuální obraz ze závodů, ale obraz 1,25 sekundy starý (minulost) a dalších 1,25 sekundy pak bude trvat, nežli váš příkaz na změnu dráhy obdrží váš dron. Věřte, že s celkovou latencí 2,5 sekundy svůj dron v závodě mezi překážkami prostě neudržíte a váš kamarád v něm lehce zvítězí. Jasně, příklad je to hloupý a přehnaný, ale jde tu o pochopení, že snímková frekvence (rychlost vašeho drona) není úplně vše a v určitých situacích jsou nižší latence mnohem důležitější. Pojďme ale zpět k počítačovým hrám.

Představte, že jste se v nějaké hře zhostili role snajpra a své nepřátele likvidujete přes úzkou štěrbinu ve dveřích, kdy bude opravdu záležet na vašich reakcích. Vaše systémová latence ve hře je nějakých 61 ms. I když bude vaše míření sebepřesnější a vaše reakce seberychlejší, protivníka prostě nezasáhnete.

 

Zpomalený záznam výstřelu

 

Důvod je prostý, na obrazovce totiž nevidíte obraz aktuální, nýbrž obraz zpožděný o 61ms, tedy minulost. Nejaktuálnější snímek ze hry, na kterém je váš cíl už dávno pryč (mimo zaměřovač), se kvůli vyšším latencím (zpoždění) ještě nestačil na monitoru vykreslit. Vlastně tak střílíte na „ducha“, který tam už dávno není, jen vy o tom ještě nevíte. Pokud byste ho chtěli opravdu zasáhnout, museli byste střílet s předstihem, tedy ještě dříve, nežli se dostane do vašeho zaměřovacího kříže.

 

Další ukázky vlivu systémové latence v počítačové hře Valorant pak můžete vidět v tomto videu, ve kterém společnost NVIDIA propaguje svou technologii NVIDIA Reflex a kterou si dnes samozřejmě představíme také.

 

Pokud tedy víme, co je to systémová latence a co nám ve hrách způsobuje, můžeme se pustit do další kapitoly, ve které se podíváme na to, jak s ní můžeme ve hrách vůbec bojovat.

         
  Další kapitola
         

SPONSORS & PARTNERS

Asus  Alza  MSI  Gigabyte
AMD  Sapphire  Gainward  Nvidia

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