In this article I would like to discuss the current state of Variable Refresh Rate or VRR in Linux when using an NVIDIA graphics card. Over my years of being a Linux user I have not seen the growth I thought I might.
why is it a problem?
Ever since switching to Linux full time back in around 2020 I have not seen any major improvement in reguards to Variable Refresh Rate or VRR in Linux. I switched full time to Linux back in the early days of the pandemic as a way to challenge myself to become a better more well rounded Computer Science student. However ever since switching there has always been 1 thing that has kept the operating system from feeling as good as Windows in terms of end-user exierence. This boiled down to various things I attempted to fix but all stemming from the general feel of the OS. Linux always felt sluggy and windows didnt move as smooth as on Windows. As I dug deeper into what this issue was I learned of the acient beast that is X11. The old creature thy refuse to let die. X11 was originally released in 1987 and still has so much left over useless old code that is holding back what modern displays are capable of. The designers of X11 never had in mind that people would have giant 8K TV’s all running in parralell as a banner ad for a Movie Theater, yet today that would be a perfectly reasonable real world deployment cause for X11 to be in use. Yet the old code in X11 prevents users from being able to do complex tasks with their displays like Variable Refresh Rate a feature that was released more than 30 years afterward. Today our Displays require an insane about of data to be sent down with new displays pushing upwards of 480hz the acient beast that is X11 simply can not survive.
what is the solution?
The solition to the acient beast that is X11 is Wayland. Wayland offers promisng hopes that it will be able to bridge the gap and acomidate new features that modern displays require. However with all the hype that people love to give Wayland and admittedly so to some degree, Wayland is not all it is cracked up to be. Wayland does not work well on NVIDIA GPU’s whatsoever. I have tried for years, encountering flickering, incorrect resolutions, screen tearing, almost every issue you could possibly have with a display. Yet I still kept using Arch and trying to get Variable Refresh Rate working I did everything possible in my window manager at the time Hyprland but I simply could not get it to work after months of trying. Eventually I bricked that Arch install and moved to Debian 12 after it was released for its at the time somewhat up to date packages on release and stability. After my familiarity with Arch I felt like a god on Debian. I did even manage to get Variable Refresh Rate working by simply using 1 monitor and using stable NVIDIA drivers. However it all went wrong when I baught a second monitor. I added a second monitor to my setup and instantly fell in love with my ability to write code especially for front-end web development much quicker, being able to see the live changes on a second monitor in fullscreen became something I could not live without. However at the end of the day when I went to go play games with my friends, I realized that my screen didn’t feel nearly as responsive. I had changed nothing in my NVIDIA settings to control VRR, yet I realized only after looking on countless forums that VRR does not work when you have NVIDIA and are using X11 or Wayland. If you try to use Mixed Refresh Rate Multi-Monitor arnagements it simply will not work on NVIDIA. I understnad it is a hard concept to decribe and get to the bottom of but this is truly a major hurdle for Linux to overcome. I’ve waited quietly running a ‘sudo apt update’ every chance I got. Yet in the 4 years I have been using Linux I have seen no growth on this whatsoever.

