FSR 2.0 unter der Lupe: AMD bläst zum Angriff auf Nvidias DLSS [Update: Benchmarks]

Update mit Benchmarks: Ein knappes Jahr nach FidelityFX Super Resolution in Version 1.0 ist nun FSR 2.0 im ersten Spiel verfügbar: Deathloop. Das neue Upscaling-Verfahren führt im Gegensatz zum Vorgänger auch temporale Berechnungen durch und soll damit wesentlich bessere Ergebnisse erreichen, teils wird sogar von einem "DLSS-Killer" gesprochen. PCGH verrät, was dran ist.

147
Special Philipp Reuther Raffael Vötter Als bevorzugte Quelle auf Google hinzufügen
FSR 2.0 unter der Lupe: AMD bläst zum Angriff auf Nvidias DLSS
Quelle: PC Games Hardware

Update vom 17. Mai: Wie versprochen, haben wir Grafikkarten-Benchmarks angefertigt, welche die Leistungsgewinne von FSR 2.0 gegenüber FSR 1.0 sowie DLSS aufzeigen. Das Testfeld ist bewusst breit aufgestellt, angefangen bei einer Geforce GTX 980 Ti von 2015, über eine Radeon RX 480 von 2016, bis hin zu Radeon RX 6800 XT und Geforce RTX 3090. Sie finden die interessanten Ergebnisse inklusive Erläuterung auf der zweiten Artikelseite unter den Videos.


FSR 2.0 ist erschienen - und das ist ein Grund zu feiern. Das neue Upsampling aus dem Hause AMD verspricht eine deutlich höhere Qualität als Version 1.0 und soll vielmehr mit Nvidias Deep Learning Super Sampling vergleichbar sein - mit dem Vorteil, dass FSR 2.0 auf jeder Grafikkarte und nicht bloß Geforce-RTX-Modellen lauffähig ist. PC Games Hardware hat erste Tests mit FSR 2.0 angestellt.

FSR 2.0: Unterschiede zu FSR 1.0

Obwohl die Namensverwandtschaft eine gewisse technische Nähe suggeriert, hat FSR 2.0 mit dem Vorgänger FSR 1.0 nur relativ wenig zu tun. Die Upscaling-Techniken sind vom groben Konzept her ähnlich - eine niedrige Auflösung wird auf eine höhere heraufgerechnet. Dabei wird das Bild gefiltert, um grobe Skalierungsartefakte zu verhindern - unter der Haube hat FSR 2.0 allerdings nur noch wenig mit FSR 1.0 gemein, tatsächlich wurde FSR 2.0 laut AMD von Grund auf neu entwickelt. Die vielleicht gewichtigste Neuerung bei FSR 2.0 ist, dass das neue Upsampling-Verfahren nun temporal, nicht mehr nur rein spatial arbeitet. Aber dies ist nur ein Teil der Neuerungen. Wir beziehen uns von hier ab auf AMDs Review-Guide, vielmehr jedoch auf die ausführliche und aufschlussreiche GDC-Präsentation, die wir Interessieren ans Herz legen wollen, die sich nochmals genauer mit AMDs neuer Upsampling-Technik auseinandersetzen wollen. Wir fassen die wichtigsten Punkte im Folgenden für Sie zusammen.

Auch wenn FSR 2.0 gegenüber FSR 1.0 eine komplett neue Technik ist und deutlich bessere Resultate erzielt, die eigentliche Bildaufbereitung, also das Hochskalieren des Color Buffers funktioniert bei FSR 2.0 noch relativ ähnlich wie bei FSR 1.0. Das Hochrechnen geschieht mittels Lanczos-Filter. Es wird zudem AMDs Robust Contrast-Adaptive Sharpening angeboten, bei FSR 2.0 können Sie die Schärfe indes mittels Regler den eigenen Wünschen anpassen. FSR 2.0 setzt außerdem nicht auf Machine Learning wie der DLSS-Konkurrent, benötigt daher keine spezielle Hardware und läuft auf Grafikkarten (und Konsolen) jedes Herstellers. Wie bei FSR 1.0 hat sich AMD zudem entschieden, die Technik in Open-Source-Form öffentlich zugänglich zu machen. Doch damit enden die Gemeinsamkeiten, denn abseits einiger Filter, einer breiten Zugänglichkeit und der grundsätzlichen Idee, durch das Hochrechnen des Bildinhalts Leistung zu sparen, unterscheidet sich FSR 1.0 gravierend von FSR 2.0 - technisch wie auch beim Endresultat.

