I have a dumb question: Why is VRR such a big deal for some? Even factoring in that VRR can reduce stutters, and/or screen tearing since it's adjusting the display's refresh rate on the fly (Like FreeSync, or GSync on PC), is it considered a better solution than just locking a frame rate? I know depending on the buffering solution, latency could be an issue with regards to controller input (V-Sync I believe is notorious for adding additional latency to a player's input), so is VRR meant to counter that?
VRR opens up frame rates that otherwise don't exist.
Imagine a 60hz screen kind of like train stop. Specifically, a train stop in Japan, where everything is
precisely on time. Every 1/60th of a second, the train shows up, an picks up the passengers. Our passengers in this case are the pixels, with the cars at the front taking the pixels for the top of the screen, and the cars at the back take the bottom.
The train is unerring, it never misses. But what about the passengers? If they don't also exactly sync themselves with the train, you'll get
tearing where the pixels from one frame get on at the front, and then pixels from the next frame run into the station and dash into the cars at the end.
The solution, as you mention, is buffering and/or a frame limit. A stationmaster with a whistle, on the platform, ensuring that each train has only the passengers/pixels for each frame. But what if you don't have all your pixels/passengers for a full train?
Well, the train has to go empty, which means on your screen you see the last frame for 1/60th of a second longer. You drop a frame, no big deal most of the time. But what happens if it's consistent frame droppage? Let's imagine that for every 60 refreshes you have 45 frames - 45 sets of passengers for 60 trains.
You get
judder. Some frames will persist on screen for two refreshes - an empty train car - and some will persist for one refresh- two full train cars in a row. But it's worse than that, because
animations are running at
a smoothly paced 45fps. Think of Link's running animation like a flip book. It's got 45 pages, and if you flip it smoothly, you get a smooth run. Now pick out 15 of those pages, copy them and stick them back into the flip book. 15 times a second, Link will seem to slow down and speed up.
The traditional solution to that is a frame limiter. The stationmaster with his whistle guarantees that the trains are filled in a way that ensures even pacing. The fastest
evenly paced frame rate below 60fps is 30fps. So if your game can hit 50fps, no problem, you're still probably running at 30fps.
But not imagine that the stationmaster is allowed to
hold the train till it fills up, then send it on the instant that it does. And when he does hold the train, the next one queues up behind it, so after that brief period of slow down, he can speed up. Not only is he not stuck to sending exactly 60 trains every second, but he can slightly vary how much delay there is between each train.
Now we can get judder-free frame rates between 30 and 60fps. If your game can deliver high-ish-but-not-60-fps you can give that smoothness to the player.
This is true even if you do a locked frame rate. A "locked 40" just isn't possible without judder on a traditional screen.
It also smoothes out the problems with even random frame drops. If a 60fps game is slightly late on a single frame, you don't wait a full refresh to send the frame out, it'll be late, and you'll get brief judder. With VRR, the frame goes out when it's ready, and so you might perceive the reduction in frame rate, the animation and frame persistence will be correct.
And I suppose also, in the PC spectrum, why would you let your PC always run at max frames all the time? For me personally, if I can run a game at let's say a rock solid 60fps, but could vary up to 100fps, I guess I'd rather limit the frames possible (through something like RivaTunerStatistics through MSI Afterburner), and save on the resources so my computer isn't running at 100% max power all the time.
Really common on Steam Deck, in fact, to save battery power. That's why the frame limiter is baked into the OS. But for folks with big beefy desktops, who want high frame rates, 60fps isn't cutting it, but they can't push their game to 120fps, that's what VRR is for.
But VRR reduces screen power draw, because it doesn't need to "waste" screen refreshes when there isn't new data to display.
I guess my main question is: Is VRR the be all end all solution, or is it overhyped? What are the disadvantages of using it as well as the advantages?
Only VRR disadvantage (as opposed to a fixed frame rate) is that the cost of the screen is higher, and it requires some complexity on the part of the game developer to make sure that they are sending a vsync signal that matches the frame rate they're delivering. If you're on UE5, basically it's free. If your engine has a solid frame-limiter already, 80% of the work is in place. If your frame-limiter is awful (see any From Software game) then you might have some more work to do, but even there, drivers can step in and patch up the problem in many cases.