„AMDLSS“ pro Radeony, upscaling FSR, je tady. Vydán a otestován v prvních 7 hrách

24. 6. 2021

Sdílet

 Autor: AMD
AMD vydává svou alternativu k AI upscalingu DLSS od Nvidie. FSR také zvyšuje výkon za cenu určité ztráty kvality, je ale jednodušší a funguje na všech grafikách. Podívali jsme se, jak funguje a jak se liší od technologie Nvidie.

Konzervativní odhady mluvily o tom, že upscaling FidelityFX Super Resolution, který má být odpověď či alternativa pro DLSS od Nvidie na grafikách Radeon, bude k dispozici až koncem roku. Nakonec je tu o dost dřív, po odhalení na Computexu teď AMD tuto technologii vypustilo na ostro toto úterý s dostupností v prvních několika hrách.

Spatiální filtrování analogické k DLSS, ale bez neuronové sítě

Jak už bylo odhaleno minule, FSR používá jen čistě spatiální („2D“) filtrování a upscalovací algoritmus, který není založen na neuronové síti jako DLSS. Toto umožňuje škálovat přímo na shaderech s vysokým výkonem, aniž by byly nutné hardwarové jednotky pro akceleraci neuronových sítí. AMD tomuto algoritmu říká EASU (Edge-Adaptive Spatial Upsampling).

Algoritmus by měl vstupní obrázek škálovat adaptivně tak, že nejprve detekuje hrany objektů, na které aplikuje upscalovací metodu, která zachovává jejich ostrost a spojitost (to znamená, že by neměla být vidět pixelizace a aliasing, ani rozmazání, které jsou spojené s běžným škálováním). Takováto metoda by ale mohla poškozovat detail textur a ploch, které jsou proto zdá se škálované zvlášť. Bude/může v nich docházet k menší ostrosti a prokreslenosti a rozmazání, přesně jak byste od upscalování čekali, ale aspoň by se neměly vyskytovat psychedelické efekty a zkreslení (efekt olejomalby), které by na hrany zaměřený algoritmus produkoval.

Nicméně FSR také aplikuje efekt umělého přiostření (nazvaný RCAS, Robust Contrast-Adaptive Sharpening), který jednak asi má vyrovnat „změkčující“ efekt škálování textur a ploch, jednak obraz zatraktivnit, protože lidské oko/mozek i umělou ostrost preferuje. Z tohoto důvodu se může stát, že obraz po FSR v některých částech někdy může vypadat i ostřeji než bez FSR, tj. na výsledku plnohodnotného vykreslování v nativním rozlišení (toto se děje i u DLSS).

Oproti DLSS 2.0 je možná zásadnější rozdíl než použití ne-AI algoritmu ona čistě spatiální povaha. DLSS 2.0 používá k obohacení detailů ve výstupním obraze „rekonstrukci“ pomocí dat z předchozích snímků (kdy pohyb je kompenzován pomocí pohybových vektorů dodaných enginem hry). Mělo by podle Nvidie jít o více než tři předchozí snímky (podrobnější detaily firma tají). Minulé snímky sice také už jsou upscalované a ne v nativní kvalitě, ale lze z nich složením přece jen dostat detail navíc, nebo aspoň jeho aproximaci. Kromě toho toto temporální filtrování provede určité vyhlazení a dokáže potlačit některé nežádoucí projevy vykreslování jako je shimmering a temporální nestabilita detailů viditelná při pohybu, které často působí rušivě.

Více: Nvidia uvádí DLSS 2.0: nová verze AI upscalingu je temporální a nese mnohá vylepšení

Absence tohoto temporálního filtrování zařazuje nyní technologii FSR od AMD spíše do kategorie první generace DLSS, která byla také čistě spatiální (věnovali jsme jí tento článek) a používající jako vstupní data čistě pixely jednoho snímku, jako FSR (s výjimkou atypické implementace v Control).

Je možné, že v budoucnu se technologie FSR bude také vyvíjet dál – buď by se dalo pracovat na vylepšeních komponentu provádějícího 2D škálování (za cenu vyšší hardwarové náročnosti), druhé nabízející se zlepšení by bylo doplnění temporální části, jakou má DLSS 2.0. Před jeho příchodem byla temporální stabilizace a rekonstrukce použitá ve zmíněné hře Control, kde zřejmě tyto funkce nebyly přímo spojené s použitím AI a tensor jader. V době vydání to nebylo moc jasné, ale s odstupem času se zdá, že přes označení DLSS vlastně použitá technologie hodně odlišná, snad úplně bez použití tensor jader. Tudíž ukazuje, co by bylo možné dosáhnou konvenčními způsoby i na hardwaru AMD (a GeForce GTX etc...), takže temporální filtrování by mohlo být vhodnou cestou, jak FSR vylepšit.