FSR 1.0 ist etwa abhängig von dem jeweils im Spiel integrierten Anti Aliasing. Hat ein Titel eine gute Kantenglättung, so kann auch FSR 1.0 bessere Ergebnisse erzielen als etwa mit einem schlechten TAA, das beispielsweise unscharf ist und zu Artefaktbildung neigt. Hat ein Spiel gar keine (für FSR 1.0 nutzbare) Kantenglättung, so muss für das AMD-Upsampling zusätzlich ein Anti Aliasing in das Spiel implementiert werden, was wiederum für den Entwickler zeitaufwendig ist und einen der größten Vorteile von FSR 1.0 zunichtemachen würde - die einfache Implementation und die dadurch begünstigte, bislang hohe und schnelle Adaptionsrate der Technik.

Die Upsampling-Qualität ist ohne temporalen Ansatz zudem nur eine mathematische Funktion der Auflösung: Je höher die Ursprungsauflösung, von der das Bild heraufgerechnet wird, desto besser ist das Endresultat. FSR 2.0 geht viele dieser Problemstellen an. Eines der wichtigsten Mittel dagegen ist, dass FSR 2.0 nun temporal arbeitet, also die Informationen mehrerer Bilder in die Berechnung integriert, ein TAA mit sich bringt und so zeitliches Supersampling integriert. Für das temporale Supersampling nutzt AMD bei FSR 2.0 Jittering, das Bild wird also von Frame zu Frame minimal (oft im Subpixelbereich) versetzt gerendert. Dadurch können etwa aus zwei minimal unterschiedlichen Bildern der gleichen Szene zusätzliche Informationen gewonnen werden, die ansonsten nicht erfasst werden könnten, insbesondere sehr feine Details. Durch das Jittering können zudem auch unbewegte Elemente besser erfasst und geglättet werden, etwa die Kante einer Mauer. Bei FSR 2.0 ist die Bildqualität also nicht mehr nur von der Ursprungsauflösung abhängig, sondern wie der Konkurrent DLSS außerdem von der Anzahl verrechneter Frames und den aus diesen gewonnenen Informationen. FSR 1.0 war verhältnismäßig simpel, FSR 2.0 ist durchaus komplex. Letzteres ist ein Grund dafür, dass FSR 2.0 nun deutlich mehr Input durch die Entwickler benötigt und obendrein ein wenig anspruchsvoller ausfällt, da ein Teil der durch die reduzierte Auflösung gewonnenen Leistung wieder für die temporale Bildaufbereitung genutzt werden muss.

FSR 2.0: So funktioniert AMDs Temporal-Upsampling

FSR 2.0 nutzt drei Datensets, um aus einem niedriger aufgelösten Bild ein sauberes, möglichst schlieren- und artefaktfreies Resultat in nativer Auflösung zu rekonstruieren. Statt aber nur den Color Buffer (also den sichtbaren Inhalt des Bilds, noch ohne Upsampling, Post Processing und HUD-Overlay) heraufzurechnen und zu filtern, nutzt FSR 2.0 den Depth Buffer (Tiefenpuffer, dieser enthält die Tiefeninformationen der Szene, mit dessen Hilfe die Engine wiederum Effekte wie eine Umgebungsverdeckung oder auch Shadow Maps errechnet und Entfernungen ermessen kann) sowie einen weiteren Buffer für Motion Vectors. Letztere sind für temporale Effekte wichtig, die mehrere Frames nutzen, da dieser Puffer die Bewegungsinformationen der Szene enthält. Also jene Abweichungen, die während der temporalen Berechnung durch Bewegung entstehen. Diese Inputs müssen von der Engine beziehungsweise den Entwicklern an FSR 2.0 weitergereicht werden; dies ist der Punkt, an denen die Entwickler selbst Hand anlegen müssen - zumindest, wenn sie FSR 2.0 selbst integrieren wollen. Große Grafikmotoren wie die Unreal Engine 4 und 5 werden in Kürze FSR 2.0 integrieren, zudem arbeitet AMD an einer einfach zu nutzenden API, die laut Entwicklern einen "ähnlichen Integrationsprozess wie andere temporale Techniken" verspricht - offenbar ein kleiner Wink Richtung Nvidias DLSS.

