This concerns a multi monitor setup with different refresh rates (e. g. 1 with 60hz and 1 with 144hz).
The text below is part of the linked article. If you have both nvidia and picom installed, check both sections.
NVIDIA (propietary)
- Open
nvidia-settings
- Go to 'X Server Display Configuration'
- In the bottom right, Click on 'Advanced...' if it says 'Advanced...'
- Make sure anything regarding 'force composition pipeline' is checked off
- Make sure you selected the highest refresh rates possible. You can either select it through the settings, configure it with
xrandr
or with your DEs Display Settings, is applicable
picom
- Make sure to start picom with
--no-vsync
Misc
If it still doesn't work, try settings these environment variables:
CLUTTER_DEFAULT_FPS=<your highest refresh rate>
__GL_SYNC_DISPLAY_DEVICE=<your highest refresh rate display>
__GL_SYNC_TO_VBLANK=0
Find the DISPLAY_DEVICE name with xrandr | grep connected
Add the text block above to /etc/environment
(Tip: Use EDITOR=<your editor, if EDITOR is not set anywhere else> sudoedit
instead of sudo nano
or sudo vim
)
-> sudoedit /etc/environment
Thanks for the write up. I'll share what my experience as well. I'm currently using a 75 Hz and a 144 Hz GSYNC-compatible monitor, with force full composition pipeline on for both, at their max refresh rates, and I'm getting correct refresh rates for both monitors. I'm not using picom because I see no window tearing (probably from force full composition pipeline being on) and have no need for fancy animations. Although when I turn picom on with the
--no-vsync
flag, refresh rates are still correct but I'm getting a tiny bit of input delay and slightly janky scrolling.I remember seeing a bug report / issue thread somewhere and that Xorg now prioritizes the display with the highest refresh rate, at the cost of the other one being a bit janky (so 144 Hz and 72 Hz work because 72 is a multiple of 144, but 144 Hz and 60 Hz will mean the 60 Hz display is janky, but the 144 Hz one is smooth).
When gaming though, I have to turn off the second monitor, turn off composition pipeline to get GSYNC to work.