AMD Publishes FSR 3 Source Code

kac77

2[H]4U
Joined
Dec 13, 2008
Messages
3,319

AMD Publishes FSR 3 Source Code

Written by Michael Larabel

Back in September AMD released FidelityFX Super Resolution 3 (FSR3) and at the time they noted the open-source code would be made available "soon". As a nice Christmas present, the FSR3 source code is public as of today.

AMD today made FidelityFX Super Resolution 3 open-source and available for download from GitHub. This includes their full source code for DirectX 12 and Unreal Engine 5 integration.
 
The flickering shadows are extremely distracting, but can't totally discount the progress. Expecting the artifacting will be mitigated significantly by this time next year.
 
Mods can now replace DLSS Frame Generation with FSR3 for NVIDIA RTX 20/30 GPUs in multiple games
https://videocardz.com/newz/mods-ca...3-for-nvidia-rtx-20-30-gpus-in-multiple-games

I was reading Twitter and stumbled upon it.
https://twitter.com/VideoCardz/status/1736725622968156401


View: https://youtu.be/ibGw5PuG4Xc


an RTX 3080 is shown running Cyberpunk at 1440p and going from 46fps to 84fps with frame gen, which is impressive. The mods also work well with The Witcher 3, but the new Ratchet and Clank game has some issues, as does Dying Light 2 and Hitman 3.

if you've got a previous-gen Nvidia GPU and have been itching to run it with ray tracing without your fps tanking, it sounds like it could be a fun experiment.

https://www.extremetech.com/gaming/mods-let-you-run-amds-fsr3-frame-gen-on-older-gpus
 
an RTX 3080 is shown running Cyberpunk at 1440p and going from 46fps to 84fps with frame gen, which is impressive. The mods also work well with The Witcher 3, but the new Ratchet and Clank game has some issues, as does Dying Light 2 and Hitman 3.

if you've got a previous-gen Nvidia GPU and have been itching to run it with ray tracing without your fps tanking, it sounds like it could be a fun experiment.

https://www.extremetech.com/gaming/mods-let-you-run-amds-fsr3-frame-gen-on-older-gpus
It's because nVidia can't raster. You turn all thier voodoo magic off you get abysmal raster performance. It truly means there is no real power behind thirr silicon except the kind that generates massive heat. I'm not fan shilling for AMD, I own nVidia and AMD stuff. To be fair I don't find these Gpus impressive at all. We are buying a pack of cheap parlor tricks at tye end of the day. At least our CPUs generate raw performance but GPUs are based on trickery and fairy dust. I miss the good old days of actual silicon performance. Not hat tricks. But those days are forever gone.
 
With Silicon costs going up, we can expect the area of the GPU’s to go down and the number of Parlor tricks to go up in accordance. I expect this in combination with the general shit state of the economy to lead a change in game development that leans into smaller titles with more emphasis on auto generated eye candy as they cut back on art staff.
 
It's because nVidia can't raster. You turn all thier voodoo magic off you get abysmal raster performance. It truly means there is no real power behind thirr silicon except the kind that generates massive heat. I'm not fan shilling for AMD, I own nVidia and AMD stuff. To be fair I don't find these Gpus impressive at all. We are buying a pack of cheap parlor tricks at tye end of the day. At least our CPUs generate raw performance but GPUs are based on trickery and fairy dust. I miss the good old days of actual silicon performance. Not hat tricks. But those days are forever gone.

literally the fastest gpu in this category -> "abysmal raster performance"

ok
 
It's because nVidia can't raster. You turn all thier voodoo magic off you get abysmal raster performance. It truly means there is no real power behind thirr silicon except the kind that generates massive heat. I'm not fan shilling for AMD, I own nVidia and AMD stuff. To be fair I don't find these Gpus impressive at all. We are buying a pack of cheap parlor tricks at tye end of the day. At least our CPUs generate raw performance but GPUs are based on trickery and fairy dust. I miss the good old days of actual silicon performance. Not hat tricks. But those days are forever gone.

Weird. I have never had to update a GPU with mitigations to its parlour tricks. Definitely not ones that cut the performance in half.
 
Abysmal is a strong word, raster performance in relation of the amount of area on the silicon that is handling the raster performance is actually very good. Nvidia simply hasn’t actually put that much raster based hardware there on the silicon, we’ll see how that pans out over time but if the reports coming from Developers on their future projects and budgets are accurate than it’s likely going to work in Nvidia’s favour.

