Door Daan van Monsjou

Nieuwsredacteur

Hoge framerates én goede graphics

Hoe werken Nvidia DLSS, Intel XeSS en AMD FSR 2.0?

16-04-2022 • 06:00

28

Multipage-opmaak

Inleiding

In dit artikel bekijken we de technieken voor temporal upscaling van AMD, Intel en Nvidia, waarbij games op een lagere resolutie worden gerenderd en vervolgens worden opgeschaald naar een hogere resolutie voor betere framerates. We gaan onder meer in op de verschillen tussen spatial en temporal upscaling. We kijken ook naar de onderliggende techniek van het huidige DLSS en de aanstaande technieken in XeSS en FSR 2.0. Daarbij bespreken we hoe deze technieken werken, maar ook welke voordelen ze moeten opleveren.

Een gamer wil twee dingen: hoge framerates en goede graphics, en het liefst allebei tegelijk. Maar zeker nu we steeds vaker gamen op hoge resoluties als 4k en met de introductie van rendertechnieken als raytracing, vergen games steeds meer rekenkracht. Daardoor kan het een ten koste gaan van het ander. Natuurlijk kun je ieder jaar je videokaart upgraden, maar dat wordt al gauw een dure hobby. Bovendien is in de afgelopen tijd gebleken dat chiptekorten roet in het eten van upgradeplannen kunnen gooien. Stel je voor: een techniek waarmee je de framerates een flinke boost kunt geven zonder te upgraden en zonder verminderde beeldkwaliteit. Dat is waar temporal upscaling in beeld komt.

Nvidia bood als eerste videokaartmaker een oplossing met die belofte, in de vorm van DLSS 2.0. Nvidia's RTX-videokaarten kunnen die op AI gebaseerde techniek gebruiken om games op een lagere resolutie te renderen en ze vervolgens op een hogere resolutie op hun scherm te laten verschijnen, met minimaal kwaliteitsverlies.

Inmiddels hebben ook Intel en AMD hun eigen temporal upscalers aangekondigd: XeSS en FidelityFX Super Resolution 2.0. Beide varianten laten nog even op zich wachten, maar inmiddels hebben de twee gpu-makers al wel een technisch kijkje onder de motorkap van hun technieken geboden, tijdens de Game Developers Conference. Ons bood dat de mogelijkheid om te kijken hoe die technieken precies in elkaar steken. In dit artikel gaan we daarop in.

AMD Nvidia Intel (RGB)

Wat zijn upscaling en spatial vs. temporal?

Voordat we DLSS, XeSS en FSR 2.0 uiteenzetten, is het goed om even stil te staan bij wat upscaling precies inhoudt. We bespraken het al kort op de vorige pagina, maar simpel gezegd: bij upscaling wordt een game op een lagere resolutie gerenderd en vervolgens wordt die resolutie verhoogd. Doordat de game op een lagere resolutie draait, kan de framerate een stuk hoger liggen. En doordat de resolutie later wordt opgeschaald, moet het verlies in beeldkwaliteit relatief beperkt blijven.

Hogere framerates zijn nooit mis, maar zeker bij moderne games kan upscaling soms zelfs broodnodig zijn. Denk aan games met raytracing, een rendertechniek die berucht is om zijn gevolgen voor de prestaties. Ook bij gamen op hogere resoluties dan 4k kan upscaling goed van pas komen. Om een 4k-beeld te tonen, moeten immers vier keer zoveel pixels gerenderd worden als bij 1080p, wat dus ook meer rekenkracht vergt. Er zijn verschillende manieren om dat aan te pakken. De gangbaarste zijn spatial upscaling en temporal upscaling.

Te renderen pixels bij verschillende resoluties
Resolutie Totaal aantal pixels
4k (3840x2160p) 8,29 miljoen
Quad hd (2560x1440p) 3,69 miljoen
Full hd (1920x1080p) 2,07 miljoen
Hd-ready (1280x720p) 0,92 miljoen

Spatial upscaling: informatie uit een enkel frame

We beginnen met technieken voor spatial upscaling, zoals AMD's FSR 1.0 en de eerste versie van Nvidia DLSS. Bij dat soort technieken wordt puur gebruikgemaakt van informatie die beschikbaar is in een enkel frame. Ieder frame wordt dus behandeld als een soort losstaand plaatje, dat op een lage resolutie wordt gerenderd en vervolgens door de upscaler wordt voorzien van meer pixels, met een output op hogere resolutie als gevolg.

Spatial upscalers proberen daarbij ontbrekende details te schatten op basis van informatie uit nabijgelegen pixels en deze vervolgens in te vullen. Daar zijn verschillende technieken voor, bijvoorbeeld bicubic-, bilinear- en Lanczos-resampling. Die technieken hanteren allemaal een eigen manier om de kleur van nieuwe pixels te schatten en in te vullen op basis van informatie uit een frame.

Op deze manier opschalen heeft verschillende voordelen. Het is relatief makkelijk te implementeren en het vergt niet bijzonder veel rekenkracht om de extra pixels op deze manier te schatten. Spatial upscaling kan bovendien vaak een prima beeldkwaliteit opleveren. Doordat het alleen informatie uit een enkel frame tot zijn beschikking heeft, is de eindkwaliteit nog wel een stuk minder dan bij 'native' rendering op hoge resolutie.

AMD FidelityFX Super ResolutionAMD FidelityFX Super ResolutionAMD FidelityFX Super Resolution

AMD's eerste versie van FidelityFX Super Resolution is een voorbeeld van een spatial upscaler.

Het eindresultaat is dan ook vaak minder scherp, doordat de upscaler simpelweg minder informatie heeft om mee te werken. Spatial upscaling kan ook flikkeringen in beeld veroorzaken. Dat komt doordat de spatial upscaler van frame tot frame werkt en daarbij verschillende afwegingen kan maken. De upscaler kan bij een frame bijvoorbeeld besluiten dat een pixel wit moet zijn, maar bij het volgende frame diezelfde pixel zwart invullen.

Bij lage schaalfactoren, bijvoorbeeld van 1440p naar 4k, zijn deze problemen kleiner, aangezien de upscaler dan nog relatief veel informatie heeft om mee te werken. Bij hogere schaalfactoren, bijvoorbeeld 1080p naar 4k, is de kans op foutjes in de upscaling groter, doordat de upscaler minder data tot zijn beschikking heeft.

Temporal upscaling: meer samples voor betere beeldkwaliteit

Aan de andere kant heb je technieken voor temporal upscaling. Dit soort technieken gebruikt data uit de huidige frames, maar combineert die met gegevens uit frames die eerder zijn gerenderd. Daardoor is er meer informatie beschikbaar voor de upscaler, wat een betere beeldkwaliteit moet opleveren.

Daarbovenop wordt bij temporal upscaling meestal tegelijk antialiasing toegepast. Dat betekent dat de opschaalstap eerder in de pijplijn kan plaatsvinden, aangezien de inputbeelden aliased mogen zijn. Dat komt de beeldkwaliteit uiteindelijk ten goede, doordat bij antialiasing al wat detail verloren gaat. Spatial upscaling vindt meestal juist plaats na antialiasing. Door de extra informatie is het bovendien mogelijk om hogere schaalfactoren toe te passen met minder kwaliteitsverlies.

DLSS 2.0 Deliver Us to the Moon
DLSS 2.0 is een voorbeeld van een temporal upscaler.