Ale opět by to poněkud zvýšilo hardwarovou náročnost, plus také náročnost na integrování do hry, protože by se filtr musel mít přístup k pohybovým vektorům. Je možné, že napsání dostatečně robustního temporálního filtru, který by netrpěl chybami v obraze, by bylo výrazně těžší než použít „blackbox“ metodu neuronové sítě, kde se stejného výsledku dosahuje místo komplikovaných algoritmů trénováním. Ale toto vše berte jenom jako teoretickou věc. Co se AMD podaří s FSR dál udělat, ale bude záviset na jejich schopnostech a záměrech.

Škálování nastává mezi anti-aliasingem a post-processingem

Onen upscalovací filtr je na hru aplikován ne až úplně na konci, ale v o něco dřívější části pipeline, což patrně trošku pomáhá perceptuální kvalitě. FSR je ve hře aplikováno potom, co se vykreslí základní snímek s efekty počítanými přímo v rámci jednotlivých objektů a také poté, co se provede anti-aliasing (vyhlazování). FSR proto už má ve vstupu efekt a případné artefakty způsobené TAA nebo jinou vyhlazovací metodou, podle toho, jakou hra používá. Antialiasing tedy s FSR probíhá na nižším rozlišení než na nativním.

Naopak postprocessingové filtry, které se aplikují až na finální bitmapu celého snímku, proběhnou až po FSR – tedy na výstupním/nativním rozlišení. To sice znamená, že u nich FSR neuspoří výkon, ale výhoda je, že jejich funkce do určité míry může zamaskovat upscalovanou povahu obrazu. Hry často aplikují různé filtry typu chromatické aberace (simulující optiku kamery) nebo přidání šumu a zrnění do obrazu. Obzvlášť šum/zrno dokáže až magicky zakrýt některé neduhy typu rozmazání a chybějícího detailu textur. Takže zrovna ve hrách, které takový filtr používají, by mohlo FSR vypadat docela rozumně.

Kompromis mezi obrazem a FPS

Obecně ale bude platit, že kvalita obrazu při použití FSR by měla být téměř univerzálně nižší než nativní (pokud vás neoklame efekt umělého přiostření nebo se nenachytáte na situaci, kde obě verze obrazu vypadají odlišně, ale člověk neví, která je „správná“). Jde striktně o techniku, která zvyšuje výkon za cenu snížení kvality obrazu, byť se snaží onen postih na kvalitě snížit proti tomu, pokud byste prostě natvrdo snížili rozlišení. U DLSS se dá debatovat o tom, že někde přes snížení kvality upscalingem dokáže obraz i vylepšit (DLSS 2.0 svou temporální stabilizací, kromě toho má DLSS i anti-aliasingový efekt), byť je to třeba také brát s rezervou a dát si pozor na přehánění. Pořád jde o upscaling z nízkého rozlišení, kde dochází k ztrátám proti nativní kvalitě, ať už je filtr sebelépe maskuje nebo kompenzuje.

Momentálně bude tedy proti DLSS technologie AMD FSR představovat alternativu s nižší obrazovou kvalitou. Na druhou stranu jako výhodu má to, že bude fungovat poměrně univerzálně. Vyžaduje také aktivní integraci do hry provedenou vývojáři, v tomto tedy proti DLSS není rozdíl, ale poté má již méně problematické hardwarové nároky. Nevyžaduje jako DLSS speciální hardwarové jednotky (které ho svazují výhradně s GeForce RTX), stačí mu obecné výpočetní jednotky přítomné na všech GPU.

Proto FSR funguje i na kartách GeForce (přímo AMD uvádí, že funguje na kartách GTX 1000, 1600, RTX 2000/3000) a také na GPU od Intelu. S technologií od Nvidie se tak FSR nyní může i celkem doplňovat, hry by mohly poskytovat obojí.

AMD FidelityFX Super Resolution: škálovací faktory
Režim kvality Škálovací faktor Vstupní/reálné rozlišení pro výstup na 2560×1440 Vstupní/reálné rozlišení pro výstup na 3860×2140
Ultra Quality 1.3x 1970 x 1108 2954 x 1662
Quality 1.5x 1706 x 960 2560 x 1440
Balanced 1.7x 1506 × 847 2259 x 1270
Performance 2.0x 1280 x 720 1920 x 1080

Upscaling má čtyři režimy, které se liší škálovacícm faktorem mezi výstupním rozlišením a tím, které FSR produkuje a zobrazí se na monitoru. Nejkvalitnější (ve smyslu nejnižšího poklesu kvality) režim Ultra Quality používá zvětšení 1,3× v obou dimenzích (pro 4K obraz se tedy kreslí na 2954 × 1662 pixelech). Režim Quality používá škálování 1,5× (4K by bylo z 2560 × 1440 bodů), Balanced 1,7× (4K z 2259 × 1270 bodů) a nejrychlejší režim Performance pak 2×, takže 4K obraz vzniká ze snímků vykreslených ve FullHD (1920 × 1080).

Čím vyšší škálovací faktor, tím se zhoršuje kvalita, ale FPS narůstají. Ani AMD nedoporučuje používat nejrychlejší nastavení Performance, pokud snímková frekvence není vše, na čem záleží.

