Minulý týden AMD na Gamescomu doplnilo sestavu grafických karet Radeon RX 7000 o dva nové modely RX 7700 XT a RX 7800 XT, ale současně s tím odhalilo i více softwarovou novinku – připravovanou technologii FSR 3 neboli FidelityFX Super Resolution 3, přinášející tzv. Fluid Motion Frames. Jde o otevřenou alternativu k technologii DLSS 3 od Nvidie, která bude fungovat na širším portfoliu GPU včetně těch starších.
AMD FSR 3 poprvé avizovalo už loni při oznámení grafik Radeon RX 7000, ale dlouho se čekalo na oznámení dostupnosti ve hrách a více detailů. To přišlo právě na Gamescomu, takže teď konečně máme víc jasno v tom, za jak dlouho se FSR 3 začne ve hrách objevovat, a už i první takové tituly.
FidelityFX Super Resolution 3, Fluid Motion Frames
Hlavní novinkou v FSR 3 je (stejně jako v DLSS 3) generování snímků v tom smyslu, že jsou vytvářeny nové snímky nad rámec toho, co vyprodukuje samotná hra. Tyto nové „generované“ snímky či mezisnímky vznikají interpolací ze snímků, které vykreslila a vypočítala hra. Jejich vygenerování je ale už na ní nezávislé. Celý koncept je víceméně totéž co interpolace snímků či zvyšování snímkové frekvence videa v televizorech.
Funkce má označení AMD Fluid Motion Frames (AFMF) a je založená na technice optical flow, což by mělo znamenat, že jsou analyzována samotná vizuální data, aby byl zjištěn pohyb objektů mezi snímky a na základě něj byl zrekonstruován mezistav, který by měl být vidět v nově generovaném snímku. Vedle analýzy optical flow jsou současně používána „metadata“ jako pohybové vektory získané z enginu hry – stejně jako v FSR 2.x. Generování snímků pracuje současně s těmito dvěma kategoriemi informací.
Na tomto principu lze mezi dva reálné/vstupní snímky dogenerovat teoreticky i neomezené množství umělých mezisnímků, ale technologie FSR 3 (stejně jako DLSS 3 Nvidie) momentálně počítá s doplněním vždy jen jednoho. To má tu výhodu, že polovinu času jsou zobrazené reálné snímky, mezi nimiž vygenerované a potenciálně méně kvalitní mezisnímky jen probleskují. To poněkud zmírní viditelnost případných artefaktů.
Interpolace (generování) snímků by mělo být propojené s FSR 2.x, tedy upscalingem využívajícím temporální rekonstrukci a pohybové vektory, což by mělo celek zefektivnit. AMD také uvádí, že algoritmus generování snímků bude speciálně klást ohled na GUI hry a další elementy typu HUD, které nejsou přímo součástí scény. FSR 3 si má dávat pozor na to, aby je rušivě nedegradovalo.
FSR 3 poběží na prakticky všech grafikách
Podle tohoto popisu se zdá, že fungování FSR 3 je velmi podobné konkurenčnímu DLSS 3 (ono také není moc co vymýšlet, jde o přístup už používaný po dlouhá léta v televizorech). Rozdíl je v tom, že Nvidia při analýze optical flow využívá specializované hardwarové jednotky přítomné v GPU generace Ada Lovelace, kdežto FSR 3 je napsané tak, že mu stačí obecný výpočetní hardware GPU.
DLSS 3 by tím mělo mít potenciál dosáhnout o něco lepší kvality, protože teoreticky má k dispozici více výkonu pro své výpočty. FSR bude mít asi omezenější „výpočetní rozpočet“. Také může mít o něco větší režii, takže nárůst výstupních FPS může být o něco menší – typicky asi často nebude dosahováno dvojnásobku FPS, ale o něco méně.
Na druhou stranu FSR 3 díky použití jen standardních jednotek není omezené jen na vybraná GPU. Nejsou použité ani specifické akcelerátory AI, ani akcelerátory pro hledání pohybových vektorů / optical flow. Místo toho je použitý kód napsaný v HLSL (pro shadery). AMD již potvrdilo, že FSR 3 a jeho generování snímků bude fungovat na mnoha různých platformách včetně herních konzolí. Oficiálně je technologie podporovaná na kartách Radeon RX 5700 a novějších (doporučené jsou karty generace RX 6000 a 7000) a u Nvidie na GeForce RTX 2000 a novějších (doporučeno RTX 3000).
Toto ale není nijak natvrdo omezeno a rozběhnete i starší grafiku, jen vše bude pomalejší. Jediným reálným kritériem je, že GPU musí mít dost výkonu na hru samotnou a na běh algoritmů, které generují snímky navíc, aby věc byla v praxi užitečná. Ač tedy v tabulce podporovaných GPU není nic od Intelu, grafiky Arc budou jistě fungovat také.
Otevřená technologie
Podobně jako FSR 1.0 a FSR 2.x bude také tato technologie otevřená, včetně kódu, který tak bude možné studovat a zlepšovat. To pochopitelně platí i pro konkurenci – nevýhoda pro AMD je, že firma nemůže udržet nějaké speciální triky v tajnosti a Nvidia a/nebo Intel je vždy budou moci okopírovat do svých alternativ, které ale už takto otevřené nejsou. Kód bude zveřejněn ve FidelityFX SDK a na webu GPUOpen.
Horší latence
Nevýhody jsou stejné jako u DLSS 3 – vygenerované snímky navíc nereagují nijak na vstup hráče ani přímo nekorespondují s fyzikálními a AI výpočty hry. Jsou generovány čistě z finálního obrazu – tedy pixelů snímku plus pohybu, který je mezi snímky zjištěn analýzou tzv. „optical flow“ a z pohybových vektorů.
Generované snímky mohou vytvořit dojem větší plynulosti zejména ve chvíli, kdy se obraz pohybuje pomalu a plynule, ale při rychlém nepravidelném pohybu scény (nebo třeba když se obrazovka „zatřese“) mohou aproximovat chybně. Není tedy úplně správné mluvit o tom, že tyto techniky zlepšují plynulost her a „zvyšují FPS“, to platí jen za určitých podmínek. A dalo by se spíše říci, že vytváří více nebo méně úspěšnou iluzi plynulosti a vyšších FPS.
Zásadní komplikace je, že pro interpolaci mezisnímku potřebujete nejdřív mít k dispozici předchozí snímek i ten následující. Při použití FSR 3 i DLSS 3 tedy hra musí bufferovat o jeden snímek navíc, o což se prodlužuje latence (input lag) hry. Toto je z podstaty věci a děje se tak vždy. Nvidia se snažila tvrdit, že DLSS 3 latenci naopak zlepšuje na základě toho, že k němu přibaluje technologii Reflex. Ale toto je vyloženě zavádějící, protože technologie Reflex je nesouvisející a dá se použít bez DLSS 3 (až tehdy latenci minimalizuje). S generovanými snímky se děje to, že toto zlepšení díky Reflexu padne za oběť tomu, aby kompenzovalo zhoršení latence inherentní v DLSS 3. Pokud se k Reflexu přidá interpolace snímků, vždy celková latence stoupne.
Propojení s Anti-Lag a nový Anti-Lag+
Podobnou technologii snižování latence AMD vyvinulo (ještě před Reflexem) pro potřeby soutěžního hraní pod označením AMD Anti-Lag a stejně tak bude párována s FSR, aby se dopad zhoršení latence zmírnil. S grafikami generace Radeon RX 7000 má být snížení latence ještě o něco zlepšeno pomocí nové vylepšené technologie Anti-Lag+, která má být speciálně upravená tak, aby dále snížila dopad při použití FSR 3.
Obecně se kvůli latenci doporučuje generování snímků použít až tehdy, pokud hra bez něj běží okolo 60 FPS – čímž se dostanete někam na výsledných 100–120 FPS. V této situaci nebude dopad na latenci (a případná nepřirozenost pohybu) tolik vadit.
Pomoc pro hry limitované výkonem CPU
Bylo zmíněno, že generované snímky už vznikají nezávisle na samotných výpočtech a enginu hry. To má jeden zásadní důsledek – DLSS 3 či FSR 3 je mohou vytvořit i v situaci, kdy engine hry je limitovaný výkonem CPU a nestíhal by žádné další snímky připravit. V takové situaci vám už nepomůže DLSS 2.x nebo FSR 2.x, protože ty odlehčují jen zátěži GPU, ale práce pro CPU zůstává stejná. Některé hry tak i v nízkých rozlišeních mají pořád špatný výkon právě proto, že procesor nestíhá výpočet geometrie, AI a tak podobně.
Při použití DLSS 3 či teď FSR 3 se tento problém obejde a grafika v podstatě automaticky zdvojnásobí výstupní snímkovou frekvenci (byť s oněmi výhradami, o kterých byla před chvílí řeč). Příkladem takové hry je aktuální Microsoft Flight Simulator, kde prakticky nebylo možné dosáhnout dobrých FPS. Kvůli enormní potřebě výkonu CPU dostanete vyšší snímkové frekvence právě jen pomocí generování snímků.
Zdvojnásobení snímkové frekvence pomocí generovaných snímků je možné dosáhnout i v situacích, kdy limitace existuje na straně GPU, tedy ve vysokých rozlišeních jako 4K, 5K, 8K. Tam je ale asi lepší nejprve sáhnout k FSR 2.x a DLSS 2.x a až pak generovat snímky.
První ochutnávka za měsíc?
Toto je alespoň teorie daná použitými postupy. Ale jak dobře bude FSR 3 fungovat, ukáží až hotové hry, ve kterých bude technologie zaintegrovaná, a testování v nich. Zejména to platí o vizuálním dopadu interpolace.
První ohlášenou hrou s podporou FSR 3 a Fluid Motion Frames bude Forspoken od Square Enix a po ní Immortals of Aveum od Ascendant Studios / EA. Patche s podporou FSR 3 pro ně mají vyjít v září či na začátku podzimu. Po těchto dvou je známo dalších deset her, které FSR 3 dostanou později, mezi nimi je například Cyberpunk 2077. AMD uvádí, že na podpoře ve hrách teď spolupracuje s 15 herními studii a další by měla přibýt.