• We should now be fully online following an overnight outage. Apologies for any inconvenience, we do not expect there to be any further issues.

Discussion Ada/'Lovelace'? Next gen Nvidia gaming architecture speculation

Page 47 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

HurleyBird

Platinum Member
Apr 22, 2003
2,812
1,550
136
Fake frames don't respond to user input.

Depends on implementation (and also how you define "respond," but that's out of scope)

If your game loop is 30 FPS, your render loop is 30 FPS, and you're using frame insertion to boost the apparent visual framerate to 60 FPS (eg. the way DLSS 3 works), then your statement is true.

If the game loop is 60 FPS, your render loop is 30 FPS, and you're using frame insertion to boost the apparent visual framerate to 60 FPS, then things diverge based on implementation specifics and context:
  • If you purely forward project (eg. no interpolation. Frame construction is based on previous frames only), input latency will be superior to 30 FPS native, but inferior to 60 FPS native (native meaning both render and game loops running at the same rate with no virtual frame insertion), purely based on the game loop running at twice the speed.
  • If you interpolate (not necessarily the literal definition, but meaning that you are using some form of data from the next frame), then yes, you could say that the "fake" frames are "responding" to your input. The game loop is still running at 60 FPS, and any actions that start between base frames will be captured by the interpolation. But here we diverge again:
    • Ostensibly, you will still suffer a flat(ish) latency penalty since you need to prerender the next frame, or at least, have the next frame ready by the time the virtual frame needs to be inserted. This will add between half a base frame to a full base frame worth of latency.
      • However, it's possible you are already doing such prerendering for other reasons, in which case virtual frame insertion could be a free lunch with no appreciable difference from "native" input latency.
      • It may also be possible that you don't need to complete the next frame in its entirety to interpolate. You may be able to retrieve the information you need earlier on in the rendering loop. This could be used to either:
        • Push the flat latency penalty much closer to 1/2 of a base frame instead of the full base frame penalty, or
        • Not be used to render the next "base" frame at all, but to provide a "skeleton" for the next virtual frame which it is then built on top of. No interpolation, no latency hit.
  • I can think of a few more esoteric scenarios, and there are surely others I haven't thought of, but I'm not going to bother going over every permutation.
Thinking through it, I think the bolded section is probably the best and most likely approach for the future. For the record, I am a gamedev, but not an engine specialist.
 
Last edited:

coercitiv

Diamond Member
Jan 24, 2014
7,380
17,494
136
If the game loop is 60 FPS, your render loop is 30 FPS
I appreciate your detailed input, but I'm afraid you're playing devil's advocate on a matter that is pretty much settled based on the language used by Jensen during the keynote:
Because DLSS 3.0 generates a new frame without involving the game, it benefits both GPU and CPU limited games. For CPU limited games [...] DLSS3.0 allows the ADA GPU to render the game at a much higher framerate than the CPU is able to compute the game.

This launch is Turing all over again: they are pushing the limits of the tech to justify higher prices. DLSS 3.0 is very likely abused the same way they did with 1.0, and we'll need another generational leap for the tech to match the marketing.
 

HurleyBird

Platinum Member
Apr 22, 2003
2,812
1,550
136
I appreciate your detailed input, but I'm afraid you're playing devil's advocate on a matter that is pretty much settled based on the language used by Jensen during the keynote:

I'm not playing devil's advocate for Nvidia at all though. In fact, and I've said so before, I'm highly skeptical that DLSS 3 will be worthwhile at all outside of edge cases. What I am saying is that virtual frame generation is a compelling concept that can go far beyond what DLSS 3 currently offers, and I expect it will become ubiquitous in time when superior implementations come to market.
 

DAPUNISHER

Super Moderator CPU Forum Mod and Elite Member
Super Moderator
Aug 22, 2001
32,052
32,573
146
That was really pathetic. Saying Nvidia's not being greedy, EVGA leaving the business is proof margins are tight. Yeah margins for AIBs sound tight. Not margins for Nvidia with the ridiculous price inflation of their cards ever since Turing.
Guy on PCMR posted this -

vq0bjcg4jcp91.png

cards.jpg
 

DAPUNISHER

Super Moderator CPU Forum Mod and Elite Member
Super Moderator
Aug 22, 2001
32,052
32,573
146
Our fault really, for accepting the crappy visuals of Minecraft and similar games and making them hugely popular.
You hush your mouth Igor! :p Minecraft is the game that got my son to join the PCMR when he was 12. His friend told him about how much better the mod scene was than on 360 where he was playing. I had switched to console so we could play together. I spent 7yrs like that, SEVEN YEARS Igor.

So don't go blaming any of this nonsense on Minecraft or pixel art games. They have their place in the PCMR just as much as Unreal Engine 5 games will.
 

DAPUNISHER

Super Moderator CPU Forum Mod and Elite Member
Super Moderator
Aug 22, 2001
32,052
32,573
146
I imagine it was for the same reason AMD went lowish with RDNA 2 - save power (and of course BOM depending on how much the chips cost) by having 2 less chips. I think the issue continues to be no GDDR7.
Okay.

The price is the problem. A few comments from the thread highlight both the comedy and tragedy of the 40 series -

"Inflation is hitting so hard that both the card model and MSRP are increasing." Comedy gold this one

" Nvidia decided to cut out the middle man and become the scalper themselves."

"They figured out they can cash in on the scalping game. Why let others do it when you can?"
 

DiogoDX

Senior member
Oct 11, 2012
757
336
136
Found another performance slide over the internet.

Lz38DAZ.jpeg


svtUN1G.png


Looking over some bechmarks of F1 2022 and CP2077 with a 3090Ti seems like the 4090 will be about 50% faster in native 4K.
 

Heartbreaker

Diamond Member
Apr 3, 2006
5,166
6,787
136
Depends on implementation (and also how you define "respond," but that's out of scope)

If your game loop is 30 FPS, your render loop is 30 FPS, and you're using frame insertion to boost the apparent visual framerate to 60 FPS (eg. the way DLSS 3 works), then your statement is true.

If the game loop is 60 FPS, your render loop is 30 FPS, and you're using frame insertion to boost the apparent visual framerate to 60 FPS, then things diverge based on implementation specifics and context:
  • If you purely forward project (eg. no interpolation. Frame construction is based on previous frames only), input latency will be superior to 30 FPS native, but inferior to 60 FPS native (native meaning both render and game loops running at the same rate with no virtual frame insertion), purely based on the game loop running at twice the speed.
  • If you interpolate (not necessarily the literal definition, but meaning that you are using some form of data from the next frame), then yes, you could say that the "fake" frames are "responding" to your input. The game loop is still running at 60 FPS, and any actions that start between base frames will be captured by the interpolation. But here we diverge again:
    • Ostensibly, you will still suffer a flat(ish) latency penalty since you need to prerender the next frame, or at least, have the next frame ready by the time the virtual frame needs to be inserted. This will add between half a base frame to a full base frame worth of latency.
      • However, it's possible you are already doing such prerendering for other reasons, in which case virtual frame insertion could be a free lunch with no appreciable difference from "native" input latency.
      • It may also be possible that you don't need to complete the next frame in its entirety to interpolate. You may be able to retrieve the information you need earlier on in the rendering loop. This could be used to either:
        • Push the flat latency penalty much closer to 1/2 of a base frame instead of the full base frame penalty, or
        • Not be used to render the next "base" frame at all, but to provide a "skeleton" for the next virtual frame which it is then built on top of. No interpolation, no latency hit.
  • I can think of a few more esoteric scenarios, and there are surely others I haven't thought of, but I'm not going to bother going over every permutation.
Thinking through it, I think the bolded section is probably the best and most likely approach for the future. For the record, I am a gamedev, but not an engine specialist.

Whether you render the fake frame with forward projection, or interpolation between the frames to hit 60 FPS, you still aren't responding any faster than 30 FPS.

Your claims of using the information from the future frame before it's rendered, is pure fantasy.

You may as well argue we are going to read the back propagating chroniton particles to draw the fake frame that hasn't been rendered yet. ;)

Back in reality, fake frames add nothing. They are motion smoothing like on TVs being sold as real frames.

TV's do this. SteamVR does this.

But NVidia adds fake frames and you think it's the next big thing...
 
Jul 27, 2020
28,173
19,203
146
I think the virtual frames are being created between user inputs. Suppose user presses a key, something on screen changes. Taking that as the key frame, DLSS3 starts rendering fake frames and pushing them to the display. User presses a key again. Now immediately, whatever fake frames have been generated are rendered invalid and have to be discarded. Is this something close to describing how DLSS3 is working its magic, er..., fakery?
 

Stuka87

Diamond Member
Dec 10, 2010
6,240
2,559
136
I think the virtual frames are being created between user inputs. Suppose user presses a key, something on screen changes. Taking that as the key frame, DLSS3 starts rendering fake frames and pushing them to the display. User presses a key again. Now immediately, whatever fake frames have been generated are rendered invalid and have to be discarded. Is this something close to describing how DLSS3 is working its magic, er..., fakery?

Not from what that supposed nVidia employee was tweeting. According to them it inserts a single frame after each key frame. But the software has to guess what the next movement is going to be based off previous frames. But there will inevitably be cases where if the user suddenly decides to move in a different direction, that a perceivable jump will be noticed on screen.

It can't really be between user inputs as often many games have inputs continuously pressed. Such as the W key to make your character run forward. You rarely let up on it.
 
Last edited:

jpiniero

Lifer
Oct 1, 2010
16,840
7,284
136
Eh people have been touting RTX as the "future" yet other than turning it on to see the difference in a game here and there I just turn it off to avoid the huge fps drop. Never once has bothered me.

That's because the consoles don't have enough power to do more than just superficial RT and also 60 fps. So developers don't bother.
 
  • Like
Reactions: Tlh97 and psolord

Paul98

Diamond Member
Jan 31, 2010
3,732
199
106
LOL, it's going to look like you have your main computer case, then a second slightly smaller computer case plugged into you GPU slot
 
  • Haha
Reactions: DAPUNISHER

Heartbreaker

Diamond Member
Apr 3, 2006
5,166
6,787
136
LOL, it's going to look like you have your main computer case, then a second slightly smaller computer case plugged into you GPU slot

I've said for a while that the PC form factor is overdue for an update. We are still using card cages and spacing designed for thin low wattage passive cards.

For a gaming PC, the GPU is the centerpiece, and it ends up poorly cooled because the airflows are all wrong.

Build a form factor around cooling the GPU, then add on the CPU...
 

Leeea

Diamond Member
Apr 3, 2020
3,799
5,566
136
This is glorified "Motion Smoothing" or "Frame Creation" like on practically all modern TVs.

An almost universally derided feature.
-cough-
I love motion smoothing! But TV motion smoothing is very different from what Nvidia is doing here.

The TV delays the display of the frames a bit, so it can look at multiple "key frames", and then generate the fake frames between two known key frames. It has the benefit of knowing what the final frame is going to be. Even then, my lg c1 does screw this up once in a while, and I instantly notice when it does.


Nvidia only has one key frame, and is guessing at what the next frame is going to be. It is just making stuff up. The potential for error is far higher.


It is a fundamental constraint. The whole point of what these systems are doing, are adding FAKE frames, that have nothing to do with the game logic.

Fake frames don't respond to user input.

They aren't adding anything, they just smooth things out at best.

You could literally add this functionality to the Monitor, just like it's in most TVs, which should make it clear, that the real base frame rate, is the only thing that matters.
It is not like most TVs. TVs have both a start and finish key frame.

This only has the start frame, and just guesses at what the finish frame is going to be.

This is very differant.


If your game loop is 30 FPS, your render loop is 30 FPS, and you're using frame insertion to boost the apparent visual framerate to 60 FPS (eg. the way DLSS 3 works), then your statement is true.
This is the current implementation.

What your talking about for a future implementation sounds fantastic.

This sounds a bit like what some VR implementations do, they render the frame, and then check if the user has moved their head prior to display. If the user has, they may distort the frame slightly to compensate.

I think the virtual frames are being created between user inputs. Suppose user presses a key, something on screen changes. Taking that as the key frame, DLSS3 starts rendering fake frames and pushing them to the display. User presses a key again. Now immediately, whatever fake frames have been generated are rendered invalid and have to be discarded. Is this something close to describing how DLSS3 is working its magic, er..., fakery?
The fake frame is generated without any information from the game engine. User inputs are ignored.
 
  • Like
Reactions: igor_kavinski