Een nadeel van temporal upscaling is dat het moeilijker is om dit in games te implementeren. Het verwerken van de extra gegevens uit vorige frames vergt bovendien wat meer rekenkracht, dus deze technieken zullen ook wat minder prestatievoordelen bieden ten opzichte van spatial upscaling.

Temporal upscaling kan ook enkele problemen introduceren. Doordat ook voorgaande frames gebruikt worden, kan er ghosting ontstaan als het beeld beweegt. Bij het tonen van beweging is het dan alsof pixels worden uitgesmeerd. Ook kan er wat blurring ontstaan, evenals flikkering en andere grafische artefacten. Die zaken vergen extra aandacht bij het implementeren van temporal upscaling.

Bij temporal upscaling zijn er eveneens verschillende manieren om het toe te passen. Ook de temporal upscalers van AMD's FSR 2.0, Intels XeSS en Nvidia's DLSS verschillen onderling. In de volgende pagina's gaan we in op de technische werking van alle drie de technieken, beginnend met het inmiddels welbekende DLSS.

Amazon AWS Ghosting
Een extreem voorbeeld van ghosting, waarbij pixels uit voorgaande frames in beeld blijven terwijl die niet langer relevant zijn.
Bron: Amazon Web Services

Nvidia DLSS: Tensor-cores en deep learning op supercomputers

Nvidia bracht in april 2020 als eerste gpu-fabrikant een eigen temporal upscaler voor games uit voor zijn RTX-videokaarten, in de vorm van DLSS 2.0. Deze opschaaltechniek volgde de eerste versie van DLSS op, die nog een spatial upscaler was. Versie 2.0 kwam bij release beschikbaar voor een aantal games, waaronder Control en Wolfenstein: Youngblood. Twee jaar later is dat aantal behoorlijk uitgebreid; volgens Nvidia zit DLSS in meer dan 150 titels.

DLSS in de pijplijn

DLSS zit, net als veel andere temporal-upscalingtechnieken, relatief vroeg in een renderpipeline. Allereerst vinden de render- en rasterizationstappen plaats. DLSS wordt daarna geplaatst aan het begin van de postprocessingpipeline en vervangt daarmee de antialiasingstap, aangezien DLSS 2.0 upscaling en AA combineert.

De opschaaltechniek van Nvidia heeft verschillende inputs nodig voordat ze kan beginnen met opschalen. Allereerst is er natuurlijk een gerenderde afbeelding op lagere resolutie nodig, die uiteindelijk wordt opgeschaald naar een hogere resolutie. Dat gerenderde frame moet verder aliased en jittered zijn, waarover straks meer. DLSS heeft daarnaast motionvectoren, en informatie over de diepte en exposure van een frame nodig.

Nvidia DLSS-inputs

Inputs vanuit de engine: gejitterde pixels en motionvectoren

Zoals besproken wordt bij temporal upscaling gebruikgemaakt van informatie uit voorgaande frames. Die extra informatie moet een betere beeldkwaliteit mogelijk maken. Daarvoor moet ieder frame daadwerkelijk nieuwe informatie bevatten en dus iets verschillen van het voorgaande frame, ook als het beeld stilstaat. Om dat te bereiken, zet Nvidia een techniek in die 'pixeljitter' wordt genoemd.

Bij jittering verschuift de renderer héél subtiel de viewport (lees: wat je op je scherm ziet). Die verschuivingen zijn niet zichtbaar in het eindresultaat, maar zorgen er wel voor dat er verschillende samples van een enkele pixel verzameld kunnen worden, zelfs als het beeld 'statisch' is. Nvidia raadt daarvoor een Halton-patroon aan. Dat is een specifieke sequentie waarin de pixels waaruit het beeld is opgebouwd, worden verschoven en die volgens Nvidia erg geschikt is voor het vergaren van informatie over pixels.

Nvidia DLSS-jitter

Nvidia toonde tijdens de GDC 2021 een voorbeeld van jittering met een flamingo. In de onderstaande gif-afbeelding is te zien hoe de pixels in dit frame subtiel van plaats wisselen.In de praktijk worden de individuele pixels maximaal binnen 0,5 pixel van het midden verplaatst. Door dit te doen, verschuiven ook de randjes van de nek van de flamingo lichtelijk. Dat is extra informatie die door DLSS wordt ingezet om een scherp high-res eindresultaat met antialiasing te leveren op basis van een frame op lagere resolutie en zonder antialiasing.

Bij het renderen van het frame moet ook de mipmap-bias aangepast worden. Dit heeft tot gevolg dat de game individuele textures op een zo hoog mogelijke resolutie inlaadt. DLSS is namelijk alleen bedoeld voor het opschalen van een compleet frame, maar is niet geschikt om de kwalteit van individuele textures te verbeteren, of om low-res textures op te schalen naar textures op een hogere resolutie.

DLSS-jitter via Nvidia
Een ingezoomd voorbeeld van pixeljitter van frame tot frame. Klik voor een gif. Bron: Nvidia (GDC 2021)

De andere primaire inputs bestaan uit motionvectoren. Daarmee wordt beschreven hoe een pixel van frame tot frame over het scherm beweegt. De engine houdt daarmee bijvoorbeeld bij hoe objecten en geometrie over het scherm bewegen, maar ook hoe de viewport beweegt in verhouding tot de 3d-omgeving. Dat levert een vector op die terugwijst naar de vorige locatie van een pixel. De gegevens van die motionvectoren worden bijvoorbeeld gebruikt om de randen van bewegende objecten te corrigeren, om zo ghosting en andere artefacten te beperken.

DLSS Motion Vectors

Opschalen op basis van AI

Op basis van de bovenstaande stappen wordt het inputframe gerenderd op een lagere resolutie, zoals 1080p. Dit frame wordt gevoed aan DLSS en zijn neurale netwerk, de Convoluted Autoencoder genaamd. Dit onderdeel van de pijplijn neemt het daadwerkelijke opschalen op zich, bijvoorbeeld naar 4k.

Nvidia heeft zijn AI-netwerk zelf specifiek getraind op zijn DGX-supercomputers voor het opschalen van afbeeldingen. Tijdens dat trainingsproces wordt een afbeelding in 1080p zonder antialiasing gerenderd en gecombineerd met motionvectoren, zoals hierboven uitgelegd. Vervolgens probeert het neurale netwerk de afbeelding op te schalen naar 4k op basis van de samples en data die in eerdere frames zijn vergaard.

De resultaten daarvan worden vervolgens vergeleken met een vooraf gemaakte 16k-render van dezelfde afbeelding. Informatie uit deze vergelijking wordt daarna doorgevoerd naar het deeplearningalgoritme, waarna het proces zich herhaalt. Dit gebeurt volgens Nvidia miljoenen keren. Het idee daarachter is dat het AI-netwerk gaandeweg leert hoe een high-res afbeelding eruit hoort te zien. Op deze manier leert DLSS ook hoe het algoritme het best de beschikbare informatie en samples kan 'samenstellen' voor het opschalen naar hogere resoluties, en hoe ontbrekende details ingevuld moeten worden. Daarbij leert het deeplearningalgoritme ook hoe het moet omgaan met bewegingen op basis van de motionvectoren, en hoe het eventuele zaken als ghosting en artefacting moet herkennen en corrigeren.

Nvidia dlss 2.0
Het trainingsproces van Nvidia's neurale netwerk, de Convolutional Autoencoder, voor DLSS

