Lossless Scaling

Lossless Scaling

Feature Suggestion: Use FSR as antialiasing
As the tittle says, is it possible to allow us to use FSR as antialiasing? Lets say, game runs at native screen resolution, we use FSR factor 2 and the resulted output its resized to fit the screen?
While it wont be ofc as good as native AA, some games like NFS Rivals lack AA at all or have TERRIBLE AA implementations like only SSAA, so even if FSR used as anti aliasing wont be the best, it will be way better than nothing.
< >
Visualizzazione di 1-15 commenti su 21
Set Scale Factor to Custom, use 1 as the value and choose FSR. It already uses AA by default.
Other simple solution is Reshade. Enable TAA or SMAA NFAA or FLAA. FXAA just blurs edges.
Messaggio originale di Nill:
Set Scale Factor to Custom, use 1 as the value and choose FSR. It already uses AA by default.
Thats the thing. FSR AA its not AA, its just a blur filter with some really good AA techs on it. Using FSR to scale up to 2x the image size AND then downscale it will produce WAY better image quality and AA results that any kind of post process AA, since while its not SSAA, its really close to achieving that.

On a side note, TAA, SMAA, NFAA, FLAA and FXAA work against aliasing artifacts by doing comparisons and trying to detect edges and round values. TAA its not possible without proper depth buffer access, thats why reshade TAA dont work as native TAA.

FSR its actually an upscaling tech, so it increase output resolution from a low res image, and if a high resolution image its downscaled, the natural outcome of that its aliasing being reduced, thats how SSAA worked. Obviously FSR its WAY less resource intensive since the upscaling its not the same as rendering at higher native resolution, but given that the aim its to downscale the image again, its not going to be an issue on the lost details since said details where never meant to be displayed on the end rendered frame.
Ultima modifica da Kitty Skin; 31 ago 2021, ore 12:17
(ノ°□°)ノ  [sviluppatore] 1 set 2021, ore 12:43 
Messaggio originale di Kitty Skin:
Thats the thing. FSR AA its not AA, its just a blur filter with some really good AA techs on it. Using FSR to scale up to 2x the image size AND then downscale it will produce WAY better image quality and AA results that any kind of post process AA, since while its not SSAA, its really close to achieving that.

On a side note, TAA, SMAA, NFAA, FLAA and FXAA work against aliasing artifacts by doing comparisons and trying to detect edges and round values. TAA its not possible without proper depth buffer access, thats why reshade TAA dont work as native TAA.

FSR its actually an upscaling tech, so it increase output resolution from a low res image, and if a high resolution image its downscaled, the natural outcome of that its aliasing being reduced, thats how SSAA worked. Obviously FSR its WAY less resource intensive since the upscaling its not the same as rendering at higher native resolution, but given that the aim its to downscale the image again, its not going to be an issue on the lost details since said details where never meant to be displayed on the end rendered frame.

SSAA works differently. This reduces aliasing, not only because the high-resolution image is downscaled, but because the higher resolution contains more pixels and allows geometry to be drawn more accurately with fewer jaggies before being downscaled. If you render a small and a big frame you will see they have different information, not just size.