FSR 2.0 - Implementierung und Dynamisches Upsampling
AMD FSR 2.0 - GDC Slides - Dynamic Resolution Scaling
AMD FSR 2.0 - GDC Slides - Dynamic Resolution Scaling AMD FSR 2.0 - GDC Slides - Integration - Timeframe Estimates

Wenn ein Spiel bereits DLSS nutzt, so ist es laut AMD außerdem besonders einfach, FSR 2.0 zu integrieren, da die für DLSS nötigen Informationen (Motion Vectors, Depth-Buffer-Access) auch von FSR 2.0 genutzt werden können. Spannend: AMDs FSR 2.0 ist für den Nutzen von dynamischen Auflösungen ausgelegt, kann also nicht nur in festen Stufen (Quality, Balanced, Performance etc.) zugeschaltet werden, sondern die Renderauflösung auf Wunsch auch on-the-fly anpassen, um ein bestimmtes Performance-Ziel zu erreichen. Dies dürfte insbesondere für Entwickler von Konsolen-Spielen sehr interessant sein, aber auch PC-Spielern Nutzen bringen. Im Prinzip brauchen Sie zusammen mit FSR 2.0 dann nur noch Ihre gewünschten Details und die zu erreichende Bildrate angeben, FSR 2.0 kümmert sich dann je nach Lastsituation um die Auflösung.

Die Filterung der Farbanteile des Bilds beziehungsweise des Color Buffers ist relativ gradlinig. Wie bereits erwähnt, kommt für das eigentliche Hochskalieren ein Lanczos-Filter zum Einsatz. Diese Form von Filterung ist besonders gut für das Hoch- und Runterrechnen von Bildinhalten geeignet und wird etwa auch von vielen Foto- und Bildverarbeitungsprogramme und auch uns zum Herunterrechnen für unsere Screenshots eingesetzt. Der wichtigste Unterschied zu FSR 1.0 ist, dass nun auch Informationen vorheriger Frames mit in die Berechnungen einfließen, die zudem aufgrund des Jitterings nochmals zusätzliche Informationen enthalten. FSR 2.0 unterscheidet dabei die "Wichtigkeit" einzelner Bildpunkte, es gewichtet Pixel, die näher an der Kamera liegen höher, investiert also besonders viele Ressourcen auf naheliegende Pixel. Die Gewichtung unterscheidet aber auch zwischen alten und neuen Pixeln: Wurden bereits in vorherigen Bildern Informationen eines Pixels aufgegriffen und für die temporale Berechnung akkumuliert, so erhält dieser Pixel eine geringere Gewichtung als jene, deren Informationen über einen kürzeren Zeitraum gesammelt wurden und in dem aktuellen Frame ganz neu erscheinende Bildpunkte erhalten die höchste Gewichtung. Je nach Gewichtung werden die Pixel dann mit den Farbwerten der vorherigen Frames gemischt, ein frisches Pixel mit hoher Gewichtung wird dabei weniger stark geglättet als jene, die schon über einen längeren Zeitraum im Bild sichtbar sind. Um beim Hochskalieren Artefakte wie Ringing zu vermeiden, wird beim Hochrechnen des Color Buffers durch FSR 2.0 Clamping eingesetzt, das allzu hohe (Farb-)Abweichungen und sichtbare Artefakte unterbindet.