Het uiteindelijke deeplearningnetwerk voor DLSS wordt via de GeForce Ready-drivers van Nvidia geleverd aan RTX-videokaarten, waarna deze kaarten het algoritme kunnen draaien op hun Tensor-cores. In de praktijk wordt een DLSS-game dus gerenderd op de CUDA-cores, met jittering en motionvectoren. Vervolgens worden de frames doorgevoerd naar de Tensor-cores, waar het DLSS-proces plaatsvindt. Daarna vindt postprocessing plaats, waarbij zaken als bloom, motionblur en de hud worden toegevoegd. Het eindresultaat van al die stappen wordt weergegeven op je scherm. Dat proces herhaalt zich bij ieder frame.

Voorheen moest Nvidia voor iedere DLSS-game een eigen neuraal netwerk trainen, maar sinds de introductie van DLSS 2.0 is dat niet langer het geval. In plaats daarvan traint Nvidia een generiek neuraal netwerk, dat in elke game gebruikt kan worden. Dit scheelt een hoop implementatietijd voor gameontwikkelaars, hoewel de implementatie van DLSS nog steeds werk vergt.

Kwaliteitsmodi en schaalfactoren

Eenmaal in-game kunnen gebruikers kiezen uit verschillende 'kwaliteitsmodi'. Onderling verschillen die modi in de scaling factor, oftewel de hoeveelheid upscaling die wordt toegepast. Concreet betekent een hoge schaalfactor dat er een lagere renderresolutie wordt gebruikt, zoals in de onderstaande tabel te zien is. Een hogere kwaliteit met een lagere schaalfactor betekent een betere beeldkwaliteit, maar minder prestatiewinst. Tegelijk leveren hoge schaalfactoren hogere prestatiewinsten op, ten koste van de beeldkwaliteit.

Bij release beschikte DLSS over drie opties: Quality, Balanced en Performance, met schaalfactoren tussen 1,50 en 2,00. Later kwam daar een Ultra Performance-modus bij, met een factor 3. In de praktijk gaf Nvidia aan dat die laatste modus vooral bedoeld is voor gaming op 8k; bij lagere resoluties ligt het aantal inputpixels nogal laag, wat niet ideaal is voor het opschalen.

DLSS-kwaliteitsmodi
Modus Schaalfactor Renderschaal Renderresolutie voor
opschalen naar 4k
Quality 1,50x 67% 2560x1440 pixels
Balanced 1,72x 58% 2233x1256 pixels
Performance 2,00x 50% 1920x1080 pixels
Ultra Performance 3,00x 33% 1280x720 pixels

Nvidia zelf claimt dat DLSS 2.0 prestatieverbeteringen van meer dan 70 procent kan opleveren, afhankelijk van de gekozen kwaliteitsmodus en de game. Het bedrijf zegt ook dat de beeldkwaliteit daarbij bijna niet te onderscheiden moet zijn van beelden die direct op hoge resolutie gerenderd worden of in sommige gevallen zelfs een betere beeldkwaliteit moeten bieden.

DLSS 2.0 is al enige tijd uit, en in onze ervaring is het inderdaad lastig om een verschil te zien tussen games die native zijn gerenderd en games die zijn opgeschaald met DLSS. Bovendien testen we de DLSS-prestaties van veel RTX-videokaarten op verschillende resoluties, zoals we dat in de afgelopen tijd bijvoorbeeld deden bij de RTX 3090 Ti, RTX 3070 Ti, RTX 3060 en RTX 3050. Ook daar zien we vaak grote framerateverbeteringen.

Voorbeeld: DLSS in Death Stranding

Compatibiliteit en integratie van games

Nu de werking van DLSS duidelijk is, kunnen we het hebben over hoe DLSS in de praktijk gebruikt wordt. DLSS maakt gebruik van Tensor-cores en gebruikers moeten daarom, zoals eerder vermeld, een RTX-videokaart hebben om het te kunnen inzetten. Concreet worden alle videokaarten uit de RTX 20-generatie of nieuwer ondersteund.

DLSS werkt verder alleen in games als ontwikkelaars ondersteuning daarvoor hebben toegevoegd. De techniek is closed source, maar ontwikkelaars kunnen met DLSS uit de voeten door middel van een gratis sdk, waarmee ze de techniek in hun engines en games kunnen verwerken. Daarnaast zijn er relatief kant-en-klare plug-ins voor populaire game-engines als Unreal Engine 4.26 en nieuwer, en Unity 2021.2b en nieuwer. Daarmee is het integreren van DLSS een stuk makkelijker geworden voor kleinere ontwikkelaars.

DLSS is al enige tijd beschikbaar en daarmee is het niet verrassend dat de functie volgens Nvidia al in ruim 150 games zit. Daaronder vallen bijvoorbeeld Call of Duty: Warzone, Doom Eternal, Battlefield 2042, Red Dead Redemption 2, Cyberpunk 2077 en Escape From Tarkov, maar ook meer kleine indietitels als Mortal Online 2, Frozenheim en Pumpkin Jack.

DLSS-games
Een aantal titels met DLSS

Intel XeSS: upscaling met AI en toch crossplatform

Vorig jaar maakte ook Intel bekend dat het bezig was met een eigen techniek voor temporal upscaling, in de vorm van Xe Super Sampling. XeSS zou geïntroduceerd worden voor Intels eerste volwaardige losse videokaarten in jaren, de Arc-serie. Anders dan Nvidia, maakt Intel zijn opschaaltechniek echter open source en crossplatform, waarmee XeSS ook op kaarten van team rood en team groen moet werken.

XeSS in de pijplijn en inputs van de engine

Los daarvan toont XeSS in de praktijk veel gelijkenissen met DLSS. Het zijn beide technieken voor temporal upscaling die gebruikmaken van AI. De inputs en locatie in de pipeline zijn ook vergelijkbaar. XeSS vervangt de antialiasingstap in de renderpipeline, en komt daarmee aan het begin van de postprocessingstap en na de rasterization en shading.

Voordat XeSS echter kan opschalen, heeft het verschillende inputs van de engine nodig. Zo rendert de engine eerst een frame op lagere resolutie en zonder antialiasing. Ook hierbij wordt de viewport gejitterd, zoals uitgelegd bij DLSS. Intel geeft daarbij de voorkeur aan een sequentielengte van 32, waarbij de viewport opnieuw wordt verschoven in een Halton-sequentie. Ook moeten ontwikkelaars de mipmapbias aanpassen voor XeSS, zodat de textures wél op hoge resolutie worden ingevoegd in het frame.

Uiteraard heeft XeSS als temporal-upscalingtechniek ook motionvectoren nodig, die het bedrijf 'velocity' noemt, om na te gaan hoe objecten tussen verschillende frames zijn bewogen. Die motionvectoren moeten vervolgens dilated worden. Dat betekent dat alleen de motionvectoren die het dichtst bij de viewport zitten, worden meegenomen in bepaalde delen van het frame. Intel zegt dat dat helpt tegen ghosting en blur.

Om dat te regelen, kunnen ontwikkelaars het frame opdelen in blokjes, bijvoorbeeld van 3x3 pixels. In al die blokjes kan vervolgens bekeken worden welke motionvector het dichtst bij de viewport zit, op basis van dieptebuffers die ook door de engine worden aangeleverd als input.

