-
-
Notifications
You must be signed in to change notification settings - Fork 97
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for AMD FSR 3 frame generation (currently, FSR 2.2 is supported) #8768
Comments
It's been really funny to me that by the time a new stable Godot build is released, a new FSR version comes out, which renders the previous implementation obsolete already. There's a few existing bugs with the FSR 2.2 implementation currently, and it would be nice to iron them out before moving the flag. Still, I feel like for most common use-cases the current FSR is pretty good, albeit I have yet to see a game made with the engine taking full advantage of it. |
AMD just announced FSR 3.1 which will have support for Vulkan. It also supports decoupling frame generation from upscaling. |
the fsr 3.1 version mostly fixes the fsr 2.2 problems(3.0 and 2.2 is the same) |
Note that FSR 3.1's source code release is expected to happen in Q2 2024, so most likely in June 2024. In the meantime, apps like Lossless Scaling's LSFG1 and AMD Fluid Motion Frames already work on Godot projects (both 3.x and 4.x) as I tested locally. These are limited to Windows though as they rely on low-level window manager hooks (Lossless Scaling) or driver-level features (AFMF). You will get the best results by capping the game framerate to a value you can steadily reach, and letting frame generation double the perceived framerate (the |
Just to make it clear: FMF only works on the most recent Radeon GPUs and third-party apps cover a tiny portion of the audience. They are nice but still not gonna replace the in-engine solution that will be accessible for the majority of users. Will wait for the source code. |
FSR3's "Native AA" would make a great additional choice for anti aliasing in Godot. The origional announcement for FSR3.1 said it would be avaliable Q2 this year which is almost up s hopefully it will release soon |
This is already supported in Godot by setting the 3D scaling mode to FSR2 and leaving the 3D scale at its default value of As far as I know, FSR3's native AA is not a different algorithm from FSR3 upscaling, just an official acknowledgement that it's a supported configuration. |
Oh I did not notice the AA working, I'll have to take another look, thanks! |
Also great timing on my part, right after I made my comment they announced the source will be dropping next month |
Just opened twitter to see their annoucement, source code is released! I hope it's an easy process to upgrade for whoever takes on the task <3 |
Describe the project you are working on
All visually demanding games will benefit from it
Describe the problem or limitation you are having in your project
Currently FSR 2 is in use, it has slightly worse upscaling and no Frame Generation.
Describe the feature / enhancement and how it helps to overcome the problem or limitation
The biggest part of FSR 3 is Frame Generation support. It works surprisingly good even for games where it wasn't implemented by developers (and was added by modders). By data from real frames, it creates intermediate ones.
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
Currently, the public release is for DirectX12 https://gpuopen.com/fsr3-source-available/
The Vulkan plugin is in the works and will take several months to complete.
It may be handy to check out right now what data these frames need and how can it be implemented.
And how to use it for 3D and not for 2D elements (since the algorithm may blur them out)
If this enhancement will not be used often, can it be worked around with a few lines of script?
No, it requires low-level access and motion vectors
Is there a reason why this should be core and not an add-on in the asset library?
FSR 2 is in the core and was admitted as one of the main updates of the recent Godot 4.2 release
The text was updated successfully, but these errors were encountered: