What Anti-Lag does is throttle the CPU work to reduce this delay to as low as sub-frame, so it doesn't process input and begin frame processing until closer to display time -- so the game starts frame updates with fresher input and gets those frames out with less delay. Graphics APIs often only allow setting the frame queue length in an integer number of frames and it can be difficult to reliably tell when frames present and control frame queuing, especially with a compositor involved. This has the graphics driver involved, so it knows the absolute truth of when frames hit the output.
Wouldn't the game limit that to 2-3 frames at most?
> Graphics APIs often only allow setting the frame queue length in an integer number of frames and it can be difficult to reliably tell when frames present and control frame queuing, especially with a compositor involved.
I'm pretty sure you can control the swap chain using DXGI:
> Use DXGI 1.3 to reduce the effective frame latency by waiting for the swap chain to signal the appropriate time to begin rendering a new frame.
https://learn.microsoft.com/en-us/windows/uwp/gaming/reduce-...
If you don't underestimate the render time (and miss the refresh) then the frame will be fresher.