Intel XeSS in de pipeline
Intel XeSS in de pipelineIntel XeSS in de pipelineIntel XeSS in de pipeline

XeSS-upscaling: crossplatform met deep learning

Al deze data wordt verzameld in XeSS, dat de upscaling op zich neemt. Net als bij DLSS gebruikt Intel daarvoor een eigen deeplearningalgoritme. Intel geeft vooralsnog echter geen details over het neurale netwerk, behalve dat het algoritme 'getraind is om hoge prestaties en uitzonderlijke kwaliteit te leveren'.

Intel zegt wel dat het algoritme onder meer wordt ingezet voor de opschaalstap zelf, net als de Convolutional Autoencoder van DLSS. XeSS gebruikt daarvoor de eerdergenoemde gejitterde pixels, samen met informatie uit voorgaande frames, die zijn gecorrigeerd door middel van de motionvectoren. XeSS is ook getraind om artefacting, ghosting en blurring te herkennen en te corrigeren. Volgens Intel is deep learning daarvoor bij uitstek geschikt. Verdere technische details zijn op het moment niet bekend.

Intel XeSS deeplearningIntel XeSS deeplearning

Kwaliteitsmodi en schaalfactoren

Bij dit alles kunnen gebruikers op termijn kiezen uit vijf kwaliteitsopties, die net als bij DLSS onderling verschillen wat schaalfactor en renderresolutie betreft. De opties lopen uiteen tussen een Ultra Quality-modus, met een schaalfactor van 1,3x, tot een Ultra Performance-optie, waarbij de renderresolutie met 2,3x wordt opgeschaald. Uiteraard levert een hogere schaalfactor ook hier weer betere prestaties, ten koste van een minder scherp eindresultaat. In de onderstaande tabel worden de verschillende opties uiteengezet, inclusief omgerekende renderresoluties voor iedere optie, uitgaande van een output op 4k.

XeSS-kwaliteitsmodi
Modus Schaalfactor Renderschaal Renderresolutie voor
upscaling naar 4k
Ultra Quality 1,30x 77% 2954x1662 pixels
Quality 1,50x 67% 2560x1440 pixels
Balanced 1,70x 59% 2259x1270 pixels
Performance 2,00x 50% 1920x1080 pixels
Ultra Performance 2,30x 44% 1670x940 pixels

Intel deelt voor al die opties prestatieclaims in de vorm van de Rens Outpost-techdemo. Bij upscaling naar 4k met raytracing zegt het bedrijf dat de Ultra Performance-modus framerates kan leveren die tot 153 procent hoger liggen dan bij native 4k. Bij de Performance-modus ligt die prestatiewinst op 120 procent, bij Balanced op 80, bij Quality op 53 en bij Ultra Quality op 27 procent. Bij upscaling naar 1440p liggen die cijfers wat lager, tussen de 97 en 21 procent.

Volgens Intel levert XeSS deze prestatieverbeteringen met een hoge beeldkwaliteit, waarbij het bedrijf ook enkele vergelijkingsbeelden toont. De gebruikte techdemo om de prestaties aan te tonen, is overigens specifiek gemaakt met XeSS in het achterhoofd en aangezien XeSS nog niet is uitgebracht, kunnen we de techniek zelf nog niet testen. We moeten dus nog zien of Intel deze claims in de praktijk kan waarmaken.

Intel XeSS-prestaties

Compatibiliteit en integratie in games

Anders dan DLSS is XeSS crossplatform, ondanks het gebruik van deep learning. Dat bekent dat de techniek ook moet werken op videokaarten van andere bedrijven. Over de compatibiliteit bestaat echter wat onduidelijkheid. Eerder werd gesuggereerd dat XeSS ondersteuning nodig heeft voor zogeheten DP4A-instructies. Die instructieset is bedoeld voor het uitvoeren van bepaald int8-rekenwerk en is geschikt voor zaken die geen bijzonder hoge precisie vereisen, zoals deep learning.

Op de XeSS-webpagina staat echter dat ondersteuning voor Microsofts HLSL Shader Model 6.4 de voornaamste eis is voor XeSS. DP4A werd weliswaar geïntroduceerd in Shader Model 6.4, maar niet alle videokaarten met SM 6.4-ondersteuning kunnen daadwerkelijk overweg met DP4A.

Intel bevestigt tegenover Tweakers dat DP4A-ondersteuning in de hardware 'de voorkeur heeft', maar niet verplicht is. Shader Model 6.4 of hoger is wel vereist. "Op basis van de hardwaremogelijkheden zal de compiler van elke videokaartmaker de uitvoering van XeSS plannen, hetzij als native DP4a, hetzij als een set simpelere instructies."

In de praktijk betekent dit dat meer videokaarten dan verwacht wellicht ondersteuning bieden voor XeSS, hoewel Intel nog geen concrete details daarover deelt. Zo wordt DP4A op het gebied van AMD alleen ondersteund door de RDNA2-architectuur uit de RX 6000-serie, maar alle AMD-gpu's sinds Polaris ondersteunen SM 6.4. In theorie ondersteunen RX 400-, RX 500- en RX 5000-kaarten dus ook XeSS, hoewel dat niet officieel wordt bevestigd. Nvidia levert Shader Model 6.4 sinds zijn GTX 900-serie, waarbij de GTX 10-serie en nieuwer ook DP4A-ondersteuning bieden.

Intel zelf biedt XeSS-ondersteuning voor zijn geïntegreerde UHD Graphics-gpu's uit zijn elfde en twaalfde cpu-generaties, bestaande uit Rocket Lake, Tiger Lake en Alder Lake. Ook Intel Iris Xe-videokaarten ondersteunen de techniek. Datzelfde geldt voor Intels komende Arc-gpu's, die bij XeSS zelfs een prestatievoordeel moeten bieden ten opzichte van gpu's van andere fabrikanten. Dat komt doordat XeSS ook gebruik kan maken van de XMX-cores in onder meer de nieuwe Arc Alchemist-videokaarten. Die cores zijn bedoeld voor AI-rekenwerk en zijn in dat opzicht vergelijkbaar met de Tensor-kernen van Nvidia. Intel geeft nog niet duidelijk aan hoeveel beter XeSS presteert in combinatie met XMX-cores, los van de onderstaande slide, waarin rendertijd wordt vergeleken.

Intel XeSS - XMX vs. DP4a

In feite zijn er dus twee versies van XeSS, afhankelijk van de hardware die wordt gebruikt. Overigens is er slechts één api voor ontwikkelaars. XeSS kan zelf de hardware herkennen en op die manier de juiste versie inzetten, zonder extra stappen van de gameontwikkelaar. XeSS werkt daarbij op basis van DirectX 12 en vereist HLSL Shader Model 6.4 of nieuwer, naast dus DP4A- of XMX-ondersteuning. De opschaaltechniek wordt open source en komt op termijn beschikbaar via een sdk. Deze is nog niet breed beschikbaar, hoewel geïnteresseerde ontwikkelaars zich al wel kunnen inschrijven voor vroege toegang tot XeSS.

Voor ontwikkelaars werkt Intel verder aan een XeSS-plug-in voor Unreal Engine, die compatibel moet zijn met versie 4,26 of nieuwer. Via die plug-in moet het relatief simpel zijn om XeSS-ondersteuning toe te voegen aan Unreal Engine-games. Over ondersteuning voor andere engines, zoals Unity, wordt nog niet gerept. Bovendien lijkt XeSS vooralsnog niet beschikbaar te komen voor de Vulkan-api, aangezien Intel specifiek zegt dat de opschaaltechniek is gebaseerd op DirectX 12.

