Bug 2274331 - Flickering on dual screen setup, AMD GPU
Summary: Flickering on dual screen setup, AMD GPU
Keywords:
Status: NEW
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: 39
Hardware: x86_64
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Kernel Maintainer List
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2024-04-10 11:47 UTC by Philippe Normand
Modified: 2024-07-06 14:14 UTC (History)
19 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: ---
Embargoed:


Attachments (Terms of Use)
dmesg output (121.72 KB, text/plain)
2024-04-10 11:50 UTC, Philippe Normand
no flags Details

Description Philippe Normand 2024-04-10 11:47:09 UTC
1. Please describe the problem:

After updating from 6.7.10-200.fc39 → 6.8.4-200.fc39 I started seeing glitches on one of my monitors. It was discussed in the forum (there is a video showing the issue too): https://discussion.fedoraproject.org/t/flickering-on-dual-screen-setup-amd-gpu/112248

2. What is the Version-Release number of the kernel:

6.8.4-200.fc39

3. Did it work previously in Fedora? If so, what kernel version did the issue
   *first* appear?  Old kernels are available for download at
   https://koji.fedoraproject.org/koji/packageinfo?packageID=8 :

6.7.10-200.fc39 worked. 6.8.4-200.fc39 does not.

4. Can you reproduce this issue? If so, please provide the steps to reproduce
   the issue below:

Nothing to do, the glitch randomly appears in GNOME.

5. Does this problem occur with the latest Rawhide kernel? To install the
   Rawhide kernel, run ``sudo dnf install fedora-repos-rawhide`` followed by
   ``sudo dnf update --enablerepo=rawhide kernel``:

No idea.

6. Are you running any modules that not shipped with directly Fedora's kernel?:

No.

7. Please attach the kernel logs. You can get the complete kernel log
   for a boot with ``journalctl --no-hostname -k > dmesg.txt``. If the
   issue occurred on a previous boot, use the journalctl ``-b`` flag.

I'll do that in a follow-up comment.

Reproducible: Always

Comment 1 Philippe Normand 2024-04-10 11:50:59 UTC
Created attachment 2026121 [details]
dmesg output

Comment 2 Philippe Normand 2024-04-10 12:11:19 UTC
Is the rawhide kernel installable on Silverblue?

Comment 3 sam.kerr2009 2024-04-26 14:02:06 UTC
Me and another user also has the same bug, thinking its a kernel issue, since 6.7.11-200.fc39.x86_64 kernel is stable, where as 6.8.4-200.fc39.x86_64 onwards even fedora 40 is causing the weird artifact.

After some more investigation it seems to be due to VRR or something along refresh rates. Every time I hover over a icon, folder etc the artifact triggers.

Landscape (flipped) on gnome 46 doesn't cause the artifact, apart from logging out and in again.

Other spins still cause artifacting X11 and KDE both been tried.

Comment 4 Philippe Normand 2024-05-12 08:45:28 UTC
Also happening with 6.8.9-200.fc39. I could see the flickering even during the LUKS password prompt at boot time, on both monitors.

Comment 5 Thomas Schuett 2024-05-22 13:22:03 UTC
Same problem here with still with 6.8.10-300.fc40.x86_64. I'm using an AMD RX 7900 XT card. 6.7.x kernels were fine.

Comment 6 Jakub Bednarek 2024-06-26 22:14:05 UTC
I experienced similar screen flickering while using Ubuntu 24.04 (6.8.0-36-generic) and RX 7800 XT. I came across an issue on the Arch Linux forum that seems related. It appears to be caused by 'Dynamic Power Management'. Changing the value in /sys/class/drm/card1/device/power_dpm_force_performance_level from auto to high helped in my case. Maybe this will also resolve your issue.

https://bbs.archlinux.org/viewtopic.php?id=294036

https://wiki.archlinux.org/title/AMDGPU#Screen_artifacts_and_frequency_problem

Comment 7 Philippe Normand 2024-06-30 08:46:37 UTC
That works around the issue after a fresh boot, but if you suspend the machine, the glitches get back when the machine wakes up.

Comment 8 sam.kerr2009 2024-07-05 16:05:13 UTC
(In reply to Jakub Bednarek from comment #6)
> I experienced similar screen flickering while using Ubuntu 24.04
> (6.8.0-36-generic) and RX 7800 XT. I came across an issue on the Arch Linux
> forum that seems related. It appears to be caused by 'Dynamic Power
> Management'. Changing the value in
> /sys/class/drm/card1/device/power_dpm_force_performance_level from auto to
> high helped in my case. Maybe this will also resolve your issue.
> 
> https://bbs.archlinux.org/viewtopic.php?id=294036
> 
> https://wiki.archlinux.org/title/
> AMDGPU#Screen_artifacts_and_frequency_problem

This does fix the issue, although as Philippe Normand said when you either logout, restart or shutdown the file reverts back to auto and not high.

Is there a way to permanently keep that file on high?

Comment 9 Jakub Bednarek 2024-07-06 09:25:19 UTC
(In reply to sam.kerr2009 from comment #8)
> (In reply to Jakub Bednarek from comment #6)
> > I experienced similar screen flickering while using Ubuntu 24.04
> > (6.8.0-36-generic) and RX 7800 XT. I came across an issue on the Arch Linux
> > forum that seems related. It appears to be caused by 'Dynamic Power
> > Management'. Changing the value in
> > /sys/class/drm/card1/device/power_dpm_force_performance_level from auto to
> > high helped in my case. Maybe this will also resolve your issue.
> > 
> > https://bbs.archlinux.org/viewtopic.php?id=294036
> > 
> > https://wiki.archlinux.org/title/
> > AMDGPU#Screen_artifacts_and_frequency_problem
> 
> This does fix the issue, although as Philippe Normand said when you either
> logout, restart or shutdown the file reverts back to auto and not high.
> 
> Is there a way to permanently keep that file on high?

Did you try the udev rule described in the Arch Wiki?
https://wiki.archlinux.org/title/AMDGPU#Screen_artifacts_and_frequency_problem

You need to create a file at /etc/udev/rules.d/30-amdgpu-pm.rules with the following content:

KERNEL=="card0", SUBSYSTEM=="drm", DRIVERS=="amdgpu", ATTR{device/power_dpm_force_performance_level}="high"

Replace card0 with your device name. You can find this by running:

find /sys/class/drm/ -regextype awk -regex '.+/card[0-9]+' -printf '%f\n'

Then, reload the udev rules with:

udevadm control --reload-rules && udevadm trigger

This will keep the configuration persistent after a reboot. However, I haven't tested it with a suspended machine.

Comment 10 Philippe Normand 2024-07-06 14:14:14 UTC
Yes I tried it, doesn't work in case of wake-up from suspend.

Anyway, this workaround shouldn't be needed in the first place, right? This is just hiding a bug.


Note You need to log in before you can comment on or make changes to this bug.