Výkon navíc pro Turingy. Technologie Content Adaptive Shading od Nvidie otestována

22. 11. 2018

Sdílet

GeForce RTX Autor: Nvidia
GeForce RTX

Minulý týden byl vydán patch pro hru Battlefield V, jímž se do ní dostala první herní ray tracingová grafika akcelerovaná v reálném čase pomocí RT jader architektury Turing. Nebyla to ale jediná aktualizace, kterou by se hry přizpůsobovaly novinkám architektury Turing. Současně Nvidia také upozornila na to, že do hry Wolfenstein II: The New Colossus byla přidána podpora pro techniku Content-Adaptive Shading, jednu z novinek GPU architektury Turing. Slouží ke zvýšení výkonu a The Tech Report už stihl změřit, jak moc tato optimalizace snímkovým frekvencím dokáže pomoci.  

Adaptivní rozlišení shaderů pro vyšší výkon

Content Adaptive Shading je trik, používající schopnost Turingů počítat shadery v jednom snímku s různou kvalitou, což se označuje jako Variable Rate Shading. V rámci scény lze snížit efektivní rozlišení, na kterém jsou shadery aplikovány. Jde o něco podobného subsamplingu, kdy se rozlišení sníží a efekt shaderu je vypočítáván pro blok 2×2, 4×4, 1×2/2×1 či 4×2/2×4 pixelů místo jednoho pixelu. Zóny, kde lze rozlišení redukovat, určuje typicky programátor.

Variable rate shading dokáže měnit kvalitu shaderů po jednotlivých blocích obrazu Variable rate shading dokáže měnit kvalitu shaderů po jednotlivých blocích obrazu

Content Adaptive Shading je odvozen od stejného principu, odlišnost spočívá v tom, že hra sama detekuje a určuje, jak moc se může v určitém bloku (stále 16 × 16) kvalita snížit, a to podle jeho obsahu. Hra provádí na konci zpracování snímku postprocesing, jehož úkolem je zanalyzovat charakter bloku a rozhodnout automaticky, zda a jak moc se pro něj v příštím snímku může zredukovat kvalita shaderů (pro aktuální snímek už je na redukci v tu chvíli pozdě). Toto rozhodnutí je učiněno například na základě úrovně detailů v daném bloku (scéna se dělí na bloky 16 × 16 pixelů). A tato analýza a pak aplikace variabilní kvality shaderů v příštím snímku probíhá cyklicky neustále. Smyslem je samozřejmě uspořit výkon potřebný pro aplikaci všech shaderů ve scéně a tím zkrátit zpracování snímku a navýšit snímkovou frekvenci.

Na těchto snímcích můžete vidět příklad toho, jak má rozdělení scény fungovat – bloky bez barevné výplně ukazují ty, které algoritmus vyhodnotil jako ty, které se mají počítat s plnou kvalitou. Barevné pak byly vybrány pro různou úroveň sníženého rozlišení shaderů (červená znamená nejnižší rozlišení). Jde o scénu ve hře Wolfenstein II, ale snímky jsou přímo od Nvidie, jde tedy o jakousi prezentační ukázku.

Demo Content Adaptive Variable Shading, rozdělení bloků ve scéně (zdroj: Nvidia) Demo Content Adaptive Variable Shading, rozdělení bloků ve scéně (zdroj: Nvidia)

Smyslem této optimalizace je zachovat obrazovou kvalitu bez znatelných změn, ale tato optimalizace není úplně „bezeztrátová“. Ve Wolfeinsteinu II je proto možné zvolit tři úrovně – Performance, Balance a Quality. Ty by měly zastupovat tři různé úrovně kompromisu mezi výkonnostním ziskem a případnou degradací vizuální podoby hry (Quality logicky vydře nejmíň výkonu, Performance nejvíc, a Balance je někde mezi). Kromě toho by se v režimu Custom mělo dát chování nastavit podrobněji.

wolfenstein-ii-the-new-colossus-bundle

Drobné zvýšení výkonu, které se ale hodí a počítá

The Tech Report otestoval jak průměrné snímkové frekvence, tak plynulost hry s těmito nastaveními. Z těch vyplývá, že Content Adaptive Shading nepřináší sám o sobě nějaký revoluční nárůst výkonu (což se ale asi dalo čekat). Zvyšuje ale konzistentně ýkon o několik procent. Tudíž jde o užitečnou techniku, která se může přidat k dalším optimalizacím, které vývojáři používají, a přispět k celkovým výkonnostním ziskům. Pro získání dostatku výkonu třeba pro 4K hraní s vysokými snímkovými frekvencemi tedy půjde o užitečnou trošku do mlýna.

A není až tak malá. V rozlišení 3840 × 2160 s kartou GeForce RTX 2080 Ti získá nastavení CAS Performance 5,7 % ve snímkové frekvenci (Quality a Balance pak 1–3 %). Na GeFore RTX 2070 jsou dopady o něco vyšší: nastavení Performance získává 7 % (77 FPS místo 72 FPS), Quality a Balance pak 3–4 %. Zhruba podobně to vypadá u RTX 2080. Je ovšem třeba říct, že tyto karty asi nemají nějaký výrazný nedostatek výkonu shaderů. V jiné hře, kde by jím trpěly, by zisk z implementace Content Adaptive Shadingu mohl být asi vyšší. Nebo to lze vzít naopak – pomocí takovéto techniky by vývojáři mohli do scény dostat více efektů při stejném výkonu.

bitcoin_skoleni

Dopad optimalizace Content Adaptive Shading v benchmarku (Zdroj: The Tech Report) Dopad optimalizace Content Adaptive Shading v benchmarku (Zdroj: The Tech Report)

Content Adaptive Shading má podobný pozitivní vliv na čas potřebný k vykreslení 1% nejpomalejších snímků, takže trošku přispívá k plynulosti. Ani zde to není podle Tech Reportu nějaký dramatický efekt. Stejně jako na FPS má ale tato optimalizace konzistentní pozitivní vliv, takže nelze nic namítat. Zejména se 120Hz a 144Hz monitory se tento efekt hodí víc, protože čas trvání jednoho snímku je s nimi hodně krátký.

Dopad optimalizace Content Adaptive Shading v benchmarku. Tyto grafy ukazují distribuce času výpočtu snímků (Zdroj: The Tech Report) Dopad optimalizace Content Adaptive Shading v benchmarku. Tyto grafy ukazují distribuce času výpočtu snímků (Zdroj: The Tech Report)

Content Adaptive Shading je doporučeno zapnout

Podle Tech Reportu nebyly při testování patrné nějaké viditelné degradace obrazové kvality a doporučuje proto mít tuto optimalizaci vždy zapnutou (máte-li kartu GeForce RTX). Takže implementace je zřejmě povedená a v podstatě bez negativ. Je ovšem také třeba podotknout, že Wolfenstein II: The New Colossus je úplně první hra, do které se tato optimalizace dostává. Je tedy možné, že časem se ji povede vyladit víc a někdy v budoucnu budou nárůst FPS výraznější.