XeSS komt deze zomer officieel beschikbaar. Intel zegt dat de techniek beschikbaar komt in verschillende populaire games, waaronder Death Stranding, Ghostwire Tokyo, Grid Legends, Hitman III en Shadow of the Tomb Raider. Een officiële releasedatum is nog niet bekend.

XeSS-games
XeSS komt deze zomer beschikbaar in de bovenstaande games.

AMD FSR 2.0: temporal upscaling zonder deep learning

Ook AMD gaf aan met een nieuwe temporal upscaler te komen, als laatste van de drie grote gpu-makers. Het betreft een nieuwe versie van bestaande AMD's FidelityFX Super Resolution-techniek, momenteel nog een spatial upscaler die vorig jaar al uitkwam. FSR 2.0 mag dan zijn naam delen met de eerste versie van FSR, de werking is anders.

FSR 2.0 is namelijk temporal. In dit opzicht toont het veel gelijkenissen met DLSS en XeSS. De onderscheidende feature van AMD is dat geen gebruik wordt gemaakt van deep learning of AI-hardware, zoals dat bij de varianten van Nvidia en Intel wel het geval is. Dat moet de compatibiliteit vergroten en heeft volgens AMD verschillende andere voordelen, zoals meer flexibiliteit bij het implementeren en optimaliseren van FSR 2.0. Een handgemaakt algoritme kan immers makkelijker aangepast worden dan een neuraal netwerk, dat wordt getraind en daarna als het ware kant-en-klaar wordt geleverd aan ontwikkelaars.

Tegelijk betekent dit dat AMD andere stappen moet zetten om zaken als ghosting en artefacting te voorkomen. Onlangs gaf het bedrijf details over de techniek achter FSR 2.0, tijdens de Game Developers Conference in San Fransisco.

FSR 2.0 in de renderpipeline

Aangezien FSR 2.0 veel van dezelfde inputs vergt als DLSS en XeSS, gaan we niet al te diep in op de exacte locatie in de renderpipeline. Net als DLSS en XeSS vervangt FSR 2.0 de TAA-stap in de renderpipeline, waarmee de opschaaltechniek opnieuw helemaal vooraan in de postprocessingketen wordt geplaatst.

FSR 2.0 vereist opnieuw gejitterde inputframes met motionvectoren, dieptebuffers en data over kleuren. Al die informatie wordt aan FSR 2.0 gevoed, waarna de techniek een opgeschaald frame 'uitspuugt'. Dat wordt vervolgens door de rest van de postprocessingpipeline geloodst en uiteindelijk op een hogere resolutie getoond op het scherm van de gebruiker.

AMD FSR 2.0-buffers

Upscaling met FSR 2.0: Geen AI, maar Lanczos

Hier eindigen overigens de gelijkenissen met DLSS en XeSS. Zoals gezegd gebruikt AMD geen AI of machinelearning voor het daadwerkelijk opschalen. Volgens het bedrijf komt dat onder meer de compatibiliteit ten goede. Ook zou deze aanpak beter te optimaliseren zijn, doordat ontwikkelaars meer controle hebben over de inzet van dat handgemaakte algoritme. AMD gaf daarover meer details in zijn GDC-presentatie.

Net als FSR 1.0, borduurt de opschaalstap van FSR 2.0 voort op een aangepaste versie van het gangbare Lanczos-interpolatiefilter. Met Lanczos worden de targetpixels voor de uiteindelijke resolutie berekend door middel van de samples die met jittering zijn verzameld, waarbij uiteraard ook de motionvectoren worden meegenomen in het geval van bewegende beelden.

AMD geeft daarbij de onderstaande afbeelding als voorbeeld, waarbij een pixel omgezet moet worden in vier targetpixels voor het opschalen van 1080p naar 4k. In deze afbeelding vormen de negen grijze blokken de low-res pixels, waarmee het frame op 1080p is gerenderd. De vier kleine stippen in iedere pixel zijn de middelpunten van de targetpixels, die met de opschaalstap berekend moeten worden voor een eindresultaat op 4k. De blauwe stippen zijn de samples die met jittering zijn verzameld uit huidige en voorgaande frames. In het voorbeeld toont AMD één sample per pixel voor de leesbaarheid, maar in de praktijk ligt dat aantal hoger.

Via Lanczos wordt de weight van iedere sample berekend en vervolgens geclampt. Dat betekent in de praktijk dat informatie uit samples die dichter bij het middelpunt van de targetpixel zitten, zwaarder wordt meegeteld tijdens de opschaalstap. Samples die verder weg zitten, zijn minder belangrijk. Dat moet scherpere beelden opleveren en ringing-artefacten voorkomen.

Simpel gezegd: rekening houdend met dat berekende gewicht en de bewegingsdata uit dilated motionvectoren, wordt het gemiddelde van deze samples genomen om de targetpixels zo waarheidsgetrouw mogelijk in te kleuren, met een opgeschaald frame als resultaat.

Lanczos-upscaling AMD FSR 2.0
Lanczos-upscaling AMD FSR 2.0Lanczos-upscaling AMD FSR 2.0Lanczos-upscaling AMD FSR 2.0

Lanczos-upscaling en motionvectoren in FSR 2.0 Bron: AMD

Ghosting oplossen zonder deep learning

FSR 2.0 gaat echter verder dan dat. Waar Nvidia en Intel AI inzetten voor het opschalen van een frame, waarbij ook zaken als artefactvorming worden gecorrigeerd, doet AMD dat dus niet. Het bedrijf zet daarom andere trucjes in om temporal artifacts te voorkomen.

Een voorbeeld betreft ghosting, waarbij een deel van een voorgaand frame in beeld blijft, waardoor het lijkt alsof een object is uitgesmeerd. Er zijn verschillende situaties waarin dat kan optreden. De eerste is bij disocclusions, waarbij een verborgen object opeens zichtbaar wordt. In een game kan dat bijvoorbeeld voorkomen als een verstopte vijand achter een muur vandaan komt of juist als een personage beweegt en de omgeving achter dat personage zichtbaar wordt.

AMD FSR 2.0-ghosting
Een voorbeeld van temporal ghosting. Bron: AMD

In die gevallen wordt een disocclusion mask gecreëerd. Daarbij komen de eerdergenoemde dieptebuffers kijken. Hiermee vergelijkt AMD de diepte van een frame met de diepte van het vorige frame. Op die manier kunnen verschillen in de omgeving aangetoond worden. Het bedrijf toont hiervoor een voorbeeld van een bewegende robot op een simpele achtergrond, waarbij het verschil in diepte tussen twee frames wordt getoond op een rode afbeelding. Het zwarte gedeelte is het gebied dat in het vorige frame verborgen was, maar nu zichtbaar is geworden doordat de drone is bewogen.

Die informatie kan gebruikt worden om disocclusions te detecteren. Op plekken waar disocclusions zitten, wordt vrijwel alle informatie uit voorgaande frames geschrapt, wat temporal ghosting moet voorkomen. Ook wordt het huidige frame op die plekken licht vervaagd, wat de beeldkwaliteit dan weer ten goede moet komen bij gebrek aan de extra samples uit vorige frames.

AMD FSR 2.0-ghosting
Een disocclusionmask, waarmee het verschil in diepte tussen twee frames wordt getoond. Bron: AMD