Expect AAA to be half the size with a quarter of the budget using a lot of canned and pre optimized textures for UE5 utilizing RT enhanced Lumen so they can cut back on art departments and their man hours. So non RT settings will be limited and very potato mode like.
 
Expect AAA to be half the size with a quarter of the budget using a lot of canned and pre optimized textures for UE5 utilizing RT enhanced Lumen so they can cut back on art departments and their man hours. So non RT settings will be limited and very potato mode like.

Sidenote, there's this growing gap between UE5 games actually coming out (after almost 2yrs there's only Fortnite + 2 flops), and the flood of youtube vids showing UE5 demos and how easy it is for anyone with no prior experience to 1-click create videogames with it. Legitimate game dev cycles are obviously lengthy, but so far UE5's output has mostly been sandbox demo generator. And to its credit the demos look incredible, but perhaps there's more to creating and fnishing a coherent game than color-by-numbers.
 
Last edited:
Sidenote, there's this growing gap between UE5 games actually coming out (after almost 2yrs there's only Fortnite + 2 flops), and the flood of youtube content showing UE5 demos and how easy it is for anyone with no prior experience to 1-click create videogames with it. Legitimate game dev cycles are obviously lengthy, but so far UE5's output has mostly been sandbox demo generator. And to its credit the demos look incredible, but perhaps there's more to creating and fnishing a coherent game than color-by-numbers.
I'm really hoping we get some better UE5 games down the road. So far the performance has been really poor even if the visuals are good.
 
Sidenote, there's this weird, growing gap between UE5 games actually coming out (after almost 2yrs there's only Fortnite + 2 flops), and the flood of youtube content showing UE5 demos of how easy it is for anyone with no prior experience to make videogames with it. I realize game dev cycles are lengthy, but I'm starting to wonder when UE5 transcends sandbox demo generator, and becomes the best thing ever as claimed.
There’s lots it can do, it’s a solid engine, but it’s also one you can throw shit at, and it will gladly gold plate.
A bad game will be a bad game regardless of the engine. We have to remember that the dev community got stunted by a full 12-18 months mid way into 2020, you would think that dev studios would be in a position to ramp up work from home a lot faster than they actually could, but nope.
Dev studios were upended and still haven’t recovered, in their traditional fashion most chose to lay off employees when shit hit the fan, but when it came to rehiring their regular “contracted” employees didn’t all come back like they were expected, many left the industry or got scooped up by other studios as they fought over talent all hiring at the same time.
 
  • Like
Reactions: DPI
like this
literally the fastest gpu in this category -> "abysmal raster performance"

ok
Modern GPU's aren't that simple. With or without Ray-Tracing? With or without upscaling? With at most 8GB of VRAM or more? With or without sponsorship? These factors make a difference if AMD or Nvidia is faster. But yea Nvidia is generally faster*, with caveats. Assuming you're using DLSS and Ray-Tracing because of course you would you paid for these features. Where as AMD with FSR and Ray-Tracing is just not as good. Turn off upscaling and Ray-Tracing and crank up the settings past 8GB of VRAM, then AMD is generally faster. Then it comes down to do you value Ray-Tracing? Do you value DLSS over FSR, over TAA? It's not that easy anymore.
 
It's because nVidia can't raster. You turn all thier voodoo magic off you get abysmal raster performance. It truly means there is no real power behind thirr silicon except the kind that generates massive heat.
Pure raster 4k, 3080 vs 6800xt with drivers-game when the 4070 was released:


relative-performance-3840-2160.png


a little bit faster on those game, the 3090 quite a bit more than the 6900xt, has for heat yes TSMC was better than Samsung.
 
DLSS and FSR both look as good or better than TAA at the very least, either will do a better job native to native than TAA will.
Yea but I'm in the camp that I don't like TAA. I'd rather use SMAA, but very few games come with this option. FSR and DLSS are better than TAA, but that just says a lot about how bad TAA is.
https://www.reddit.com/r/FuckTAA/
 
Yea but I'm in the camp that I don't like TAA. I'd rather use SMAA, but very few games come with this option. FSR and DLSS are better than TAA, but that just says a lot about how bad TAA is.
https://www.reddit.com/r/FuckTAA/

They don't come with the option because you will get shimmer/fireflies with no way to stop it.

