Reasoning about controller to display latency can be non-intuitive in modern game engines where multiple independent timelines are running in parallel. In this presentation, we analyze the path that data flows through each of these timelines, from the input sample out to the video scan-out hardware. By identifying and measuring segments on this path, a dynamic throttle can be implemented to squeeze the input sample as close to the end of the frame as possible without dropping frames. Special attention is placed on how latency is introduced in the interaction between the GPU and display scan-out timelines when Vsync is enabled.
Click here for the presentation PDF