Ghosting kan ook veroorzaakt worden door shading changes. Denk daarbij aan situaties waarin de verlichting wordt aangepast. Dit kan ook voorkomen bij geanimeerde textures. Het moeilijke daaraan is dat dit soort veranderingen niet verholpen kan worden met motionvectoren of dieptebuffers, doordat ze niet direct onderhevig zijn aan bewegingen. In dit geval is kleurinformatie uit voorgaande frames nog steeds waardevol, vertelt AMD. Deze kleuren moeten echter worden aangepast om te passen binnen het nieuwe frame. FSR 2.0 berekent daarvoor een geldigheidsbereik, waarbinnen de kleuren uit voorgaande frames beperkt moeten worden.

FSR 2.0-slide
Correctie van ghosting die wordt veroorzaakt door veranderingen in de shading. Bron: AMD

Flikkering door thin features

Verder kunnen thin features leiden tot problemen als flikkering. Zeer dunne objecten, die in het frame slechts een paar pixels breed zijn, hoeven op zichzelf geen probleem te zijn, maar bij temporal upscaling leveren ze toch problemen op. Aangezien de pixels worden verschoven bij jittering, is het mogelijk dat thin features in bepaalde frames niet in beeld zijn. Daardoor kunnen ze tijdelijk in en uit het frame verschijnen en verdwijnen, wat leidt tot een onstabiel beeld.

Om hiermee om te gaan, heeft AMD een vergrendelingsmechanisme ingevoerd. Daarmee worden pixels als ribbels gedetecteerd en worden ze vastgezet. In dat gedeelte van het frame worden pixels als spatial behandeld. In de praktijk worden gegevens uit voorgaande frames in die gedeelten van het frame dus genegeerd, waardoor ze niet uit beeld verdwijnen.

Uiteraard kunnen deze features niet continu worden vastgezet; dat zou andere visuele problemen opleveren. De locks worden in ieder geval vrijgegeven na het voltooien van een jittersequentie. Dergelijke sequenties moeten daarom zo kort mogelijk zijn, terwijl er nog wel voldoende jittersamples zijn om opgeschaalde beelden van hoge kwaliteit af te leveren. Als de thin feature na de jittersequentie nog steeds in beeld is, wordt de lock hernieuwd. Locks worden verder meebewogen met de viewport en worden stopgezet als de thin features uit beeld verdwijnen.

AMD erkent daarbij dat het vermoedelijk niet snel genoeg is om locks stop te zetten na het verloop van een jittersequentie. Ook dat kan ghosting opleveren. Om dit te voorkomen, worden opnieuw disocclusions en veranderingen in de shading gevolgd. Locks worden automatisch stopgezet als een disocclusion plaatsvindt, die wordt gedetecteerd met de eerdergenoemde disocclusion masks. Een algoritme dat shading changes opmerkt, kan ook locks opheffen die niet langer relevant zijn in de context van een nieuw frame.

AMD FSR 2.0 Thin Features
Vastgezette thin features. Bron: AMD

Kwaliteitsmodi en schaalfactoren

AMD voorziet FSR 2.0 van vier verschillende prestatiemodi, hoewel een daarvan optioneel is. Standaard beschikt iedere FSR 2.0-game over een Quality-, Balanced- en Performance-modus met schaalfactoren tussen de 1,5 en 2,0. De Ultra Quality-modus uit FSR 1.0 verdwijnt, hoewel daar een optionele Ultra Performance-optie met 3x-scaling voor terugkomt. Ontwikkelaars kunnen die feature echter uitzetten als ze dat willen.

AMD claimt dat de Quality-modus een 'vergelijkbare of betere' beeldkwaliteit oplevert in vergelijking met native rendering op de outputresolutie en zegt dat gamers daarbij een 'significante prestatiewinst' kunnen verwachten. De Balanced-modus biedt volgens het bedrijf een compromis tussen beeldkwaliteit en de verwachte prestatiewinst, terwijl de beeldkwaliteit bij de Performance-optie 'vergelijkbaar' moet zijn met native met een grote prestatiewinst. De optionele Ultra Performance-modus is bedoeld om 'de ultieme prestatiewinst te bieden met behoud van een beeldkwaliteit die representatief is voor native rendering'.

Wat concrete prestaties betreft deelt AMD momenteel alleen nog een vergelijking tussen de Performance-modus en native 4k in de game Deathloop. Het getoonde voorbeeld claimt een prestatieverbetering van 53 naar 101fps, wat neerkomt op ongeveer 90 procent. Meer details worden vooralsnog niet gedeeld, hoewel de fabrikant ook vergelijkingen tussen de beeldkwaliteit in de Quality-, Balanced- en Performance-modi toont. Net als XeSS, is FSR 2.0 echter nog niet uit. Het moet dus nog blijken of deze claims in de praktijk kloppen.

AMD FSR 2.0-kwaliteitsmodi
Modus Schaalactor Renderschaal Renderresolutie voor
upscaling naar 4k
Quality 1,5x 67% 2560x1440 pixels
Balanced 1,7x 59% 2259x1270 pixels
Performance 2,0x 50% 1920x1080 pixels
Ultra Performance
(optioneel)
3,0x 33% 1280x720 pixels

FSR 2.0

Compatibiliteit, beschikbaarheid en integratie in games

Net als XeSS, is FSR 2.0 open source en crossplatform. Daarmee zal de techniek ook werken op videokaarten van andere fabrikanten. AMD geeft wel aan dat FSR 2.0 meer rekenkracht vergt dan de eerste versie van FidelityFX Super Resolution, vanwege de complexere berekeningen die komen kijken bij temporal upscaling en het algoritme dat AMD daarvoor hanteert.

Volgens het bedrijf is de techniek onder meer geschikt voor zijn Radeon RX 590 met Polaris-gpu, naast veel RDNA- en RDNA2-kaarten. Voor Nvidia is FSR 2.0 geschikt voor bepaalde kaarten met Pascal-gpu, naast de Turing- en Ampere-generaties. Of en hoe de komende Arc-videokaarten van Intel ondersteund zullen worden, is nog niet bekend, hoewel het aannemelijk is dat deze wel overweg kunnen met FSR 2.0.

'Uitgangsniveau' hardware voor AMD FidelityFX Super Resolution 2.0
Targetresolutie AMD Nvidia
3840x2160 pixels Radeon RX 6700 XT​
Radeon RX 5700​
(En hoger)
GeForce RTX 3070​
GeForce RTX 2070​
(En hoger)
2560x1440 pixels Radeon RX 6600​
Radeon RX 5600​
Radeon RX Vega-serie
(En hoger)
GeForce RTX 3060​
GeForce RTX 2060 ​
GeForce GTX 1080
(En hoger)
1920x1080 pixels Radeon RX 6500 XT​
Radeon RX 590​
(En hoger)
GeForce GTX 16-serie
GeForce GTX 1070​
(En hoger)

Ontwikkelaars moeten ondersteuning voor FSR 2.0 handmatig toevoegen aan hun games, net als bij DLSS, XeSS en FSR 1.0. De integratietijd daarvoor verschilt volgens AMD per scenario. Bij games die al DLSS 2 ondersteunen, moet het 'minder dan drie dagen' duren om FSR 2.0-ondersteuning toe te voegen. Ook integratie in Unreal Engine 4- en 5-games moet relatief snel gaan via een FSR 2.0-plug-in. Bij games die geen ondersteuning hebben voor decoupled game- en renderresoluties of motionvectoren, duurt integratie vier weken of langer, verwacht AMD.

