Dolphin, the GameCube and Wii emulator - Forums

Full Version: FSR 1.0 (FidelityFX Super Resolution) for improved scaling?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
For reference, AMD's FSR 1.0 (FidelityFX Super Resolution) was released as open source today:
And I'm wondering how realistic this could be as an improvement over Dolphin's current basic scaling for when the program window is higher resolution than the internal resolution?

I also can't help but wonder if it could even work for improved downscaling as well since I recall something previously stated in one of the dev blog posts that the separate SSAA settings are recommended to be used instead because the downscaling is sub-par if you have the internal resolution set higher than the actual program window.
I've only looked at the code briefly and seen some demos. So take my comments with that in mind. The short answer is, yes, it seems like it wouldn't be too difficult to add to Dolphin.

However, I am currently working on something somewhat tangentially related to this (that I hope to show off soon), so I'd request any users wanting to implement this, wait a bit before working on it.

Finally, yes, I believe Dolphin doesn't have proper downscaling if over 2x native. I'm not sure what would happen if this was used for that functionality.
How would FSR help Dolphin? It's is an upscaler, it's optimized around taking a lower resolution image and upscaling it to a higher resolution. That is completely useless for Dolphin, as we can just run at higher resolutions without issue. Why use it as a downscaler? In my experience lanczos tends to introduce too much sharpening to be useful for downscaling, and that is what this is based on. There are better algorithms for downscaling that are already available.
(07-17-2021, 02:53 PM)MayImilae Wrote: [ -> ]That is completely useless for Dolphin, as we can just run at higher resolutions without issue.
...um, hardware permitting. Sure Wii games aren't exactly the most graphically demanding, but to me the fundimental principle of considering sub-par upscaling a "non-issue" because one can always upgrade their GPU to power-through the problem is just side-stepping the issue rather than tackling it.

One thing in particular is that even low-end CPUs can now run Dolphin quite well at full speed, but a lot of those same CPUs are paired only with integerated graphics or low end discrete GPUs, meaning that the user may not actually be able to crank up the internal resolution as much as they want.

Furthermore there's also the fact that these low-powered CPUs having enough CPU grunt for Dolphin means that people have actually actively chosen to use them for small HTPC-like builds - see the ASRock DeskMini AMD APU systems for example. And integrated graphics, such as those on the aforementioned AMD APUs, tend to be constrained in the memory bandwidth department - and it just so happens that rendering resolution is one of the things that is most impacted by memory bandwidth performance.


Speaking of integrated GPUs and APUs, there's also the likes of the Switch homebrew port of Dolphin as well as the upcoming Steam Deck. That being said, the Switch is limited to a 1080p output and is primarily CPU-bottlenecked anyway while the Steam Deck is using LPDDR5 (faster memory bandwidth) and RDNA 2 (lesser memory bandwidth requirements), so at least for those two devices it might be a moot point.


(07-17-2021, 02:53 PM)MayImilae Wrote: [ -> ]In my experience lanczos tends to introduce too much sharpening to be useful for downscaling
Interesting, I find that's really only a case with something like bicubic at A=-1.00 and that, comparatively, lanczos3 is relatively softer than bicubic (assuming it's configured with some sharpening and not plain unsharpened bicubic which is actually quite blurry) for downscaling and gives a more "natural" appearance; sharper than biliner, but I would also argue that using bilinear for downscaling anything other than pixel art actually results in an image that's a little blurrier than if it were natively at that resolution.

Also the fast style of real-time bilinear commonly used in game graphics can have issues when downscaling below 50% - this is a problem for example that the Unity engine ports of the Higurashi VNs suffered from, preventing MangaGamer from using the full 1440p resolution character sprites and forcing their hand to pre-downsize the sprites to 960p in order to retain good visual quality if the user displays the VN at it's original 480p resolution (the resolution of the background art assets). Bicubic and lanczos by comparison is something that doesn't have this problem, though the slower kind of bilinear used in offline photo / graphics programs also tends to avoid this issue as well.

I will say however that any aliasing tends to be amplified by things like lanczos, but that's more of an issue when using lanczos for upscaling and is something that is not necessarily a bad thing if the alternative is something blurrier like the usual bilinear - in such a case it comes down to more of subjective taste, kind of like if one prefers Melee with the deflicker enabled or disabled (on a CRT TV I prefer enabled, but on a flat-panel TV I definitely prefer disabled).
(07-17-2021, 03:40 PM)Nintendo Maniac 64 Wrote: [ -> ]...um, hardware permitting.  Sure Wii games aren't exactly the most graphically demanding, but to me the fundimental principle of considering sub-par upscaling a "non-issue" because one can always upgrade their GPU to power-through the problem is just side-stepping the issue rather than tackling it.

One thing in particular is that even low-end CPUs can now run Dolphin quite well at full speed, but a lot of those same CPUs are paired only with integerated graphics or low end discrete GPUs, meaning that the user may not actually be able to crank up the internal resolution as much as they want.

Furthermore there's also the fact that these low-powered CPUs having enough CPU grunt for Dolphin means that people have actually actively chosen to use them for small HTPC-like builds - see the ASRock DeskMini AMD APU systems for example.  And integrated graphics, such as those on the aforementioned AMD APUs, tend to be constrained in the memory bandwidth department - and it just so happens that rendering resolution is one of the things that is most impacted by memory bandwidth performance.


Speaking of integrated GPUs and APUs, there's also the likes of the Switch homebrew port of Dolphin as well as the upcoming Steam Deck.  That being said, the Switch is limited to a 1080p output and is primarily CPU-bottlenecked anyway while the Steam Deck is using LPDDR5 (faster memory bandwidth) and RDNA 2 (lesser memory bandwidth requirements), so at least for those two devices it might be a moot point.

It would probably be useful for people running Dolphin on Android phones as well.
(07-16-2021, 04:31 PM)iwubcode Wrote: [ -> ]I am currently working on something somewhat tangentially related to this (that I hope to show off soon), so I'd request any users wanting to implement this, wait a bit before working on it.

Apologies for the grave-dig, but did anything ever come of this? One recent development is that FSR 1.0 actually got ported to OpenGL as well courtesy of Yuzu:
It's still in progress and a handful of recent changes both to Dolphin master and some general rework I want mean it'll probably be a "little" while longer. Graphics features are part of a huge overarching system being designed, FSR is just a very very tiny part of it.