Wednesday, February 13th 2019

NVIDIA DLSS and its Surprising Resolution Limitations

TechPowerUp readers today were greeted to our PC port analysis of Metro Exodus, which also contained a dedicated section on NVIDIA RTX and DLSS technologies. The former brings in real-time ray tracing support to an already graphically-intensive game, and the latter attempts to assuage the performance hit via NVIDIA's new proprietary alternative to more-traditional anti-aliasing. There was definitely a bump in performance from DLSS when enabled, however we also noted some head-scratching limitations on when and how it can even be enabled, depending on the in-game resolution and RTX GPU employed. We then set about testing DLSS on Battlefield V, which was also available from today, and it was then that we noticed a trend.

Take Metro Exodus first, with the relevant notes in the first image below. DLSS can only be turned on for a specific combination of RTX GPUs ranging from the RTX 2060 to the RTX 2080 Ti, but NVIDIA appear to be limiting users to a class-based system. Users with the RTX 2060, for example, can't even use DLSS at 4K and, more egregiously, owners of the RTX 2080 and 2080 Ti can not enjoy RTX and DLSS simultaneously at the most popular in-game resolution of 1920x1080, which would be useful to reach high FPS rates on 144 Hz monitors. Battlefield V has a similar, and yet even more divided system wherein the gaming flagship RTX 2080 Ti can not be used with RTX and DLSS at even 1440p, as seen in the second image below. This brought us back to Final Fantasy XV's own DLSS implementation last year, which was all or nothing at 4K resolution only. What could have prompted NVIDIA to carry this out? We speculate further past the break.
We contacted NVIDIA about this to get word straight from the green horse's mouth, hoping to be able to provide a satisfactory answer to you. Representatives for the company told us that DLSS is most effective when the GPU is at maximum work load, such that if a GPU is not being challenged enough, DLSS is not going to be made available. Accordingly, this implementation encourages users to turn on RTX first, thus increasing the GPU load, to then enable DLSS. It would thus be fair to extrapolate why the RTX 2080 Ti does not get to enjoy DLSS at lower resolutions, where perhaps it is not being taxed as hard.

We do not buy this explanation, however. Turning off VSync alone results in uncapped frame rates, which allow for a GPU load nearing 100%. NVIDIA has been championing high refresh rate displays for years now, and our own results show that we need the RTX 2080 and RTX 2080 Ti to get close to 144 FPS at 1080p, for that sweet 120+ Hz refresh rate display action. Why not let the end user decide what takes priority here, especially if DLSS aims to improve graphical fidelity as well? It was at this point where we went back to the NVIDIA whitepaper on their Turing microarchitecture, briefly discussed here for those interested.

DLSS, as it turns out, operates on a frame-by-frame basis. A Turing microarchitecture-based GPU has shader cores for gaming, tensor cores for large-scale compute/AI load, and RT cores for real-time ray tracing. As load on the GPU is applied, relevant to DLSS, this is predominantly on the tensor cores. Effectively thus, a higher FPS in a game means a higher load on the tensor cores. The different GPUs in the NVIDIA GeForce RTX family have a different number of tensor cores, and thus limit how many frames/pixels can be processed in a unit time (say, one second). This variability in the number of tensor cores is likely the major reason for said implementation of DLSS. With their approach, it appears that NVIDIA wants to make sure that the tensor cores never become the bottleneck during gaming.

Another possible reason comes via Futuremark's 3DMark Port Royal benchmark for ray tracing. It recently added support for DLSS, and is a standard bearer to how RTX and DLSS can work in conjunction to produce excellent results. Port Royal, however, is an extremely scripted benchmark using pre-determined scenes to make good use of the machine learning capabilities integrated in DLSS. Perhaps this initial round of DLSS in games is following a similar mechanism, wherein the game engine is being trained to enable DLSS on specific scenes at specific resolutions, and not in a resolution-independent way.

Regardless of what is the underlying cause, all in-game DLSS implementations so far have come with some small print attached, that sours the ultimately-free bonus of DLSS which appears to work well - when it can- providing at least an additional dial for users to play with, to fine-tune their desired balance of visual experience to game FPS.
Add your own comment

102 Comments on NVIDIA DLSS and its Surprising Resolution Limitations

#101
bug
ratirtIn your previous post you said I'm wrong that all and that the DLSS has nothing to do with RTX. I don't know what you tried but it is definitely not explaining anything. On top of that. Saying that DLSS enhances low quality image is crazy. It's been said that DLSS reduces the res of the image in comparison to TAA and that's what longdiste wrote.
You think DLSS is lowering the quality of a 4k image. It is not, because there is no 4k image being rendered. Instead, a 1440p image is being rendered and it is then upscaled to that it looks acceptably close to an actual 4k image. DLSS doesn't care if the source image is rendered uses RTX or not.

As Nvidia have stated, DLSS is based on learning. Currently, the number teaching samples is limited. As the number of teaching samples increases, supposedly DLSS will be able to generate images that are closer to the real thing.

It also doesn't matter how images look up close, it matters how the game in motion looks like. And if that sounds confusing, try pausing an otherwise crisp video on Youtube and look at the quality of the picture you get ;)
Posted on Reply
#102
Aquinus
Resident Wat-man
ratirtI know it's intended and advertised as such but I really doubt it does for what it was intended. I've got a serious problem believing this upscaling.
I don't. Machine learning is supposed to be good at filling in the blanks and this isn't a case where filling in the blanks needs to be perfect. It is literally a perfect situation for machine learning (if there is enough time to do the math.) If a GPU is under heavy load, it's going to be spending a lot of time (relatively speaking,) to render a frame. DLSS just renders a sizable portion of the frame while the tensor cores "fill in the blanks" after the fact. It's to give the illusion that you're running at say, 4k instead of 1440p. Dropping the resolution makes it easier for the rest of the GPU to render the frame and the otherwise unused resources of the tensors cores are then given a task after the frame has been rendered and stored in the framebuffer. This lets the tensor cores do their work while the next frame is already getting rendered.

This actually makes perfect sense, the problem though is that you shouldn't need this kind of trickery with hardware that's this fast and this expensive. This really should be a feature for slower GPUs where the GPU itself being a bottleneck is much more likely. It's also entirely possible that you need enough tensor cores to do it, in which case you already need a lot of (tensor,) resources available to do it. If that's really the case, it's benefit (to me,) seems marginal.

NVidia really likes its smoke and mirrors.
Posted on Reply
Add your own comment
Dec 21st, 2024 20:32 EST change timezone

New Forum Posts

Popular Reviews

Controversial News Posts