AMD FSR 2.0-integratietijd

AMD brengt FSR 2.0 in dit kwartaal uit als een api, waarmee ontwikkelaars aan de slag kunnen met de techniek. De broncodes worden dan ook via GitHub vrijgegeven. FSR 2.0 krijgt ondersteuning voor DirectX 12 en Vulkan. AMD spreekt ook over een Unreal Engine-plug-in voor versie 4.26 of nieuwer, net als DLSS en XeSS. Over een Unity-plug-in wordt momenteel nog niet gesproken, maar FSR 1.0 is al wel beschikbaar voor die engine. Ontwikkelaars kunnen FSR 2.0 in de toekomst ook implementeren in Xbox-games. Daarvoor is al een devkit beschikbaar, maar het is niet bekend wanneer de eerste FSR 2.0-games voor de Xbox daadwerkelijk uitkomen.

Vooralsnog is bekend dat de tweede versie van FSR beschikbaar komt in twee games; dit kwartaal krijgt Deathloop van Arkane Studios ondersteuning voor FSR 2.0. Forspoken van Luminous Productions zal bij release in oktober de opschaaltechniek ook ondersteunen. AMD zegt later dit kwartaal met meer informatie te komen.

Tot slot: welke hardware heb je nou precies nodig?

Al met al hebben we straks van iedere gpu-fabrikant een volwaardige temporal upscaler en daarmee ook meer opties om framerates in games op te hogen. Tegelijk zijn er straks dus drie verschillende standaarden, ieder met verschillende hardware-eisen en andere ondersteunde games. Dat kan verwarrend zijn. Daarom geven we hieronder een overzicht van de vereiste hardware voor AMD-, Intel- en Nvidia-gebruikers.

Nvidia

Eigenaren van een recente Nvidia-gpu zitten voorlopig goed. AMD heeft al bevestigd dat veel GTX 10- en 16-videokaarten, en kaarten uit de RTX 20- en 30-serie ondersteuning bieden voor FSR 2.0. Over kaarten uit oudere generaties wordt nog niet gesproken.

Diezelfde kaarten ondersteunen bovendien DP4A, waarmee ze naar alle waarschijnlijkheid ook overweg kunnen met Intels XeSS-techniek. De GTX 900-serie van het bedrijf ondersteunt Shader Model 6.4 en werkt dus wellicht ook met XeSS. DLSS is een feature die nog altijd exclusief beschikbaar is voor GeForce RTX 20- en 30-videokaarten.

In de praktijk betekent dit dat de Nvidia RTX-videokaarten vermoedelijk alle drie de grote standaarden voor temporal upscaling zullen ondersteunen. Bij GTX 10- en GTX 16-kaarten ontbreekt ondersteuning voor DLSS, maar die kunnen vermoedelijk wel uit de voeten met FSR 2.0 en XeSS.

Temporal-upscalingondersteuning voor Nvidia-kaarten
Videokaart AMD FSR 2.0 Intel XeSS Nvidia DLSS 2.0
GTX 900-serie Nnb Ja (SM 6.4)* Nee
GTX 10-serie Ja (GTX 1070+ aanbevolen) Ja (DP4A)* Nee
GTX 16-serie Ja Ja (DP4A)* Nee
RTX 20-serie Ja Ja (DP4A)* Ja
RTX 30-serie Ja Ja (DP4A)* Ja

*Alle Nvidia-generaties vanaf Pascal (GTX 10) ondersteunen DP4A, hoewel Intel ondersteuning voor
individuele kaarten nog niet heeft bevestigd. Het bedrijf zegt wel dat DP4A de voornaamste eis is.

AMD

Bij AMD ligt dat al anders. AMD's Polaris-videokaarten uit 2017 moeten ondersteuning bieden voor FSR 2.0, waarbij de RX 590 wordt aanbevolen. Of de RX 400-serie wordt ondersteund, is niet bekend. Ook de Radeon RX Vega 56 en 64 moeten die techniek ondersteunen, evenals veel RX 5000- en RX 6000-videokaarten. AMD zegt overigens dat dit 'optimale starthardware' is. Daarbij zijn deze kaarten 'aanbevelingen voor een optimale spelervaring'.

AMD's videokaarten worden sinds de Polaris-architectuur uit 2017 geleverd met Shader Model 6.4. Dat suggereert dat kaarten vanaf de RX 400-serie overweg kunnen met Intels XeSS-techniek. AMD heeft dat echter nog niet bevestigd. RDNA2 biedt daarnaast ondersteuning voor DP4A-instructies, bevestigde AMD eerder aan PCGamer. Het is dan ook vrijwel zeker dat de RX 6000-serie van het bedrijf XeSS ondersteunt. DLSS wordt vanzelfsprekend niet ondersteund, omdat die techniek exclusief voor Nvidia-kaarten is.

Temporal-upscalingondersteuning voor AMD-kaarten
Videokaart AMD FSR 2.0 Intel XeSS Nvidia DLSS 2.0
RX 400-serie Nee? Ja? (SM 6.4) Nee
RX 500-serie Ja (RX 590+ aanbevolen) Ja? (SM 6.4) Nee
RX Vega-serie Ja Ja? (SM 6.4) Nee
RX 5000-serie Ja Ja? (SM 6.4) Nee
RX 6000-serie Ja (RX 6500 XT+ aanbevolen) Ja (DP4A) Nee

Intel

Intels gpu-line-up bestaat vooralsnog vooral uit geïntegreerde videokaarten in processors. Eén ding is zeker: XeSS zal werken op Intel Graphics. Intel bevestigt tegenover Tweakers dat dit gaat om de geïntegreerde UHD Graphics-gpu's die in de elfde en twaalfde cpu-generaties van het bedrijf zitten. Die generaties bestaan uit Tiger Lake, Rocket Lake en Alder Lake.

Binnenkort komt Intel bovendien met zijn eerste volwaardige losse videokaarten, in de vorm van Arc Alchemist. Die zullen zeker ondersteuning bieden voor XeSS, met prestatievoordelen door de introductie van XMX-cores voor AI-berekeningen.

Gelet op de prestatie-eisen is het aannemelijk dat in ieder geval een deel van de Arc Alchemist-line-up ook ondersteuning zal bieden voor FSR 2.0 van AMD. In hoeverre geïntegreerde Intel-gpu's ondersteuning bieden voor FSR 2.0, is momenteel nog niet bekend. Tweakers heeft hierover nog vragen uitstaan bij AMD. Verder geldt ook bij Intel logischerwijs dat DLSS niet werkt.

Temporal-upscalingondersteuning voor Intel-kaarten
Videokaart AMD FSR 2.0 Intel XeSS Nvidia DLSS 2.0
Intel UHD Graphics Nnb Ja (11e en 12e generatie) Nee
Iris Xe Graphics Nnb Ja Nee
Arc Alchemist Ja? Ja Nee

Lees meer

Reacties (28)

28
28
26
1
0
1
Wijzig sortering
Misschien een idee geweest om taau mee te nemen, deze scaler wordt niet over gesproken maar wordt al een tijd gebruikt.
AuteurAverageNL Nieuwsredacteur @qlum16 april 2022 11:10
Ik snap volledig wat je bedoelt!

