Ok, let's walk through this hypothetical. To help keep it all straight, let's adjust the naming standard of our frames to R
n for "rastered" frames, and F
n for frame-generated frames.
The first rastered frame (R0) wouldn't have to be delayed, it would just be rastered and sent. It's now queued up as the first reference frame for DLSS:FG. It wouldn't do us any good to hold it, because at this exact moment we have no idea when the next rastered frame will be ready, it's a total dataset of n=1.
The second rastered frame (R1) would come whenever it's done. Let's keep your example of 16.7ms frame time, but this time we can't send it yet -- we need it as the second sample to begin creating our F-frames.
In your hypothetical, frame-generation takes no time (I like this, it makes the math easy) , so F1 is displayed at the 16.7msec mark, but represents only the halfway point between R0 and R1. We then wait 8.3msec to show R1 to keep the pacing. This means we have:
R0 is displayed ----> 16.7mec ----> R1 is created but F0 is displayed----> 8.3msec ----> R1 is displayed ---->...
Alright, so now we need to wait for R2 to be created. It's gonna come through at another 16.7msec, and when it does arrive, we instead hold it and generate the new F-frame, wait 8.3msec again, and show R2. And then we repeat the cycle:
R0 is displayed ----> 16.7mec ----> R1 is created but F0 is displayed----> 8.3msec ----> R1 is displayed ----> 8.3msec ----> R2 is created but F1 is displayed ----> 8.3msec ----> R2 is displayed
And then the pattern repeats, this time I'll shorten the arrows to indicate 16.7msec vs 8.3msec:
R0 ----> F0 -> R1 -> F1 -> R2 -> F2 -> R3 -> F3...
Ok, I get it. That does make sense. Good to get myself straight
I've gone back to give both of your posts the thumbs up for the education, hehe...
Alright then, so why would FG care about motion vectors and depth? That data seems utterly pointless.