Nvidia DLSS 3 antialiasing discussion

Is frame generation now considered acceptable (even desirable) ? Haven’t seen many complaints recently from average gamers about latency or artifacting in “fake frames”. Not a lot of media coverage either.
In the cases where I've tried DLSS3 framegen I was shocked by how unaffected I was by the added lag. To the point I kept checking to make sure FG was actually on. I expected to be able to at least notice the extra lag. I'm pretty damn sensitive to that.
 
From my experience with both DLSS and FSR latency is heavily implementation dependent. Some games can be used with FG even at 30-40 pre-FG fps, some require 60+ and even then you can feel the added latency in them.

Some of the better implementations of DLSS FG are path traced games like CP2077 and Portal. One of the best FSR FG implementation to date is in Starfield (on par if not better than DLSS there IMO).

The Talos Principle is an interesting case as DLSS there had a driver bug since launch which they've worked around at some point but then Nvidia fixed the bug - the workaround implementation was very laggy, FSR was less laggy in comparison but with the driver fix DLSS became a lot less laggy and is now beating FSR there I'd say.

Other interesting comparisons include the fact that with DLSS you can pretty much force vsync in the driver and forget about further tweaking as "it just works". There are some minor issues with frame pacing on fast changes between "lite" and "heavy" frames (like looking at the sky and down again with a mouse) but they are tolerable and you generally get a fine experience above 90 visible fps with gsync (can be lower in some games).

With FSR you really need to lock the frame rate to some number which you will be hitting all the time as leaving it unlocked will lead to heavy frame pacing issues. This makes it harder to tweak into an optimal state than DLSS and you're loosing some performance in areas which can go higher than the limit but otherwise it does work surprisingly well when integrated properly.

On the latter note both DLSS and now FSR had botched integrations which just doesn't work. With FSR these are Avatar as of last couple of patches and TLOUP1. Enabling FSR FG in these don't improve the fps or do anything really at the moment. DLSS had is share of such borked integrations too. All of them were fixed eventually IIRC.

Perhaps it's different now but I played through Portal RTX when it launched and FG was simply too 'floaty' for me. Thankfully ultra-perf mode looks very decent in this game and I used that.

Cyberpunk otoh has been way better and though I can still feel the added latency since my base frame-rate is less than 60, it's still quite playable. Maybe FSR3 decoupling and addition will improve this even further since DLSS FG seems to be more computation heavy.

Not sure what the frame-pacing results should be, the Avatar review by ComputerBase had 7900XTX running merrily while 4080 was hitching all over the place. I have not kept up with this game so maybe it was a bug, since they say DLSS FG also has issues on the nvidia card.


Looking towards future, when people tested out 8k FG they found huge amounts of VRAM usage( 5-6GB ) and no performance improvement. Maybe the OFA is limited to 4k and would need improvement in the next-gen.

Also I had high hopes for FG to become a driver toggle, like AMD have done it, when Jensen made his 40xx series announcement.
 
March 26, 2024
Horizon Forbidden West: DLSS vs. FSR vs. XeSS Comparison Review | TechPowerUp
The PC release also has support for NVIDIA's DLSS Super Resolution, Frame Generation (also known as DLSS 3), NVIDIA's Deep Learning Anti-Aliasing (DLAA), Intel's Xe Super Sampling 1.2 (XeSS 1.2) and AMD's FidelityFX Super Resolution 2.2 (FSR 2.2) from day one. AMD's FSR 3 Frame Generation isn't supported on launch day, but the developers will add it in a future update.

All implemented upscaling solutions are able to use Dynamic Resolution Scaling (DRS) at 30, 45 and 60 FPS, a very welcome feature. When DRS is active, the internal resolution will scale from 100% to a maximum of 50% in more demanding scenes.

In order to run Horizon Forbidden West at maximum graphics settings and reasonable framerates at native resolution, quite a powerful GPU is required, which is why upscaling solutions are so important. But depending on the game, there can be differences in the implementations of NVIDIA's DLSS, Intel's XeSS and AMD's FSR, so we are keen to take a look at how temporal upscalers perform in Horizon Forbidden West.
 
Streamline 2.4.0 + DLSS 3.7 released