Die Motion Vectors beschreiben, welche Elemente sich während eines Zeitraums bewegt haben oder ob die Kamera-Position verändert wurde, etwa durch einen Input des Spielers. Mithilfe dieser Informationen kann Verwischen bei Bewegungen vermieden werden. Haben Sie etwa ein Objekt, das sich während der temporalen Hochskalierung bewegt, so kann FSR 2.0 mithilfe der Bewegungsvektoren das sich bewegende Objekt identifizieren, und den entsprechenden Inhalt des Color Buffers anpassen, indem der entsprechende Inhalt der vorherigen Bilder über den der aktuellen Frames reprojiziert wird. Statt also bei einem sich bewegenden Objekt durch die Verrechnung eine Art Schweif zu zeichnen, ähnlich wie bei einem regulären Foto bei zu hoher Belichtungszeit, entfernt FSR 2.0 durch Nutzung der Bewegungvektoren diese Schlieren und projiziert das sich über mehrere Frames bewegende Objekt übereinander, um das Ghosting zu vermeiden und dennoch den Informationsvorteil der temporalen Verrechnung nutzen zu können. Für die korrekte Erfassung der Motion Vectors eliminiert FSR 2.0 obendrein den Effekt des Jitterings, sodass das minimal versetzte Rendern der Einzelbilder die Bewegungsvektoren nicht verfälschen.

Mit dem Depth-Buffer kann FSR 2.0 nicht nur die Tiefe der Szene "lesen". Diese Tiefeninformationen kommen ebenfalls für temporale Verrechnungen und zur Vermeidung von Schieren und Ghosting zum Einsatz und werden außerdem für eine History Rectification (hier einmal vorsichtig, aber sinngemäß übersetzt mit "zeitlicher Entzerrung", um nicht missverständlich in strafrechtlich relevante Sphären zu gelangen) genutzt, die bei FSR 2.0 sowohl Tiefen- als auch Farbwert-Informationen betrifft. Mithilfe des Depth Buffers und der Motion Vectors kann FSR 2.0 erkennen, ob ein Objekt während der temporalen Berechnungen ein anderes verdeckt, sich darauf bewegt und das zuvor verdeckte Objekt sichtbar wird oder ein zuvor verdecktes Objekt durch eine Änderung des Blickwinkels sichtbar wird. Der Fachbegriff dafür nennt sich Disocclusion (~"Ent-Verdeckung", es wird also ein zeitlicher Prozess beschrieben, bei dem ein zuvor verdecktes Element sichtbar wird). Bei einer simplen temporalen Verrechnung würden sich die beiden Objekte vermischen, das vorherige also bei Bewegung ein Schlieren über das dahinterliegende zeichnen.

Um diese Art temporaler Artefaktbildung zu vermeiden, gleicht AMD den aktuellen Depth Buffer mit den Tiefeninformationen des Depth Buffers zuvor bereits rekonstruierten Frames ab und erstellt aus diesen Informationen eine Disocclusion Mask. Diese Maske markiert die entsprechenden Stellen, FSR kann darauf einen Großteil der zuvor akkumulierten Farben entfernen, um so das temporale Ghosting im aktuellen Frame zu unterbinden. FSR 2.0 entfernt allerdings nicht alle dieser Farben bzw. das Ghosting, sondern nur einen Großteil - für den Rest wird ein frisches Sample genutzt, welches einige dieser eigentlich unerwünschten Informationen enthält, aber zusätzlich eine Unschärfe-Filterung während des Upsampling-Vorgangs erhält. Laut AMD sorgt diese Herangehensweise für ein besseres, geschmeidigeres Bild respektive weichere Übergänge und vermeidet dennoch sichtbares Verwischen. Der Trick dabei ist, den aktuellen Depth Buffer mit dem bereits rekonstruierten des vorherigen Frames abzugleichen, da dieser schon die Disocclusion-Informationen der vorherigen Frames inkludiert, das Ghosting der vorherigen Bilder also längst entfernt wurde.