MSAA will be expensive and does nothing to help aliasing that is coming from shading instead of geometry.

The raw output from engines is getting _more_ noisy. Your option is basically some kind of temporal AA, or super sampling - which is impractical.
 
Yea but I'm in the camp that I don't like TAA. I'd rather use SMAA, but very few games come with this option. FSR and DLSS are better than TAA, but that just says a lot about how bad TAA is.
https://www.reddit.com/r/FuckTAA/
Problem is MSAA doesn’t work with modern rendering setups, MSAA does not work on textures only polygons, and it struggles with any objects that use opacity or programmable shaders. It also incurs a higher overhead as it causes each frame to essentially get rendered 1.5 times over.
 
This is why FSR 3 being open source is a good thing. Someone named Rhys Perry was able to optimize the code in VKD3D-Proton and RADV Vulkan driver. Something Microsoft needs to do with DirectX.
https://www.phoronix.com/news/Mesa-RADV-Better-FSR3

"Viewing the Immortals of Aveum demo title screen, it seems FPS is ~14% higher (all settings are turned to their lowest, 4K resolution, Ultra Performance FSR3 with frame generation)"
 
Drivers on Windows probably don't hit the issue, it's too suspiciously gigantic of a performance gain.

It sounds like the DirectX Shader Compiler generates something relatively slow, but the driver's optimizer does a good job evaporating it into nothingness. The next stop for DXIL is the driver's compiler on Windows.

On Linux it's going from DXIL -> NIR in Mesa -> SPIR-V to translate to Vulkan. It's jumping through multiple IRs on top and either something prevented the optimization along the way, and/or the driver just didn't do it.
 
Reading the link I do not get what the FSR 3 source being open has to do with it.
They were able to see that FSR3 was the DXIL function which apparently was very poorly optimized.... This is also used by DX.

The fix amounts to better performance for FSR3, When using VKD3D-Proton. If microsoft can implement the same fixes into their API then there will be performance gains there as well. None, of these fixes would have been possible without FSR3 Being open source and allowing the community to see what function Calls FSR3 is making behind the scenes and allowing the community to make changes.

You have to read deeper than the article and look at the merge request on gitlab.
 
They were able to see that FSR3 was the DXIL function which apparently was very poorly optimized.... This is also used by DX.

The fix amounts to better performance for FSR3, When using VKD3D-Proton. If microsoft can implement the same fixes into their API then there will be performance gains there as well. None, of these fixes would have been possible without FSR3 Being open source and allowing the community to see what function Calls FSR3 is making behind the scenes and allowing the community to make changes.

You have to read deeper than the article and look at the merge request on gitlab.

DXIL is the IR from the DirectX Shader Compiler. The tool can either output SPIR-V (for Vulkan/GL, despite the name) or DXIL - hardware can't directly run this output. These representations are for the driver's compiler to JIT into actual code for its hardware. The "instructions" for the IR may not even exist/have a direct representation on the target hardware itself.

There's nothing for Microsoft to implement in the actual graphics API because this PR is to improve the driver's code gen.

Reading the link I do not get what the FSR 3 source being open has to do with it.

Probably has nothing to do with it. The dev probably saw a performance difference, wondered "why are we 10% slower on the GPU here," and profiled.

It's the same DXIL IR across platforms - the shader is literally the same, so the performance delta would have to be coming from whatever's transforming it.
 
Last edited:
Reading the link I do not get what the FSR 3 source being open has to do with it.
Like Enigma already mentioned, DXIL is used by FSR3, which is used by VKD3D-Proton's MSAD instruction. The person was able to optimize MSAD for use with VKD3D-Proton, ACO compiler and NIR, because these are also open source projects. This is why in some cases there are games that run faster in Linux compared to Windows because these kind of optimizations can be done, despite that Linux has to run translation layers which slow things down. If Microsoft were to implement FSR3 natively into Windows DirectX then even further optimizations can be done. Apple was able to implement FSR into Metal and call it MetalFX, so when it Microsoft going to do the same?
 
FSR 3 vs DLSS 3 comparison by AMD on 4060 vs 7600 XT

Should be interesting to check more games using DLSS 3 to FSR 3 mod

Other data shared by AMD compares the RX 6700 XT to Nvidia’s $299 RTX 4060. AMD shows the RX 6700 XT trading blows with the RTX 4060 at both 1080p and 1440p in a handful of games, but we’ll have to wait on full reviews to see exactly how it compares.

https://www.theverge.com/2024/1/8/24029653/amd-radeon-rx-7600-xt-specs-release-date-price

View attachment 625591
 
Like Enigma already mentioned, DXIL is used by FSR3, which is used by VKD3D-Proton's MSAD instruction. The person was able to optimize MSAD for use with VKD3D-Proton, ACO compiler and NIR, because these are also open source projects. This is why in some cases there are games that run faster in Linux compared to Windows because these kind of optimizations can be done, despite that Linux has to run translation layers which slow things down. If Microsoft were to implement FSR3 natively into Windows DirectX then even further optimizations can be done. Apple was able to implement FSR into Metal and call it MetalFX, so when it Microsoft going to do the same?

The driver does the final compilation. There's nothing for Microsoft to do on the API side.

DXIL is the literal output of the shader compilation. It isn't a library or API, it's the hardware independent intermediate representation that the driver consumes for its compilation of the program for the hardware.

MetalFX is just a library, same as FidelityFX.
 
Like Enigma already mentioned, DXIL is used by FSR3, which is used by VKD3D-Proton's MSAD instruction. The person was able to optimize MSAD for use with VKD3D-Proton, ACO compiler and NIR, because these are also open source projects. This is why in some cases there are games that run faster in Linux compared to Windows because these kind of optimizations can be done, despite that Linux has to run translation layers which slow things down. If Microsoft were to implement FSR3 natively into Windows DirectX then even further optimizations can be done. Apple was able to implement FSR into Metal and call it MetalFX, so when it Microsoft going to do the same?
Microsoft can't just implement it without a few hoops, if they did it would likely be a DX12.5 Ultimate Extreme thing, or possibly even a DX13 feature as a form of native AA/Upscaling, but if they did I highly suspect they would make Intel, AMD, and Nvidia jump through validation tests for it and give all time to implement their own hardware accelerations for it for a future hardware release so they could choose how to accelerate it on a driver side to be compliant with the new DX version.

They rarely just add features like that with no warning or input from their partners, it's just a rude thing to do, Microsoft of old likely would have but then tied it to a new Windows version arbitrarily but current Microsoft doesn't have the market position to play that way.
 
It'll never wind up in a core graphics API itself because it makes no sense being there. It isn't something you can just enable, you must already have an engine built that provides the data it expects.

It's outside the scope of the API itself. They all just exist to give you the building blocks and little else.

Best case for that scenario is Microsoft just takes and rebrands it and gives it to you as a helper. Which is a pointless because that's already how it works. Really all they'd accomplish is changing the name. Unless they plan on devoting developer resources to improving it, I guess, and plan to do it under their own fork, like Apple.
 
Microsoft can't just implement it without a few hoops, if they did it would likely be a DX12.5 Ultimate Extreme thing, or possibly even a DX13 feature as a form of native AA/Upscaling, but if they did I highly suspect they would make Intel, AMD, and Nvidia jump through validation tests for it and give all time to implement their own hardware accelerations for it for a future hardware release so they could choose how to accelerate it on a driver side to be compliant with the new DX version.
That's what I totally expect them to do.
They rarely just add features like that with no warning or input from their partners, it's just a rude thing to do, Microsoft of old likely would have but then tied it to a new Windows version arbitrarily but current Microsoft doesn't have the market position to play that way.
Microsoft certainly has the market position but like with Direct3D 12 they just don't care. It took AMD to create Mantle to push the industry towards newer API's closer to metal design. FSR is probably not something Microsoft would use directly, but like Mantle it can be used for reference, assuming Microsoft cares enough to do so. Something like frame generation could be enough of a reason for Microsoft to make it a Direct3D 13 or maybe 12.5, or even worse make it limited to Windows 12. I could also see it requiring AI accelerated hardware, which could push older GPU's out.
 
Like Enigma already mentioned, DXIL is used by FSR3, which is used by VKD3D-Proton's MSAD instruction. The person was able to optimize MSAD for use with VKD3D-Proton, ACO compiler and NIR, because these are also open source projects.
You can do all of that if FSR 3 code was closed, if I understand the situation correctly.
 
You can do all of that if FSR 3 code was closed, if I understand the situation correctly.
Can you tell me how the software pipeline works for Intel XeSS? or DLSS? Can you find the inefficiencies in the way the tech works as it relates to other libraries?

