GPUreport Gigabyte
AMD Enhanced Sync: za krásnější obraz ve hrách
Rozčiluje vás ve hrách Tearing a utrácet za nový FreeSync či G-Sync monitor se vám nechce? Věřte, že existují i jiná řešení, jak se nepříjemného Tearingu zbavit a které jsou navíc úplně zdarma. Technologie AMD Enhanced Sync je jedním z nich a naleznete ji v nových ovladačích Radeon Crimson 17.7.2
gpureport.cz  Pavel Šantrůček  02.08.2017

OBSAH:
1. Double buffering          
6. Star Wars: Battlefront          
2. Triple buffering          
7. Deus Ex: Mankind Divided          
3. Jak budeme testovat          
8. Mass Effect: Andromeda          
4. Crysis 3          
9. Prey          
5. Alien: Isolation          
10. Závěr          
 

Podobně jako společnost Nvidia, tak také společnost AMD zařadila do svých ovladačů grafických karet funkci, která by měla softwareovou cestou “zatnout tipec” nehezkému obrazovému artefaktu jménem Tearing. V nových ovladačích Radeon Crimson 17.7.2 byla totiž společností AMD představena funkce s názvem Enhanced Sync a jak už to tak ve světě IT bývá, nápad to není nijak originální, ale jedná se spíše o evoluci něčeho, co už tady nějaký ten pátek existuje v podobě OpenGL Triple bufferingu.

 

 

Kdo četl článek o GPU pipeline, zejména pak její čtvrtou část “Grafická pipeline IV: Monitor”, jistě již dávno ví, co je to Tearing, Double buffering, Verikální synchronizace obrazu a podobné výrazy. Těm, kteří tento článek nečetli, ani ho číst nechtějí a výše uvedené výrazy jim proto nic moc neříkají, se pokusím alespoň ve stručnosti vše objasnit.

Double buffering, Tearing a vertikální synchronizace

Klasický Double Buffering pracuje tak, že grafická karta renderuje snímek do tzv. Back bufferu a druhý buffer s názvem Front Buffer, ve kterém je umístěn vždy snímek předcházející a hotový, slouží výhradně k prezentaci (Scan out) snímku na monitor počítače. Data z Front bufferu jsou do monitoru přenášena rychlostí, která je rovna obnovovací frekvenci monitoru a v případě nejpoužívanějších 60 Hz monitorů jim tedy tento přenos trvá 16,7 ms (včetně cca 0,7 ms, které připadají na VBI - doby, při které se na monitor nezasílají obrazová, ale pouze nějaká další podružná data).

 

Enhanced Sync - double buffering

 

Pokud grafická karta tvorbu snímku v Back bufferu dokončí, úlohy těchto bufferů se prohodí. Back buffer se stává Front bufferem, ze kterého jsou data přenášena na monitor, a Front buffer se zase stává Back bufferem, do kterého začne GPU renderovat snímek další. Takto to jde stále dokola v nekonečné smyčce.

Při tomto způsobu prezentace však vzniká tzv. Tearing, tedy jakési „roztržení“ obrazu, které je způsobeno nevhodným načasováním prohozením adres Back a Front bufferů v době, kdy byl ještě prováděn Scan out původního Front bufferu a na monitor se tak dostává obraz, který je složený ze dvou či vícero snímků.

 

AMD Enhanced Sync Tearing

 

Pokud například grafické kartě vyrenderování jednoho snímku do Back bufferu bude trvat 5 ms (200 FPS), za dobu 16,7 ms (kdy jsou přenášena data na monitor) se oba buffery prohodí třikrát (16,7 / 5) a výsledný obraz na monitoru počítače se tak bude skládat celkem ze 4 snímků (třikrát roztržený obraz).

Jediným možným způsobem, jak se Tearingu nadobro zbavit je velmi přesné načasování prohození (Swap/Flip) obou bufferů do doby, kdy na monitor nejsou zasílána žádná obrazová data a právě takovouto dobou je VBI (Vertical Blanking Interval) nebo také VBLANK. Pokud toto zajistíme (zapnutím funkce VSync ve hře nebo ovladačích), Swap obou bufferů bude proveden přesně v době VBI a nepříjemného Tearingu se tak zbavíme. Bohužel ale a jak už to tak bývá, se zapnutým VSync nastanou také úplně jiné komplikace.

 

AMD Enhanced Sync VBLANKAMD Enhanced Sync VBLANK 2

 

Opět si představte příklad se dvěma buffery a grafickou kartou, která renderuje snímky rychlostí 5 ms (200 FPS). Vertikální synchronizace obrazu je kvůli potlačení Tearingu nyní zapnuta. Z Front bufferu jsou přenášena data na monitor a v Back bufferu je vyrenderován snímek za 5 ms. Do doby VBI ještě zbývá nějakých 11 ms a grafická karta nemá kam renderovat snímek další, protože Back buffer je zaplněn a bude uvolněn (nastane Swap) až za 11 ms. Grafické kartě tedy nezbude nic jiného, nežli svou práci zastavit a čekat na Swap a uvolnění Back bufferu. Snímková frekvence nám poklesne z původních 200 FPS (5 ms) na 60 FPS (16,7 ms) a doba zobrazení snímku na monitoru se tak oddálí, čímž narůstá zpoždění (Input latency nebo Lag) právě o těch 11 ms na každý jednotlivý snímek. Takže co s tím?

         
  Další kapitola
         

SPONSORS & PARTNERS

Asus  Alza  MSI Gigabyte
AMD  Sapphire  Asbis  EVGA  Nvidia

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