Die History Rectification enthält obendrein eine Korrektur für den Color Space und nutzt etwa Clamping, um Blöcke von 3 × 3 Pixeln zu vergleichen und gegebenenfalls innerhalb festgelegter Parameter (der "Clamp", also "Klemme, Zwinge") anzupassen, um allzu hohe Farbabweichungen, starke Kontraste und sichtbare Artefakte wie Ringing zu unterbinden. Dies dient auch dazu, um Ghosting bei Veränderungen beim Shading und/oder Farbwechseln zu vermeiden, etwa bei blinkenden Lichtern. Für die Glättung der History Rectification (sowohl Farb- als auch Tiefenaspekt) kommt abermals ein Lanczos-Filter zum Einsatz, das Bild wird also schon vor dem eigentlichen Hochskalieren bereinigt.

AMD FSR 2.0 - GDC Slides - Disocclusions Quelle: AMD AMD FSR 2.0 - GDC Slides - Disocclusions
Doch damit noch nicht genug: Was ist mit feinen Elementen wie Stromleitungen, Gräsern und anderen filigranen Objekten, mit denen selbst temporale Lösungen Probleme haben können, wenn diese zu schmal ausfallen, um in das Pixelraster zu fallen? Selbst das Jittering ist nicht immer fein genug, um Subpixelflimmern oder Aussetzer, etwa sichtbare Unterbrechungen an einer feinen Leitung, Speichen eines Fahrradreifens oder Vegetation zu unterbinden. Zwar kann mit Jittering oft ein Teil des betreffenden Elements gezeichnet werden; wird aber der Bildinhalt durch das Jittering allerdings leicht geändert, kann es bei sehr feinen Strukturen sein, dass nun ein anderer Teil des feinen Elements erfasst wird, als bei dem vorherigen Frame. Würden diese beiden Frames einfach verrechnet, so würde das feine Element durch die temporale Unschärfe eventuell so weichgezeichnet, dass es kaum oder nicht mehr zu sehen wäre oder würde trotz temporaler Verrechnung durch Flimmern auffallen.

Um dieses Problem zu lösen, nutzt AMD bei FSR 2.0 eine Art Festhaltefunktion ("Thin Feature Lock"). Pixelfeine Strukturen werden von FSR 2.0 erkannt und darauf gekennzeichnet, und darauf beim nachfolgenden Frame während der Farb-History-Rectification stärker gewichtet ("weighing"), um das betreffende Element zu stabilisieren und hervorzuheben. Die Festhaltefunktion bleibt einen Jitter-Vorgang bestehen, sodass die kompletten Informationen während des Jitterings genutzt werden können, um das filigrane Element mit möglichst hoher temporaler Auflösung errechnen zu können. Direkt nach dem Jitter-Vorgang wird das Thin Feature Lock entfernt beziehungsweise gelöst, um abermals Ghosting zu vermeiden. Diese Herangehensweise zeichnet feine Linien und filigrane Elemente beim Hochrechnen etwas dicker und substanzieller als eigentlich der Fall, sorgt aber im Gegenzug für Stabilität und ununterbrochene Details. Letzteren Aspekt kann man übrigens auch bei DLSS beobachten, das offenbar einen verwandten Ansatz für filigrane Elemente nutzt.

