Thursday, July 15th 2021
AMD FidelityFX FSR Source Code Released & Updates Posted, Uses Lanczos under the Hood
AMD today in a blog post announced several updates to the FidelityFX Super Resolution (FSR) technology, its performance enhancement rivaling NVIDIA DLSS, which lets gamers dial up performance with minimal loss to image quality. To begin with, the company released the source code of the technology to the public under its GPUOpen initiative, under the MIT license. This makes it tremendously easy (and affordable) for game developers to implement the tech. Inspecting the source, we find that FSR relies heavily on a multi-pass Lanczos algorithm for image upscaling. Next up, we learn that close to two dozen games are already in the process of receiving FSR support. Lastly, it's announced that Unity and Unreal Engine support FSR.
AMD broadly detailed how FSR works in its June 2021 announcement of the technology. FSR sits within the render pipeline of a game, where an almost ready lower-resolution frame that's been rendered, tone-mapped, and anti-aliased, is processed by FSR in a two-pass process implemented as a shader, before the high-resolution output is passed on to post-processing effects that introduce noise (such as film-grain). HUD and other in-game text (such as subtitles), are natively rendered at the target (higher) resolution and applied post render. The FSR component makes two passes—upscaling, and sharpening. We learn from the source code that the upscaler is based on the Lanczos algorithm, which was invented in 1979. Media PC enthusiasts will know Lanczos from MadVR, which has offered various movie upscaling algorithms in the past. AMD's implementation of Lanczos-2 is different than the original—it skips the expensive sin(), rcp() and sqrt() instructions and implements them in a faster way. AMD also added additional logic to avoid the ringing effects that are often observed on images processed with Lanczos.With the source code now fully available, nothing stops developers from adding FSR into their games. Unlike NVIDIA's DLSS solution, FSR requires almost no engine tweaks, you just add the shader pass into your rendering pipeline. In a separate PDF document AMD went into more detail on how to integrate FSR, what inputs are required, and how to present the new rendering options to the end-user.
We took a closer look at the source code AMD is providing, and it's really the full source. There are no external dependencies or DLLs. You are free to modify and adapt as you see fit. This makes FSR an interesting tech for modders, who should be able to more easily integrate the tech into existing games, through hooks. Also there's nothing that would prevent this from running Linux. AMD's sample code includes Windows samples only at this time, but integrating FSR with other operating systems, even cell phones is trivial at this point. AMD has also released a demo for FSR, which lets you dig into all the settings options and compare them in a way that's better suited to investigation, than a hectic game. We've uploaded it to our downloads section.
AMD also announced that even more games will receive FSR support, with announcements lined up for tomorrow. Among these titles are Edge of Eternity, Resident Evil 8: Village, and Hired Gun. The company also announced implementation of FSR with two leading game engines, Unreal Engine 4 and Unity.
AMD is working with game studios with implement FSR with Asterigos, Baldur's Gate 3, Far Cry 6, Farming Simulator 22, Forspoken, Myst, Swordsman Remake, and Vampire the Masquerade: Bloodhunt.
If you haven't yet, check our our in-depth review of AMD's FSR upscaling technology (posted in July).
Sources:
FSR Source Code, AMD FSR Developer Page, FSR 1.0 Docs
AMD broadly detailed how FSR works in its June 2021 announcement of the technology. FSR sits within the render pipeline of a game, where an almost ready lower-resolution frame that's been rendered, tone-mapped, and anti-aliased, is processed by FSR in a two-pass process implemented as a shader, before the high-resolution output is passed on to post-processing effects that introduce noise (such as film-grain). HUD and other in-game text (such as subtitles), are natively rendered at the target (higher) resolution and applied post render. The FSR component makes two passes—upscaling, and sharpening. We learn from the source code that the upscaler is based on the Lanczos algorithm, which was invented in 1979. Media PC enthusiasts will know Lanczos from MadVR, which has offered various movie upscaling algorithms in the past. AMD's implementation of Lanczos-2 is different than the original—it skips the expensive sin(), rcp() and sqrt() instructions and implements them in a faster way. AMD also added additional logic to avoid the ringing effects that are often observed on images processed with Lanczos.With the source code now fully available, nothing stops developers from adding FSR into their games. Unlike NVIDIA's DLSS solution, FSR requires almost no engine tweaks, you just add the shader pass into your rendering pipeline. In a separate PDF document AMD went into more detail on how to integrate FSR, what inputs are required, and how to present the new rendering options to the end-user.
We took a closer look at the source code AMD is providing, and it's really the full source. There are no external dependencies or DLLs. You are free to modify and adapt as you see fit. This makes FSR an interesting tech for modders, who should be able to more easily integrate the tech into existing games, through hooks. Also there's nothing that would prevent this from running Linux. AMD's sample code includes Windows samples only at this time, but integrating FSR with other operating systems, even cell phones is trivial at this point. AMD has also released a demo for FSR, which lets you dig into all the settings options and compare them in a way that's better suited to investigation, than a hectic game. We've uploaded it to our downloads section.
AMD also announced that even more games will receive FSR support, with announcements lined up for tomorrow. Among these titles are Edge of Eternity, Resident Evil 8: Village, and Hired Gun. The company also announced implementation of FSR with two leading game engines, Unreal Engine 4 and Unity.
AMD is working with game studios with implement FSR with Asterigos, Baldur's Gate 3, Far Cry 6, Farming Simulator 22, Forspoken, Myst, Swordsman Remake, and Vampire the Masquerade: Bloodhunt.
If you haven't yet, check our our in-depth review of AMD's FSR upscaling technology (posted in July).
92 Comments on AMD FidelityFX FSR Source Code Released & Updates Posted, Uses Lanczos under the Hood
If you like I can show you some comparison where 4K DLSS Performance with sharpen filter can look better than 4K Native even before showing obvious sharpen artifacts.
Really hope they do one for Horizon: Zero Dawn.
It is what DLSS should have been. This.
I have to pay Nvidia to use it and I have to keep paying to keep using it. Not free.
FSR on the other hand doesn't ask me to give even a single penny to AMD, today or in the future. AMD could come up with a Premium FSR that needs AMD's latest hardware to work. That will NOT be free. But this version of FSR, it's free.
Meanwhile this 1080 is still working fine at 3440x1440 in every other respect. Even better: Cyberpunk was playable at 50 odd FPS precisely because of AMD's FidelityFX technology, while DLSS was not available in any way for me as a decade long Nvidia customer.
There will be no reward for that sort of business from my end.
Vendor lock in might be okay to you, but Im also looking at a handsomely priced ultrawide ere and guess what... cant use Gsync, but Freesync works admirably. Its so similar you would almost think sone people get how it should work and some do not. Its a pattern. But vendorlock and healthy market hardly go well together, being an advocate of it is... well, stupid.
For me, DLSS isn't 'free' as you'd have to buy RTX cards in order to benefit from it.....if you already happen to own one, then yeah, you can enjoy FSR as well. So, in that sense, being hardware agnostic, FSR is indeed free for all owners of cards capable of leveraging the tech.
see en.m.wikipedia.org/wiki/Free_software
DLSS is definitely not free in any wider meaning.
Let me repeat myself. Dictating what hardware to buy, even at the same price point, does not mean free.
And let's say I chose the Nvidia option and 6 months latter I decide to swap to AMD. Do I keep the *free* DLSS support or do I lose it?
Thanks for the advice.
I want "bilateral" since it has no scaling artifacts. Hi, it depends whether objectID shaders are used or not. Antialiasing can blend, or highlight textures from the background. This would give an unnecessary advantage to custom filters like DLSS. This is a limitation of quad helper pixel rasterization, artifacts accumulate with overshaded samples.
This is NOT AMD vs Nvidia. This is Proprietary vs FREE. And when free is good enough, it's good to be an option.
RT is something else. This thread is NOT about RT and performance charts in RT.
BTW, give this nVidia promotion a rest already, why doncha?:rolleyes:
A comparison vid of FSR at Ultra vs DLSS2.2 (I think) on Marvel's Avengers....looks good enough, unlike you pixel peep.
ANd here's a comparison between FSR vs DLSS 2.2 in Necromunda Hired Gun, without pixel peeping, can you see the difference especially when playing the game?
Anyways with a little sharpen filter applied, FSR Ultra Quality couldn't even compete with DLSS Balanced mode at 1440p