Větší smysl asi budou mít hlavně kvalitnější režimy, Ultra Quality a Quality. Takže pokud se do hraní s FSR pustíte, zkuste začínat vždycky od nejvyššího nastavení a až v případě potřeby přepínat na rychlejší a rozmazanější volby.

Pokud srovnáme s DLSS, Nvidia si díky AI upscalování a temporálnímu vylepšení může dovolit vyšší faktory škálování, které se pohybují od 1,5× (nastavení Quality) po 2× (Performance) a dokonce už i 3× v nastavení Ultra Performance (což znamená, že tento režim počítá 4K snímek jen z 1280 × 720 bodů).

Výkon/obraz/recenze

Kolik přidávají jednotlivé režimy FSR v konkrétních hrách ke snímkové frekvenci, se teď budete moct dočíst v různých recenzích a srovnáních, těch teď asi vyjde (respektive už i vyšlo) dost. Nárůsty výkonu začínají někde u 25–40 % při nejkvalitnějším režimu Ultra Quality, při rychlejších jdou samozřejmě FPS nahoru víc (Balanced by mol být okolo 2× zrychlení). Důležitější hodnocení obrazové kvality je samozřejmě náročnější věc, o které si asi bude debatovat dlouho.

Průměrné nárůsty výkonu uskutečněné FSR na různých grafických kartách Průměrné nárůsty výkonu uskutečněné FSR (všechny režimy, všechna rozlišení) na různých grafických kartách (Zdroj: techPowerUp)

Na obraz produkovaný technologií FSR se podíval například Guru3D nebo německý ComputerBase a hodně užitečné jsou testy techPowerUpDigital Foundry/Eurogamer. Tato dvě srovnání doporučujeme, pokud si chcete udělat představu o tom, jaké efekty FSR obnáší. Mají docela dobré nástroje pro porovnávání snímků, takže se můžete podrobně podívat na to, jaké má FSR efekty v různých nastaveních a na různých scénách.

7 her nyní, dalších 12 „brzy“

Zatímco Nvidia už díky dvěma a půl letům na trhu má poměrně dost her s podporou DLSS (mělo by jich nyní být 55), AMD dle očekávání bude začínat od píky s menším počtem. Nyní (od úterý) FSR funguje v sedmi hrách, kde ho tedy můžete vyzkoušet. Jde o 22 Racing Series, Anno 1800, Evil Genius 2, Godfall, Kingshunt, Terminator Resistance a The Riftbreaker. AMD uvádí, že 12 dalších kusů by mělo přibýt brzy, mezi nimi například DOTA 2, Far Cry 6, Resident Evil Village nebo Baldur's Gate.

Prvních 7 her s již vydanou podporou AMD FSR Prvních 7 her s již vydanou podporou AMD FSR (Zdroj: AMD)
Hry s chystanou podporou AMD FSR Hry s chystanou podporou AMD FSR (Zdroj: AMD)

Kromě toho je také uvedení seznam 44 vývojářů nebo distributorů her, kteří by FSR měli podporovat nebo už podporují. Na seznamu je třeba i Valve, EA (Frostbite Engine), Unity, Ubisoft, takže v nějakém delším horizontu by měly přibývat další hry.

Partneři u nichž se nějaká implementace AMD FidelityFX Super Resolution údajně také chystá Partneři, u nichž se nějaká implementace AMD FidelityFX Super Resolution údajně také chystá (Zdroj: AMD)

K rozšíření by mohlo pomoci otevření kódu. To zatím nenastalo, ale AMD by ho mělo uvolnit na GPUOpen pod licencí MIT. Vývojáři her by tedy tuto techniku měli mít možnost i dál upravovat a adaptovat pro vlastní potřeby.

Co považujete za přínosnější technologii upscalingu ve hrách?

Podpora/nepodpora na starších GPU?

Oficiálně je podpora FSR přidávána nyní vydanými ovladači pro grafiky Radeon verze 21.6.1, které také bohužel zahodily kompatibilitu se staršími modely grafik a APU s architekturami GCN staršími, než je Polaris a Vega. Podpora v ovladačích ale možná nebude úplně nutná. Zdá se, že by FSR mělo fungovat víceméně samo od sebe a stačí, aby tuto funkci měla implementovanou sama hra. FSR totiž zdá se už teď funguje třeba na integrovaných grafikách Intelu (Gen9 v Skylake i starším iGPU procesorů Haswell). Na starších a teď odstřihnutých Radeonech by tudíž neoficiálně FSR mohlo také běžet. Pokud jste majitelem takové karty a povede se vám FSR otestovat, ozvěte se v diskusi.

ICTS24

Na GPU dalších výrobců AMD neposkytuje nějakou záruku fungování nebo podporu (vzhledem k tomu, že nad nimi nemá žádnou kontrolu), což by se týkalo i provozu na starších Radeonech, které už nemají nové ovladače s explicitní podporou této funkce.

Galerie: AMD FidelityFX Super Resolution (FSR)

Zdroje: Guru3D, ComputerBase, techPowerUp, Digital Foundry/Eurogamer, AMD, GPUOpen