2mg wrote: ↑31 May 2026, 21:28
When a buffer "opens up", the difference between 60 and 120FPS caps (both with 60FPS Vsync) is that with 120FPS capped GPU renders the frame 2x faster into that buffer and goes to sleep again, so I still don't see 120FPS cap having more backpressure/latency since number of buffers used are the same between 60 and 120FPS - unless it's exactly that 2x speed @120 what PC LAT considers as having ~2x more latency compared to @60?
An FPS cap doesn't affect how fast the GPU is rendering each frame. It only blocks the game from presenting rendered frames faster than the FPS cap. This blocking is what prevents vsync backpressure because that blocking prevents the game from starting to work on the next frame too early.
When a game starts preparing a new frame, what happens is that it first reads the current input state from mouse/kb/controller, then creates a new game scene based on that input state, and then submit that scene to the GPU for rendering. When all frame buffers are filled (because the game is submitting these scenes to the GPU too fast and thus the GPU renders them into those frame buffers,) vsync will block the game
after this new scene has been prepared for rendering, not
before. That means this old yet to be rendered scene is sitting around, and by the time vsync unblocks it so it can be submitted to the GPU for rendering, the input it's based on is very old. When frames you finally see on the screen are based on old input, you get lag. This is what vsync backpressure is. All frame buffers are filled and as a result the game is prevented from submitting new frames to render, but this prevention happens at the worst possible time - after the game has already sampled player input. So in the end, every single frame you see has gone through this and is based on old input, on top of the fact that it's been sitting around in a frame buffer for a while.
An FPS limiter prevents all this from happening.
Now, if your FPS limit is above your refresh rate, this means the FPS limiter is doing nothing. At 60Hz, each frame is presented every 16.7ms. A 120FPS limit only kicks-in if the presentation interval is smaller than 8.3ms. So it doesn't do anything. Yes, the very first few frames will trigger the limiter, but it doesn't matter. After the frame buffers are filled (2 or 3 frames) vsync backpressure kicks in. Again, keep in mind that the FPS limiter doesn't control how fast the GPU is rendering. It only controls how often the game is allowed to present a new frame. Blocking on frame presentation is not the best place to do frame limiting, but it still is a hell of a lot better than the place vsync blocks at, and it still prevents backpressure. This is for external FPS limiters. In-game limiters can do this block at an even better spot in the chain, reducing latency even further than external limiters. (For example by blocking within the game's code, right before sampling player input.)