Basic said:
Chalnoth said:
2.
...there are already a number of frames of latency in normal rendering anyway...
Yes, there are other places that contribute to the latency, but none of them get any faster by AFR.
Actually, they do. The other latencies in the system, provided you are GPU-bound, are waiting for the graphics card to do its thing. So, if more frames can be rendered in the same amount of time, then the other latencies in the system are reduced.
Even if there's only one frame of latency in the driver (there has to be at least one for the CPU and GPU to operate independently), AFR will reduce total latency. Consider:
Let's imagine that total rendering time takes 30ms for one graphics card, and that it takes 15ms to do the CPU side of the calculation. Here, then, is the total delay:
Input -> 15ms for the CPU to prepare the frame.
30ms waiting in the driver until frame sent to GPU.
30ms for the graphics card to render the frame -> output
Total latency: 75ms
Now, imagine we put another card in SLI mode here. You still have to wait 15ms for the CPU to prepare the frame, and 30ms for the graphics card to do its rendering, but since a graphics card will be available to start rendering every 15ms (instead of every 30ms), the above then looks like:
Input -> 15ms for the CPU to prepare the frame.
15ms waiting in the driver until frame sent to a GPU.
30ms for the graphics card to render the frame -> output
...reducing total latency to 60ms. This isn't as small as if you had a graphics card that could render twice as fast, but it's still better latency than just one graphics card rendering at the same speed as each individual SLI card.
Now, keep in mind that when comparing these latencies to network latencies that with network latencies you have the additional factor of not having infinite bandwidth. Basically, if too many things change between subsequent frames, the server just won't be able to send all of that changed information to you quickly enough. This means that the "ping" to the server is not necessarily the total latency between when an object is updated server-side and when it is updated on your computer.