That is why opensource is better IMO. The other advantage is you can have alot more "eyes" on the project.

Not going to turn this topic into a debate on the merits of open vs closed source though we have diverged far enough IMO
 
Not going to turn this topic into a debate on the merits of open vs closed source though we have diverged far enough IMO
Wilt multiple open source project having being changed here, there is no need.

There was a specific claim that it was because FSR 3 being open that those were changed, simply asked how so, the article not mentionning why.

Can you tell me how the software pipeline works for Intel XeSS? or DLSS?
Usually there interaction with external tools will be catchable yes.
 
You can do all of that if FSR 3 code was closed, if I understand the situation correctly.
Could you? Maybe, but would you? All you gotta do is look at DLSS-FG and XeSS support for Linux to figure out how well closed source is working. Popular emulators like Yuzu and RPCS3 only support AMD FidelityFX for a reason. AMD did the optimization themselves so they would have access to the code either way, but now Valve can step in and further optimize if they wish, as they have done in the past. Seeing as AMD is powering Valve's Steam Deck, they have a lot of incentives to further optimize FSR 3. There are no upsides to closed source either way, but plenty of upsides by keeping it open source.
 
It's because nVidia can't raster. You turn all thier voodoo magic off you get abysmal raster performance. It truly means there is no real power behind thirr silicon except the kind that generates massive heat. I'm not fan shilling for AMD, I own nVidia and AMD stuff. To be fair I don't find these Gpus impressive at all. We are buying a pack of cheap parlor tricks at tye end of the day. At least our CPUs generate raw performance but GPUs are based on trickery and fairy dust. I miss the good old days of actual silicon performance. Not hat tricks. But those days are forever gone.
Like the value of a dollar
 
Could you? Maybe, but would you? All you gotta do is look at DLSS-FG and XeSS support for Linux to figure out how well closed source is working. Popular emulators like Yuzu and RPCS3 only support AMD FidelityFX for a reason. AMD did the optimization themselves so they would have access to the code either way, but now Valve can step in and further optimize if they wish, as they have done in the past. Seeing as AMD is powering Valve's Steam Deck, they have a lot of incentives to further optimize FSR 3. There are no upsides to closed source either way, but plenty of upsides by keeping it open source.

It's implemented on emulators because FSR has a spatial version which is basically just a post process and is easy to make work anywhere.

The emulator can't provide the information DLSS or Xess needs in a generic way. The emulator has no idea what's being drawn and it can't make assumptions because any and every game is free to do whatever it wants.

Same reason drivers can't just trivially add temporal AA and give you DLSS/XeSS anywhere. There's no dependencies to worry about with spatial FSR, it can just happen at the end of the frame and that's it, everything works.

FSR3 and temporal friends cannot be implemented by the compositor in the Steam Deck either. Has nothing to do with source code, the information they need to function needs to come from the game - which is why Steam Deck can only ever spatially upscale for you.

Temporal AA needs multiple things to work correctly. The mods to go from one to the other work because you have guarantees that the data you need is there and everything is happening in the right order.
 
Microsoft certainly has the market position but like with Direct3D 12 they just don't care. It took AMD to create Mantle to push the industry towards newer API's closer to metal design. FSR is probably not something Microsoft would use directly, but like Mantle it can be used for reference, assuming Microsoft cares enough to do so. Something like frame generation could be enough of a reason for Microsoft to make it a Direct3D 13 or maybe 12.5, or even worse make it limited to Windows 12. I could also see it requiring AI accelerated hardware, which could push older GPU's out.
Not disagreeing with you just pointing out that Microsoft had been working on DX12 as a low level API for years before Mantle was a thing, Work on DX12 started internally during DX10’s active life cycle and before DX11 had officially launched.
Developers had been asking for a low level API since the launch of DX10 probably earlier, it wasn’t something that came unexpectedly from nowhere. Most developers were upset DX11 wasn’t low level but Microsoft’s answer at that time was that DX11 was already too far along to modify it and that it would come in the next version.

I mean Microsoft had some good programmers back then but even they couldn’t go “Oh Shit look at Mantle that’s awesome!, let’s scrap what we’re doing and make that but ours!” In a 6 month window. Hell 6 months wouldn’t have been enough time to schedule the meeting to tell them that a new WDDM version would be needed to support the change.
 
Back
Top