Radeon Chill a omezování FPS
Začněme třeba u nástroje Radeon Chill, který je jednou z funkcí, kterou ovladače 17.7.2 vylepšují. Chill slouží ke snižování výkonu GPU během okamžiků neaktivity nebo nízkého zatížení ve hře a spojuje řízení spotřeby grafiky s řízením požadované snímkové frekvence hry. Tu například snižuje, pokud se na obrazovce nic nehýbe nebo hráč nic nedělá a tedy nepotřebuje tak rychlou odezvu. Snímková frekvence je automaticky řízena právě dle intenzity pohybu ve hře a přizpůsobuje se (prý) dost rychle na to, aby tato manipulace nebyla poznat. Chill se může hodit jednak na notebooku k prodloužení výdrže baterie, jednak při hraní méně náročných her například typu MOBA, kdy má výkonnější grafika na stovky FPS, ale je zbytečné tolik snímků počítat, když má vaše LCD frekvenci nižší.
Co je nového? Nově bude volba Chill přímo v základních nastaveních aplikace Radeon Settings pro každou hru (nejprve ale Chill musíte povolit v globálních nastaveních). Zároveň funkci nyní bude možné používat i s moderními grafickými API Vulkan a DirectX 12, což dříve možné nebylo. Seznam her, kde lze funkci Chill využívat, by měl nyní čítat přes 30 titulů. Rozšířila se také podpora hardwaru, který je kompatibilní. Kromě běžných grafik už nyní funguje i na více kartách v CrossFire, na noteboocích s přepínatelnou grafikou a také s externími GPU připojenými přes Thunderbolt 3 (XConnect). Podle testů AMD má například Chill prodloužit výdrž notebooku HP Omen s Radeonem RX 580 při hraní League of Legends o 30 %.
Podobná zlepšení jako Chill dostala údajně také související funkce omezování FPS ve hrách, která se jmenuje Frame Rate Target Control. Také tento režim, šetřící energii, ale nevyžadující explicitní podporu hry jako Chill, lze nyní používat i v DirectX 12 a s více GPU v CrossFire.
Enhanced Sync: lepší odezva proti VSync
Jedno z hlavních vylepšení nových ovladačů je zdá se funkce Enhanced Sync. Ta mění způsob, jakým se obnovuje obrazovku a lze říct, že zavádí jakýsi kompromis mezi klasickými režimy se zapnutým a s vypnutým V-Sync. Zapnuté V-Sync (neboli vertikální synchronizace) zajišťuje, že se na obrazovku vykreslí vždy jen celé hotové snímky z patřičného bufferu GPU. To však přidává určitou pro hráče nepříjemnou latenci navíc mezi vstupem či událostí ve hře a zobrazením. Při vypnutí V-Sync je tato odezva zkrácena díky tomu, že GPU může vykreslovat více snímků za vteřinu, než kolik je obnovovací frekvence. Monitor kreslí z bufferu vždy řádky nejnovějšího snímku a většinou se stane, že někde na obrazovce dojde k přechodu mezi dvěma (nebo i více) rozdílnými snímky, což vyprodukuje artefakt známý jako „tearing“. Ten je sice ošklivý, ale hráči se jej naučili akceptovat – zvlášť při soutěžním či jinak silně na osobní výkon soustředěném hraní.
Enhanced Sync se nachází někde mezi – má minimalizovat množství tearingu (ale ne mu zcela zamezit jako u V-Sync), ale zachovat rychlou odezvu. Fungovat by to mělo tak, že je vertikální synchronizace zapínána a vypínána dynamicky. Pokud běží hra na frekvenci vyšší než je snímková frekvence monitoru, je V-Sync aktivní a vykreslen je vždy poslední dokončený snímek, takže nenastává tearing. Při poklesu pod frekvenci monitoru (u běžných LCD 60 Hz) se ale V-Sync vypne a ovladač dovolí vykreslování částečně hotových snímků s tearingem. Vypadá to sice škaredě, ale při poklesu pod 60 Hz monitor efektivně začíná zobrazovat s jen 30 snímky za vteřinu, takže propad v plynulosti by byl silný, stejně jako zhoršení latence (jeden snímek při 30 Hz trvá 33,3 ms). S pomocí tearingu je tak hra plynulejší.
Z popisu fungování se zdá, že tento režim je vesměs stejný jako režim označený „Adaptive VSync“ u Nvidie, která jej v ovladačích podporuje už delší dobu (takže zde AMD dohání).
Enhanced sync bude nejvíce užitečný na monitorech s fixní obnovovací frekvencí, kde je trhaný pohyb při frekvencích mezi 30 a 60 Hz známým problémem. Kromě toho ale tato funkce může běžet i na monitorech s FreeSync. V takovém případě je užitečná při poklesu snímkové frekvence pod podporovaný adaptivní rozsah (nemáte-li monitor s LFC). Zatímco v podporovaném rozsahu a nad ním poběží hra plynule a bez trhání, pod ním bude V-Sync vypnuto, aby hra netrpěla cukáním a zhoršenou odezvou. Jako většinu podobných věcí jinak bude možné Enhanced Sync aktivovat buď globálně, ale i pro jednotlivé hry – volba se nachází v nabídce „Wait for Vertical Refresh“, která ovládá V-Sync.
Výkon – nebo spíš odezva
Ačkoliv se toto vydání novými funkcemi trochu blíží k „mega“ ovladačům, které dříve AMD uvolňovalo na konci roku, nejsou v něm zdá se přímo nové optimalizace výkonu ve hrách, které se obvykle objevují „akčně“ vždy v nepravidelných vydáních u příležitosti příchodu hlavně áčkových her. AMD se podle svých slov místo toho zaměřilo na zrychlení odezvy a snížení latence, kterou ovladače při běhu hry vytvářejí. Jedním z těchto opatření je ostatně i předešlá funkce Enhanced Sync.
AMD uvádí, že testuje latenci ve hrách měřením prodlev mezi kliknutím na myši a reakci obrazu. K tomuto účelu prý používá upravenou myš, která rozsvěcuje LED při kliknutí, a kameru nahrávající s vysokou snímkovou frekvencí. To umožňuje na videu analyzovat prodlevy mezi vstupem a reakcí hry viditelnou na monitoru. Na základě těchto měření se pak vývojáři snaží zkracovat časy strávené v ovladači a dobu, kterou zabere, než „draw call“ vydaný procesorem projde celou pipeline procesoru a akce spuštěná hráčovým kliknutím nebo jiným vstupem se projeví ve hře.
Na obrázku vidíte údaje z interního testování AMD. V řadě her se údajně podařilo docílit slušného zlepšení odezvy (která se jak vidíte dost mění podle titulu a enginu). Podle návodu na vytvoření „měřící myši“ a navržené metodiky by se ale snad do testování odezvy tímto způsobem mohli jednou pustit i nezávislí recenzenti, což by bylo zajímavé vylepšení recenzí grafických karet. Tato zlepšení v ovladači se jinak údajně týkají her běžících na DirectX 9 a 11. Podle AMD je situace v moderních API DX12 a Vulkan odlišná a eliminace zbytečného zpoždění je více na programátorovi hry a enginu.
Jedno další výkonnostní zlepšení se týká nahrávacích časů hry. Ty zpomaluje kompilace shaderů hry v ovladačích (ta totiž musí probíhat na míru instalovanému GPU). Ke zmírnění tohoto dopadu existuje možnost uložit přeložené shadery do cache na disku a příště je znovu použít. AMD dříve cache poskytovalo jen pro hry nad DirectX 11, nyní se však podpora rozšíří i na API DirectX 9, respektive některé populární hry, které ho používají (jedná se třeba o Starcraft 2, DOTA2, League of Legends, Counter Strike Global Offensive, World of Warcraft).
Vylepšení nahrávacího nástroje
Další oblastí, kde vývojáři podnikali aktivity, je nahrávací a streamovací nástroj ReLive, uvedený koncem loňského roku. Ovladač 17.7.2 by měl mít tento program optimalizovaný tak, aby spotřebovával méně prostředků a ponechával více výkonu pro samotnou hru. To by mělo mít měřitelný dopad na FPS, po aktivaci nahrávání byste měli nyní pozorovat menší propad výkonu než dříve. Zlepšení může být až o 33 % (patrně výsledek z nějakého vybraného interního testu), nicméně postih už dříve nebyl dramatický, takže nejde o nějaký diametrální průlom. Nicméně zmírnění zátěže je příjemné.
Software by také měl mít šikovnější notifikace, v rozehraní přibyl ukazatel doby nahrávání nebo notifikace o problémech s připojením. Program také nyní má jemnější možnosti nastavení zvuku, lze nastavovat hlasitost nahrávání či případně přidat hlasitost mikrofonu. Šikovná by měla být možnost aktivovat mikrofon pomocí stisknutí tlačítka či kombinace kláves jako na vysílačce (funkce se také jmenuje „Push to Talk“), takže nebudete při streamu slyšet pořád, ale jen pokud chcete světu něco sdělit. Dalším drobným vylepšením je, že obrázek z webkamery, který se dá volitelně vložit do streamu ze hry, lze nyní zprůhlednit.
Kromě toho přibyla také možnost nahrávání videa s vyšší kvalitou. ReLive mělo doposud jako nejvyšší nastavitelný datový tok 50 Mb/s, což třeba při rozlišení 4K není zas tak moc, uvážíme-li, že real-time hardwarové enkodéry jsou s kvalitou spíš na válečné stezce, než kamarádi. Pro offline nahrávání teď bude možné nastavit datový tok 100 Mb/s, který by měl kvalitu znatelně vylepšit. S touto bitrate ale nebude možné streamovat (což by asi reálně stejně moc nefungovalo), cílem je mít kvalitnější zdroj pro pozdější překódování.
Další novinky v Radeon Settings
Z ranku menších zlepšení jsou pak změny v GUI aplikace Radeon Settings. Ta po svém uvedení ještě neměla zcela všechny funkce předchozího rozhraní Catalyst Control Center. Kvůli tomu byl součástí ovladačů dialog rozšířených nastavení (nacházela se v něm například konfigurace vlastních rozlišení), který byl reliktem původního Control Centeru. Ve verzi Crimson ReLive 17.7.2 by měl být přechod na novou aplikaci konečně kompletní a všechna nastavení jsou již přímo v Radeon Settigns, takže tento ostatek byl odstraněn, údajně na základě četných žádostí uživatelů.
Nové možnosti jinak dostala také taktovací utilita Wattman. Nyní s ní bude možné podtaktovávat paměti grafiky a také individuálně pozměňovat všechny stupně taktů/napětí (Power State), které řízení spotřeby pro GPU používá. AMD také uvádí, že do Radeon Settings zapracovalo podporu pro separátní nastavení barev pro různé připojené monitory, které by se mohlo hodit uživatelům s rozšířenou plochou tvořenou různými typy LCD. Toto byla údajně druhá nejčastější žádost od uživatelů, hned po vyřešení oněch rozšířených nastavení na bázi Catalystu.
Insiderovský program v podání AMD
Poslední novinka, která by vás mohla zajímat, se týká propojení vývoje ovladačů s komunitou hráčů. AMD totiž otevírá program časného testování, tedy něco jako možnost být „Windows Insiderem“ a testovat buildy softwaru před jejich veřejným vydáním, kterou otevřel Microsoft. To se může hodit vývojářům her, ale i zdatnější běžný uživatel by někdy mohl mít zájem se dostat k novým funkcím dřív. Program se jmenuje Vanguard a „Vanguard Beta Testers“ v jeho rámci budou mít předsunutý přístup k ještě nevydaným ovladačům a zejména pak vývojářskému týmu posílat zpětnou vazbu o tom, co nefunguje nebo se případně „nelíbí“ a navrhovat změny a nové funkce. Odvážlivci se mohou hlásit zde.
Profiler výkonu GPU a další dárky programátorům
AMD současně prezentovalo i některé novinky určené nikoliv uživatelům, ale tvůrcům her, většinou pocházející z jeho open source programu GPUOpen. Jde například o knihovnu LiquidVR 360 pro prostorové přehrávání prostorového videa, kterou lze nyní integrovat do enginu Unity a Unreal Engine 4, přičemž také přináší podporu prostorového zvuku Ambisonic. Aktualizovány byly i další nástroje z GPUOpen, hlavní novinkou je ale nový program, který by měl hodně pomoci při vývoji her pro moderní grafická API.
AMD totiž vývojářům zpřístupní nástroj Radeon GPU Profiler, který je přesně tím, co název značí. Analyzuje výkon GPU v běžícím kódu a podává statistiky o čase potřebném pro vykonání jednotlivých operací, vytížení prostředků a podobných veličinách, podobně jako při profilování výkonu na CPU. Součástí je tracing vláken kódu a také grafy využití prostředků, vizualizující vytížení GPU. Na základě dat, které programátor z GPU Profileru dostane, je pak možné optimalizovat kód tak, aby lépe využíval dostupné prostředky, nezahlcoval některé části GPU nebo se eliminovala úzká hrdla výkonu. Podle AMD například dobře ukazuje, kde lze využít asynchronní shadery k zužitkování jinak jalového výkonu.
![Vizualizace vykonávání kódu na grafice v Radeon GPU Profileru. Snímek má pocházet z reálného produkčního nasazení při vývoji nejmenované hry](https://i.iinfo.cz/images/145/Radeon-Software-Re-Live-17-7-2-GPU-Profiler2-1024x576-large.jpg)
AMD tento nástroj údajně prezentovalo vývojářům v různých společnostech (DICE, Valve), prý se značným ohlasem. Vývojářům pracujícím s DirectX 12 a Vulkanem – které vyžadují explicitnější řízení GPU a neschovávají jeho fungování tolik do „blackboxu“ ovladače – by měl umožnit pracovat podobně jako při vývoji her pro konzole. To znamená mít možnost kód podstatně lépe optimalizovat a mnohem lépe vědět, co uvnitř GPU provádí.
Radeon GPU Profiler by v tomto údajně měl být značně inovativní až unikátní, tedy alespoň podle toho, jak jej firma prezentovala. Jakožto neprogramátor vám neřeknu, zda jsou ony ódy opodstatněné – ovšem pro optimalizace kódu na CPU je dostupnost profilovacích nástrojů velmi cenná, poskytnutí takového nástroje i pro GPU by tedy mělo mít skutečnou hodnotu.
Pro použití GPU Profileru bude třeba aktivovat vývojářský režim v ovladači. To půjde učinit zapnutím volby v Radeon Settings, která ovšem nebude běžně dostupná ve spotřebitelských ovladačích. K použití tohoto nástroje budete potřebovat zvláštní verzi (Crimson ReLive Edition Developer Driver), kde je aktivovaná, jež se bude dát získat od AMD. Jak výběrový přístup k ní bude, to nicméně zatím nevíme, snad se k ní ale dostanou i menší firmy či jednotlivci.
Podle AMD je nástroj dostupný pro Windows 10, Windows 7 a pozor – i pro Linux. Všechny platformy mají být podporovány rovnocenně a mít všechny funkce. Což prý platí i pro podporu grafických API – stejné možnosti mají být jak pro DirectX 12, tak pro Vulkan. Starších vysokoúrovňových API se GPU Profiler netýká, jelikož v jejich případě je kód na cílovém počítači do značné míry přežvykován ovladačem. Třeba toto aspoň poňoukne víc vývojářů k využití potenciálu DX12 a Vulkanu.