147
  1. Seite 1 AMD FSR 2.0: Die Technik dahinter
  2. Seite 2 AMD FSR 2.0: Qualität & Leistungtest
    • Kommentare (147)

      Zur Diskussion im Forum
      • Von belle Volt-Modder(in)
        Streng genommen gibt es schon seit 25.03. DLSS 2.4.0, was man in die entsprechenden Games auch händisch einfügen könnte. Im Artikel wird FSR 2.0 mit DLSS 2.3.0 verglichen.
        [Ins Forum, um diesen Inhalt zu sehen]

        Was soll man sagen, FSR hat sich sinnvoll weiterentwickelt, DLSS bleibt aber minimal besser. Ich würde sagen, dass das eine Win-Win-Situation für uns Gamer / Kunden ist.
        Zitat von RX480
        Mit so ner kleinen Graka muss man halt irgendwann mal von MAXED weg hin zu sinnvollen Settings, wo die Fps
        dann noch alltagstauglich sind.

        Mir persönlich nützt ne MAXED- 15 fps -Messung gar nix, ... deswegen hätte ich ja gerne nen geteilten Parcour für kleinere+größere Grakas
        In der Anwendung der Erkenntnisse in der Praxis, also beim eigentlichen Zocken, hast du natürlich recht. Bei Tests finde ich das so aber besser, da dann alle GPUs auf einen Blick ohne Mehraufwand vergleichbar sind. Manche Tests von PCGH beinhalten ja die Skalierung über verschiedene Qualitätsstufen und letzten Endes ist für mich der Unterschied in Prozent interessant.

        Auf welchen Einstellungen etwas auf meiner Sapphire RX "475" Nitro Ersatzkarte läuft, probiere ich im Ernstfall selbst aus.
      • Von belle Volt-Modder(in)
        Streng genommen gibt es schon seit 25.03. DLSS 2.4.0, was man in die entsprechenden Games auch händisch einfügen könnte. Im Artikel wird FSR 2.0 mit DLSS 2.3.0 verglichen.
        [Ins Forum, um diesen Inhalt zu sehen]

        Was soll man sagen, FSR hat sich sinnvoll weiterentwickelt, DLSS bleibt aber minimal besser. Ich würde sagen, dass das eine Win-Win-Situation für uns Gamer / Kunden ist.
        Zitat von RX480
        Mit so ner kleinen Graka muss man halt irgendwann mal von MAXED weg hin zu sinnvollen Settings, wo die Fps
        dann noch alltagstauglich sind.

        Mir persönlich nützt ne MAXED- 15 fps -Messung gar nix, ... deswegen hätte ich ja gerne nen geteilten Parcour für kleinere+größere Grakas
        In der Anwendung der Erkenntnisse in der Praxis, also beim eigentlichen Zocken, hast du natürlich recht. Bei Tests finde ich das so aber besser, da dann alle GPUs auf einen Blick ohne Mehraufwand vergleichbar sind. Manche Tests von PCGH beinhalten ja die Skalierung über verschiedene Qualitätsstufen und letzten Endes ist für mich der Unterschied in Prozent interessant.

        Auf welchen Einstellungen etwas auf meiner Sapphire RX "475" Nitro Ersatzkarte läuft, probiere ich im Ernstfall selbst aus.
      • Von RX480 Lötkolbengott/-göttin
        Mit so ner kleinen Graka muss man halt irgendwann mal von MAXED weg hin zu sinnvollen Settings, wo die Fps
        dann noch alltagstauglich sind.

        Mir persönlich nützt ne MAXED- 15 fps -Messung gar nix, ... deswegen hätte ich ja gerne nen geteilten Parcour für kleinere+größere Grakas, einmal FHD@high/medium und dann WQHD++@ultra/maxed.
      • Von ZeroZerp Software-Overclocker(in)
        Zitat von RX480
        (x) RX580 reicht für 1440p medium
        Was ich nicht ganz verstehe ist, dass er als Referenz 1080P in Ultra Details zeigt und dann bei 1080P mit FSR nur mehr very high. Da bleibt die Referenzierung schon irgendwie auf der Strecke....
      • Von RX480 Lötkolbengott/-göttin
      • Von Cleriker Kokü-Junkie (m/w)
        Danke für das Update.
      Direkt zum Diskussionsende
  • Print / Abo
    Apps
    PCGH Magazin 07/2026 PC Games 07/2026 play5 07/2026 N-Zone 07/2026 Linux Magazin 07/2026 LinuxUser 07/2026 Raspberry Pi Geek 07/2026
    PC Games Hardware PC Games Linux Magazin Raspberry Pi Geek Computec Kiosk