7840 External monitor glitching, Disabling sg does not resolve.
Brief summary of the problem:
The issue I have is similar to but different from the issue with SG #2735 (closed). (#2735 (closed)) I was referred here by Framework support.
Short description of the differences:
- "amdgpu.sg_display=0" kernel parameter does not resolve the issue. It seems to help a lot, I'd say it's about 25% as bad with the parameter active, but the glitching persists.
- This affects the externally-connected monitor only, not the laptop's built-in monitor.
Hardware description:
-
CPU: Ryzen 7840
-
GPU: ~$ sudo lshw -C display -numeric *-display
description: VGA compatible controller product: Advanced Micro Devices, Inc. [AMD/ATI] [1002:15BF] vendor: Advanced Micro Devices, Inc. [AMD/ATI] [1002] physical id: 0 bus info: pci@0000:c1:00.0 logical name: /dev/fb0 version: c4 width: 64 bits clock: 33MHz capabilities: pm pciexpress msi msix vga_controller bus_master cap_list fb configuration: depth=32 driver=amdgpu latency=0 mode=2256x1504 resolution=2256,1504 visual=truecolor xres=2256 yres=1504 resources: iomemory:800-7ff irq:109 memory:8000000000-800fffffff memory:90000000-901fffff ioport:1000(size=256) memory:90500000-9057ffff ~$ lspci -nn | grep VGA c1:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Device [1002:15bf] (rev c4) -
System Memory: 32G DDR5 5600
-
Display(s): Framework 13 built-in display 13.5in 2256x1504, LG 27UL500-W 27in 4k native resolution running at 2560x1440.
-
Type of Display Connection: Tested with: Framework USB-C 3.2 to HDMI module, Lenovo ThinkPad TB3 dock to DisplayPort with full through DisplayPort connection to monitor, DisplayPort with adapter to HDMI, and HDMI direct to dock.
System information:
-
Distro name and Version: Ubuntu 22.04
-
Kernel version: Linux Framework 6.1.0-1025-oem #25 (closed)-Ubuntu SMP PREEMPT_DYNAMIC Fri Oct 13 12:54:28 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
-
Custom kernel: Framework oem kernel
-
AMD official driver version: GFX 1103_R1, LLVM 15.0.7, DRM 3.49
How to reproduce the issue:
This graphical glitching only affects parts of the screen at any given time. The regions occupied by GDE bars on the side and top, for instance, don’t seem to be impacted at all. What happens looks to me like bits of an earlier framebuffer flashing in at places. Mostly it will be over parts of the desktop aren’t covered by the GDE or the currently active window, but the currently active window will also glitch quite a lot. Regions not being refreshed as often (other than the GDE interface) are far more likely to glitch and glitch longer. Sometimes large portions of the screen will become like a strobe light for 10-15 seconds at a time. It’s less noticeable in regions that are playing video, but even that will occasionally “stutter,” seeming to flash an earlier frame up momentarily every 10 seconds or so. For whatever reason, Google Chrome seems to bring out this behavior most, but any window brought to the external monitor will exhibit this issue before long.
This happens in Unity and Gnome GDEs with or without Wayland.
So far I’ve seen this on one LG monitor connected directly via an HDMI module, and the same monitor connected via a Lenovo TB3 dock using either HDMI or DisplayPort. I don’t currently have a DP module or a type-c to DP or HDMI adapter available to test. I’m running the OEM kernel 6.1.0.1025-oem. This problem also appeared on other kernels, including 6.2.0-36-generic. I haven't tried a mainline 6.3, 6.4, etc. kernel yet, but am willing if requested.
I can provide video of what's happening if you tell me where to send it.
FWIW, I also have an Asus laptop with RDNA3 graphics on a 7940, but it does not have the same issue with this same monitor and TB3 dock. (It has plenty of other issues the Framework doesn’t have.) For reference, that’s running a locally-compiled 6.3.5 kernel.