Tady jsem něco narychlo něco zplodil, jen je to celkem dost dlouhý, tak se omlouvám.
CHILL
Nejdřív jeden sice špatný, zato snad vše dobře vysvětlující příklad.
Představte si, že hrajete nějakou FPS hru, kde stojíte někde v lese a najednou pohnete myší doprava, výsledkem bude to, že celá scéna (les) se vám začne na obrazovce pootáčet doleva.
Dejme tomu, že při snímkové frekvenci 100 FPS se otočení o 30° musí vyrenderovat celkem 10 snímků (čísla neřešte, záleží na rychlosti, kterou se otáčíte).
Na grafickou kartu tedy byl poslán 10 x snímek (jeho setup), který obsahoval vždy informace o právě aktuální poloze myši. Grafická karta pak z tohoto snímku vždy vytáhla informace o nové poloze myši a vyrenderovala konkrétní snímek, který byl natočen právě podle této polohy myši. V našem případě bylo vždy pootočeno o 3° (30°/10 snímků), proti předchozí poloze. Abyste se tedy ve hře otočili o 30°, muselo být vyrenderováno všech 10 snímků, kdy každý byl pootočen o 3°.
Novější hry však informace o poloze ovladačů (myši, klávesnice atd.) již neukládají přímo do jednotlivých snímků, ale byl jim zřízen speciální buffer, kam se postupně ukládají jejich aktuální stavy a grafická karta je umí z tohoto bufferu také přečíst. V tom extrémním případu našeho příkladu, může tedy GPU k danému setupu snímku klidně přečíst úplně poslední aktuální údaj o poloze myši a ihned snímek vykreslit s pootočenním 30° a všechny snímky mezi tím vůbec nerenderovat. Je to sice nesmysl, protože by to byl na obrazovce příliš velký skok, na druhou stranu ale dostáváme prakticky nulový Input latency (Lag). A právě toho využívá Chill.
Chill má jakousi základní frekvenci, kterou čte onen buffer s informacemi o poloze vstupních zařízení a renderuje snímky. Tato základní frekvence je nastavena na 40 Hz, ale může se ovladačích přenastavit.
Pokud se vrátíme k našemu příkladu, pak místo původních 100 FPS a 10 snímků, kterých bylo potřeba na pootočení o 30°, bude snímková frekvence u Chill jen 40 FPS a použity pouze 4 snímky (pootočení o 7,5°). Výsledkem tedy je nižší snímková frekvence (a tím i plynulost), ale zároveň také nižší Lag a spotřeba grafické karty o 60% (v daném úseku totiž GPU pracuje u Chill jen 40 ms (4x 10ms), kdežto u klasického renderingu celých 100 ms (10x 10ms)).
Hlavní nevýhoda Chill spočívá v nižší snímkové frekvenci a tím i plynulosti, protože posuny/transformace mezi jednotlivými snímky při nižší snímkové frekvenci jsou větší (v našem případě 7,5° vs 3°). To se Chill snaží kompenzovat dynamickým zvýšením oné základní frekvence v době, kdy je to nejvíce potřeba. A podle Chill je toho potřeba v době, kdy hráč nějak významněji jezdí a kliká myší, mačká klávesy na klávesnici a tak.
Chill tedy sleduje aktivitu hráče na vstupních zařízeních a podle intenzity přidává nebo ubírá onu základní frekvenci Chill a tím i snímkovou frekvenci ve hře. Dá rozum, že pokud člověk kliká jak idiot a Chill proto dynamicky nastaví snímkovou frekvenci na maximum, plynulost pohybu se zvýší, Lag zůstane stále v pohodě, jen spotřeba grafické karty půjde nahoru (GPU pracuje víc).
Já jsem u Chill měřil závislost aktivity hráče na snímkové frekvenci. Vzal jsem testovací scénu Deu Ex a projel ji jednou bez Chill a jednou s Chill, ale bez aktivity hráče. S Chill jsem pak projel ještě znovu s tím, že jsem při testu klikal myší cca 3 kliky/sekundu a při posledním testu jsem pak klikal dvakrát tak rychle cca 6 kliků/sekundu. Tady jsou výsledky:
Radeon Chill-FrameRateChart.Png
Suma sumárum, Chill přináší nižší Lag (limetery a VSync lag vůbec neřeší) a snímkovou frekvenci dynamicky přizpůsobuje hráči (Lag je však závislý také na konkrétní hře). Chill dále přináší také nižší spotřebu (někdy i významně nižší), ale také i nižší plynulost díky nižším FPS. Nejhorší situace s plynulostí je v případě nějakých rychlých cutscén, při kterých není žádná aktivita na klávesnici a myši. Dle mého, naprosto ideální pro hraní na noťasech. Na velkých PC to bude spíš hra od hry.