We have no access to additional information when upscaling an image (if it's not ML upscaling like DLSS) so it will not AA anything. Moreover, FSR requires the image to be already well AA before we upscale it.

As for performance. I just tried to upscale a game to 8K and then downscale it to 4K to display it. Since 8K has 4x more pixels than 4K, performance dropped 4x, spending about 80% of my GPU just for scaling. Obviously, the quality has remained almost the same.
Messaggio originale di (ノ°□°)ノ:
Messaggio originale di Kitty Skin:
Thats the thing. FSR AA its not AA, its just a blur filter with some really good AA techs on it. Using FSR to scale up to 2x the image size AND then downscale it will produce WAY better image quality and AA results that any kind of post process AA, since while its not SSAA, its really close to achieving that.

On a side note, TAA, SMAA, NFAA, FLAA and FXAA work against aliasing artifacts by doing comparisons and trying to detect edges and round values. TAA its not possible without proper depth buffer access, thats why reshade TAA dont work as native TAA.

FSR its actually an upscaling tech, so it increase output resolution from a low res image, and if a high resolution image its downscaled, the natural outcome of that its aliasing being reduced, thats how SSAA worked. Obviously FSR its WAY less resource intensive since the upscaling its not the same as rendering at higher native resolution, but given that the aim its to downscale the image again, its not going to be an issue on the lost details since said details where never meant to be displayed on the end rendered frame.

SSAA works differently. This reduces aliasing, not only because the high-resolution image is downscaled, but because the higher resolution contains more pixels and allows geometry to be drawn more accurately with fewer jaggies before being downscaled. If you render a small and a big frame you will see they have different information, not just size.

We have no access to additional information when upscaling an image (if it's not ML upscaling like DLSS) so it will not AA anything. Moreover, FSR requires the image to be already well AA before we upscale it.

As for performance. I just tried to upscale a game to 8K and then downscale it to 4K to display it. Since 8K has 4x more pixels than 4K, performance dropped 4x, spending about 80% of my GPU just for scaling. Obviously, the quality has remained almost the same.

A shame we cant use the FSR image quality from a final rendered image to downscale it later, but yeah, going from 4k to 8k its WAY a lot of GPU power spent on upscaling the image.

On the tech side, no worries, I know how SSAA works from a technical level (im a game developer, so I needed to learn how different AA techs works and from where in the rendering phase they take information and how they work with it), just wanted to use an "easy explanation".

From my experience with your program, even with a non pretty well antialiased image it does wonders compared to other forms of scaling, that being said, its OBVIOUSLY not native resolution, but its pretty much the most closer one can get without information taken from the rendering engine about stuff like edges, depth buffer, etc.

Maybe using it to upscale an image and then clean it from jaggies like most PPAA does and then downscale it again using a simple downscaling algorithm? In theory it should work, not as well as SSAA ofc, but better than no AA at all (in games like for example, NFS Rivals that lacks any kind of AA implementation).

From what I seen in the source code for FSR it does some kind of "image cleaning" at the last part of the image preparation process, is it possible to combine that final preparation with a post AA technique to reduce jaggies before downscaling?

If you want someone to help testing stuff, also let me know, your tool its wonderful and I pretty much want to help with it.
(ノ°□°)ノ  [sviluppatore] 1 set 2021, ore 13:44 
The last step of FSR is sharpening.

For the games that don't have any AA it's better to use some FXAA before FSR as it requires AA image. Will be better effect than applying AA after FSR.
Ultima modifica da (ノ°□°)ノ; 1 set 2021, ore 13:44
Messaggio originale di (ノ°□°)ノ:
I just tried to upscale a game to 8K and then downscale it to 4K to display it.

How did you do it in LS? or do you mean DSR or VSR?
If it's possible to do it in the LS without changing the desktop it's gonna be way better.
Yes 4K to 8K won't make such a difference assuming you have a normal sized monitor
but for me playing 4K or 5K on my 1440p definitely look way better.
The only workaround now would be to keep changing desktop resolution which is annoying back and forth, could something be implemented in LS?
(ノ°□°)ノ  [sviluppatore] 3 set 2021, ore 23:53 
Messaggio originale di BetterWarrior:
Messaggio originale di (ノ°□°)ノ:
I just tried to upscale a game to 8K and then downscale it to 4K to display it.

How did you do it in LS? or do you mean DSR or VSR?
If it's possible to do it in the LS without changing the desktop it's gonna be way better.
Yes 4K to 8K won't make such a difference assuming you have a normal sized monitor
but for me playing 4K or 5K on my 1440p definitely look way better.
The only workaround now would be to keep changing desktop resolution which is annoying back and forth, could something be implemented in LS?

I just changed code to try. If you want we can do a test with some hardcoded resolution. If you confirm it’s worth it I can add it as a feature then.
Messaggio originale di (ノ°□°)ノ:
Messaggio originale di BetterWarrior:

How did you do it in LS? or do you mean DSR or VSR?
If it's possible to do it in the LS without changing the desktop it's gonna be way better.
Yes 4K to 8K won't make such a difference assuming you have a normal sized monitor
but for me playing 4K or 5K on my 1440p definitely look way better.
The only workaround now would be to keep changing desktop resolution which is annoying back and forth, could something be implemented in LS?

I just changed code to try. If you want we can do a test with some hardcoded resolution. If you confirm it’s worth it I can add it as a feature then.


Messaggio originale di (ノ°□°)ノ:
Messaggio originale di BetterWarrior:

How did you do it in LS? or do you mean DSR or VSR?
If it's possible to do it in the LS without changing the desktop it's gonna be way better.
Yes 4K to 8K won't make such a difference assuming you have a normal sized monitor
but for me playing 4K or 5K on my 1440p definitely look way better.
The only workaround now would be to keep changing desktop resolution which is annoying back and forth, could something be implemented in LS?

I just changed code to try. If you want we can do a test with some hardcoded resolution. If you confirm it’s worth it I can add it as a feature then.

Please do! Give us custom upscaled upsampled resolutions
Messaggio originale di (ノ°□°)ノ:
Messaggio originale di BetterWarrior:

How did you do it in LS? or do you mean DSR or VSR?
If it's possible to do it in the LS without changing the desktop it's gonna be way better.
Yes 4K to 8K won't make such a difference assuming you have a normal sized monitor
but for me playing 4K or 5K on my 1440p definitely look way better.
The only workaround now would be to keep changing desktop resolution which is annoying back and forth, could something be implemented in LS?

I just changed code to try. If you want we can do a test with some hardcoded resolution. If you confirm it’s worth it I can add it as a feature then.
A good implementation could be to allow the FSR factor to go below 1. Lets say 0.5. Its simplier than hardcoded resolutions I guess and more possible to fine tune, right?
(ノ°□°)ノ  [sviluppatore] 4 set 2021, ore 8:31 
Messaggio originale di Kitty Skin:
A good implementation could be to allow the FSR factor to go below 1. Lets say 0.5. Its simplier than hardcoded resolutions I guess and more possible to fine tune, right?
Hardcoding is to test only. Of course it will be tuneable if released.
Messaggio originale di (ノ°□°)ノ:
Messaggio originale di Kitty Skin:
A good implementation could be to allow the FSR factor to go below 1. Lets say 0.5. Its simplier than hardcoded resolutions I guess and more possible to fine tune, right?
Hardcoding is to test only. Of course it will be tuneable if released.
I can test if you want, from 1080p (my native res) going to 1440p, etc.
You could upscale to a higher target resolution like 4k from a lower one, run the fsr filter then downscale back to a lower one, but in doing so it might not produce what you think. What you'd be doing is upscaling , say a 1440p image, or a 1.3x FSR image, applying FSR then downscaling to your native resolution (you wouldnt apply fsr then upscale to 4k then back again, as that would do nothing effectively). FSR works by adding "high resolution edges" , which would add the higher resolution edges to the 4k output and that might help w/ some AA and then the downscale would, in theory, capture that to some degree. But it also might capture other unwanted aspects and make the final image worse than intended (blur for example). Its really hard because FSR is "fake 4k". It doesn't add quality to an image, it just tries to sharpen things that all ready exist and make edges better in quality.

An interesting idea though.
Ultima modifica da SteveZee; 4 set 2021, ore 15:07
Messaggio originale di SteveZee:
You could upscale to a higher target resolution like 4k from a lower one, run the fsr filter then downscale back to a lower one, but in doing so it might not produce what you think. What you'd be doing is upscaling , say a 1440p image, or a 1.3x FSR image, applying FSR then downscaling to your native resolution (you wouldnt apply fsr then upscale to 4k then back again, as that would do nothing effectively). FSR works by adding "high resolution edges" , which would add the higher resolution edges to the 4k output and that might help w/ some AA and then the downscale would, in theory, capture that to some degree. But it also might capture other unwanted aspects and make the final image worse than intended (blur for example). Its really hard because FSR is "fake 4k". It doesn't add quality to an image, it just tries to sharpen things that all ready exist and make edges better in quality.

An interesting idea though.

I used Nvidia DSR to run the game between 1200p and 2160p occupying most of my two screens and then enabled LS with FSR and the result was disapointing. It just looks the same :(
< >
Visualizzazione di 1-15 commenti su 21
Per pagina: 1530 50

Data di pubblicazione: 30 ago 2021, ore 15:32
Messaggi: 21