Some interesting things here. DLSS now has Preset E, which is the new default.

This in particular though caught my eye:

Added support for upscaling Alpha in sl.dlss.

Comments from the author of DLSS Tweaks:

emoose said:
Preset E is interesting, but the alpha upscaling is even more so, seems this has to be enabled by the game itself by setting alphaUpscalingEnabled SL flag, which then sets a DLSS creation flag:

https://github.com/NVIDIAGameWorks/...b35/source/plugins/sl.dlss/dlssEntry.cpp#L391

SL docs mentions the following about it:

experimental alpha upscaling, enable to upscale alpha channel of color texture
NOTE: Alpha upscaling (DLSSOptions::alphaUpscalingEnabled) is experimental, and will impact performace. This feature should be used only if the alpha channel of the color texture needs to be upscaled (if eFalse, only RGB channels will be upscaled).
NVSDK_NGX_DLSS_Feature_Flags_AlphaUpscaling is the new DLSS creation flag added, should be pretty easy to add to DLSSTweaks since we already have stuff to force AutoExposure flag, probably just need to update the DLSS headers with the new ones from SL & add code to read/set it from INI.

Very curious to learn more about what "Alpha upscaling" is.
 
@Flappy Pannus

From DLSS tweaks

experimental alpha upscaling, enable to upscale alpha channel of color texture

NOTE: Alpha upscaling (DLSSOptions::alphaUpscalingEnabled) is experimental, and will impact performace. This feature should be used only if the alpha channel of the color texture needs to be upscaled (if eFalse, only RGB channels will be upscaled).

 
Streamline 2.4.0 + DLSS 3.7 released

Some interesting things here. DLSS now has Preset E, which is the new default.

This in particular though caught my eye:

Added support for upscaling Alpha in sl.dlss.

Comments from the author of DLSS Tweaks:



Very curious to learn more about what "Alpha upscaling" is.
It says that it can upscale the alpha channel if your frame buffer has one. This is often not used in games but it can be used to make transparent windows. So the use of this is very niche but still cool that they add support to this.
 
It says that it can upscale the alpha channel if your frame buffer has one. This is often not used in games but it can be used to make transparent windows. So the use of this is very niche but still cool that they add support to this.
In games destination alpha was used in Playstation2 era for some multitexture effects.

Basically one write mask into it where you wanted future pass to be visible.
Funnily one of the use was to have reflective windows on building.

Things would have been so much better with modern texture sampling.

I really wonder where modern games have used destination alpha..
 
The final render target that DLSS upscales would never use alpha channel because the scene has already been composited, no? I'm trying to think of what case you'd need to upscale a texture with an alpha channel, unless there was an additional compositing step afterwards. Maybe ui? Is there some reason you'd want to upscale a ui that has some level of transparency? Usually ui is not expensive (I don't think) so not sure why you'd want to upscale it instead of just rendering it native and compositing.

Is there a reason why you might want to use the alpha channel from the previous frame? I wonder if DLSS ever interpolates samples between two frames, or if it's just selecting the best sample from history.

From the new DLSS programming guide
3.16 Alpha Upscaling Support
By default, DLSS is intended for 3-channel RGB images, only. Experimental support for upscaling 4-
channel RGBA images can be enabled by setting the NVSDK_NGX_DLSS_Feature_Flags_AlphaUpscaling
flag at creation time. For best results, the RGB color should be premultiplied by alpha in the color input.
Note: performance will be impacted by enabling this feature. Expect the overall execution time of DLSS
to increase by 15-25% when alpha blending is enabled.


The biggest thing I can think of is not gaming. Maybe you're rendering something real-time that's going to be composited on top of video, like maybe an augmented reality device. You could render a 3D interface or character, upscale it (to save power/performance) and then composite it on top of a video feed. You could have 3D ui or objects with transparency or translucency.
 
Last edited:
April 7, 2024
# This allows setting a single global DLSS DLL for games to use
# If the global version is newer than the one included with game, it should get loaded automatically

If you save that script as a powershell module, then you can just run "UpdateDLSS" inside powershell whenever new DLSS versions show up, point it to the downloaded nvngx_dlss.dll, and it should handle copying the files/updating INI for you
 
Back
Top