[ANNOUNCEMENT] Adaptive Sync / Freesync / VRR not working

Linux 6.8.3, 6.7.12 (end of life) and 6.6.24 released with VRR patch

1 Like

image

That in gnome?

Yep. With kernel 6.8.3

I wonder how long before mainstream Fedora gets it. Currently on Fedora 39 and on 6.5.10-200.fc38.x86_64

Fedora 40 should be out on Apr 16 with 6.8. I am in batch 9, so that will be perfect timing for me :slight_smile:

I’ve tested from f40. Works pretty stable

1 Like

I can’t wait for F40 then. :slight_smile:

I’ve done some testing with f39-kde using kernel 6.8.4, VRR is working. It’s stable.
But…
I can see no difference in idle desktop usage, whereas manually running at 60Hz reduces power usage by about 0.8W on my setup.

No idea where the issue is, but running powertop I still get about ~165 interrupts to AMDGPU, even when the interrupts to kwin drops to ~70.
Without VRR both will sit at about ~165, but as I said, no power measurement change.

I’ll try it with F40 kde plasma 6 soon, maybe it’s a compositor thing.

F40 plasma is worse, my external screen blanks for a second irregularily when enabling VRR. But there are kernel issues with 6.8.4 that affects amd power management.

On the positive side, F40 seems to do better re power management.

what are those issues?

Missing kernel module for power management. affects both cpu and gpu

ah k, they’re enabled here on Arch Linux, both loaded too

why i am unable to see it on fedora 40 kernel 6.8.7?

gsettings set org.gnome.mutter experimental-features "['variable-refresh-rate']"

the problem is that i am unable to use it with fractional scaling when i enter it is there a comand to use both?

Are you sure this actually landed in 6.9? I’m on a freshly booted 6.9 compiled from sources, variable-refresh-rate is enabled in dconf and I’m on Gnome 46.1. Yet nothing about prefered refresh rate showing in settings.

drm_info | grep vrr shows 9 entries, yet only the one under connector 0 is set to 1, while the other 8 are still 0.

drm_info | grep vrr
│   │       ├───"vrr_capable" (immutable): range [0, 1] = 1
│   │       ├───"vrr_capable" (immutable): range [0, 1] = 0
│   │       ├───"vrr_capable" (immutable): range [0, 1] = 0
│   │       ├───"vrr_capable" (immutable): range [0, 1] = 0
│   │       ├───"vrr_capable" (immutable): range [0, 1] = 0
│   │       ├───"vrr_capable" (immutable): range [0, 1] = 0
│   │       ├───"vrr_capable" (immutable): range [0, 1] = 0
│   │       ├───"vrr_capable" (immutable): range [0, 1] = 0
│   │       ├───"vrr_capable" (immutable): range [0, 1] = 0
Linux  6.8.8-300.fc40.x86_64 #1 SMP PREEMPT_DYNAMIC Sat Apr 27 17:53:31 UTC 2024 x86_64 GNU/Linux
gnome-shell --version
GNOME Shell 46.1

image

Debian testing, KDE Plasma 5, appears that it detects the internal screen as VRR capable just fine, I see Adaptive sync setting in the Display Configuration setting.

Interesting. Maybe something didn’t fully reload. Just waking up from hibernation today and now it shows up.

Is there some kind of universal fps counter overlay for Linux to check how well this works?