De insteek voor dit artikel was het uiteenzetten van de temporal upscalers van de drie grote videokaartmakers. Vorige maand was ik (digitaal) bij de Game Developers Conference. AMD, Intel en Nvidia hielden toen allemaal een talk over over hun upscalingtechnieken. Tijdens die beurs ontstond het idee om specifiek deze drie naast elkaar te zetten

Ik vond 't zelf uitermate interessant dat we straks van alle drie de 'gpu-boeren' zo'n techniek hebben (en we straks dus ook drie concurrerende standaarden hebben, allemaal met andere hardware-eisen). Het leek me interessant om daar eens in te duiken. Vandaar dat ik het artikel heb beperkt tot DLSS, XeSS en FSR 2.0

Hoewel veel principes uit dit artikel ook zullen gelden voor temporal upscalers als TAAU, denk ik dat ik een verkeerde inschatting heb gemaakt in de titel van dit verhaal. De vorige 'onderkop' was 'Hoe werkt temporal upscaling voor games?'. Ik kan me goed voorstellen dat dat verkeerde verwachtingen opriep. Excuses daarvoor! Ik heb de titel daarom gewijzigd naar 'Hoe werken Nvidia DLSS, Intel XeSS en AMD FSR 2.0?'. Ik denk dat dit beter past bij de insteek van dit artikel :)

Cc: @PjotrX
Dit miste ik ook. Zeker omdat TAAU een opvolger is van Epic's TAA (die deed alleen temporal anti-aliasing en nog geen upscaling). Deze techniek bestond al in de eerste versie van Unreal Engine 4 en liet toen zien wat temporal anti-aliasing mogelijk was, niet alleen werd anti-aliasing op geometry toegepast maar ook op aliasing dat ontstond door gebruik van complexere shaders. De upscaling is gewoon een logisch vervolg ervan.

Ook mis ik de checkerboard rendering van ps4 pro. Dat is ook een van de eerste temporal upscalers.
Even een vraag die misschien dom klinkt.
Heeft FSR, XeSS en DLSS enig nut als je op 1080p gamed?
Zo ja, welke kwaliteit kan je dan het beste selecteren voor een hogere framerate met behoud van kwaliteit?
Jazeker. DLSS kan prima omgaan met beelden onder de 1080p en voegt ook goede anti-aliasing toe. FSR zou ik (als dat kan) op 1080p laten, dan word het beeld iets scherper. Je krijgt dan geen prestatieverbetering. XeSS heb ik nog niet in handen gehad.

[Reactie gewijzigd door Wolfos op 23 juli 2024 13:01]

Niet een direct antwoord op je vraag, maar mogelIjk wel relevant. De Steam Deck heeft ook ondersteuning voor FSR en kan daarmee games op nog lagere resolutie renderen en dan upscalen. De uiteindelijke resolutie blijft beperkt (1280x800), maar het geeft wel een verbetering in framerate.
Ik heb zelf een negatieve ervaring met DLSS op 1080P. Afhankelijk van de game komt er veel blur bij kijken waardoor native 1080 er een stuk beter uit ziet na mijn mening.
Bij FSR wordt Xbox genoemd, maar heeft de Playstation 5 ook een dergelijk equivalent aan boord?
Nog niet.
Maar gezien de vergelijkbare APU's zou dat wel toegevoegd kunnen worden.
AuteurAverageNL Nieuwsredacteur @yinx8416 april 2022 09:33
De PS5 is gebaseerd op dezelfde architectuur als de Xbox Series X/S, dus in theorie zou FSR 2.0 ook gewoon moeten werken. AMD zegt daar alleen (nog?) niets over, dus wie weet. AMD heeft mijn eerdere vragen over FSR 2.0 nog niet beantwoord, maar ik zal na het paasweekend nog eens een follow-up doen, en dan meteen naar de PS5 vragen :)
Cool, ben benieuwd!
Naar aanleiding van dit artikel in No Mans Sky de FSR 1.0 ingeschakeld en dit levert toch weer hogere frames op en het ziet er naar mijn idee nog exact het zelfde uit!
Dacht eerst dat dit op mijn 1080 niet kon maar dat had ik dus mis.

[Reactie gewijzigd door Cowamundo op 23 juli 2024 13:01]

FSR 1.0 is universeel toepasbaar, moet in het spel ingebouwd zitten. FSR 2.0 is gelimiteerd. Ik had ook gehoopt dat het op wat oudere GPU en APU's toegepast kon worden, maar helaas.
Ja het was mij even ontschoten dan AMD veel zaken deelt met de rest in tegenstelling tot Nvidea. Dus even de ondersteunde games lijst doorlopen naar spellen die ik speel en bingo!
Dus meteen met tevredenheid aangezet.

[Reactie gewijzigd door Cowamundo op 23 juli 2024 13:01]

Het is gaaf om te zien dat "relatief oude kaarten" zoals de RTX20## serie door DLSS een aantal jaar extra hebben gekregen. Wellicht kwam DLSS eigenlijk dus als geroepen 'op tijd' vanwege dat kort na de lancering van de RTX20## serie de GPU chiptekort/mining-gekte begon en veel mensen mét die kaart niet hoefde te upgraden naar een RTX30##(Ti) serie. Vervolgens lanceert AMD hun systeem (niet de FSR 2.0, maar die andere) waar ook Nvidia kaarten gebruik van mogen maken en gelijk worden er nóg meer games meegetrokken en hebben die 'oude' kaarten weer een verlenging gekregen.

Ook zie ik dat door deze technieken laptops een 'boost' hebben gekregen.

Als we zometeen richting 8K idioterie gaan dan worden dit soort systemen een pure noodzaak gok ik zo.
Vooralsnog is 8K alleen beschikbaar op de allergrootste schermen (80" en groter). Op kleinere schermen zie je het verschil immers niet.
@AverageNL Wat ik me nu afvraag is of er een onafhankelijke vergelijking is van de impact op kwaliteit en het voordeel (% meer frames) van deze technieken.
AuteurAverageNL Nieuwsredacteur @Thalion16 april 2022 22:22
Momenteel niet - XeSS en FSR 2.0 zijn nog niet daadwerkelijk uit, dus dat soort vergelijkingen zitten er nog niet in :)
Als je een oudere kaart hebt dan kan je het met deze tools softwarematig gebruiken, dan doet de CPU het rekenwerk.
https://store.steampowered.com/app/993090/Lossless_Scaling/
https://github.com/andrewcs0901/Magpie
De eerste is volgens vergelijkingen op youtube stabieler.
Het is wel een beetje jammer, als ik het goed begrijp, dat oudere AMD GPU's ondersteuning hebben voor FSR 2.0 maar APU's met VEGA de boot mislopen. Eigenaardig! FSR 1.0 wordt ondersteund, mits in het spel ingebouwd. Wellicht dat XeSS meer kan betekenen voor bijv. mijn 4650G Pro?
Interessant artikel Daan van Monsjou, top, lekker uitgebreid, en daar houd ik persoonlijk wel van. Na dit artikel nu inmiddels gelezen te hebben, weet je er zo net even dat beetje meer van, en da's exact waar ik voor op Tweakers kom :)
Goed uitgebreid artikel :)
En mooi dat oudere gpu's een boost kunnen krijgen, waardoor ze nog even mee kunnen, zeker nu met alle crypto mining, scalpers perikelen...

Op dit item kan niet meer gereageerd worden.