Screen flickers since changing actual monitor (workaround with xrandr exists, but want proper solution)

Hi,

I have this strange behaiviour that after each reboot my screen flickers in a way I know it from old CRTs when there was a sync issue. This first appeared after I switched my old LCD with 1680x1050 to a newer one with 2560x1440, so I guess baysically it is an actual sync issue.

I am using a pretty vanilla Manjaro-i3 and I have a workaround with this small script:

#!/bin/bash

xrandr > ~/xrandr_manual.log
xrandr -s 1920x1080
xrandr -s 2560x1440

which currently I just bound to Super+F12 and execute this hotkey just after the reboot with autologin finished.

But since this seems to be quite hackey I would like to find the actual source of the issue and fix it for good.

here you have what my manual mini xrandr log looks like:

Screen 0: minimum 320 x 200, current 2560 x 1440, maximum 16384 x 16384
DisplayPort-0 connected primary 2560x1440+0+0 (normal left inverted right x axis y axis) 597mm x 336mm
   2560x1440     59.95*+
   1920x1200     59.88
   1920x1080     60.00    60.00    50.00    59.94    24.00    23.98
   1920x1080i    60.00    50.00    59.94
   1600x1200     60.00
   1680x1050     59.95
   1280x1024     75.02    60.02
   1280x800      59.81
   1152x864      75.00
   1280x720      60.00    50.00    59.94
   1024x768      75.03    60.00
   800x600       75.00    60.32
   720x576       50.00
   720x576i      50.00
   720x480       60.00    59.94
   720x480i      60.00    59.94
   640x480       75.00    60.00    59.94
   720x400       70.08
DVI-0 disconnected (normal left inverted right x axis y axis)

and the a section of inxi -Fxza --no-host:

System:    Kernel: 5.7.17-2-MANJARO x86_64 bits: 64 compiler: gcc v: 10.2.0
           parameters: BOOT_IMAGE=/boot/vmlinuz-5.7-x86_64 root=UUID=f5e7b6c8-e88a-4657-a80e-c5bcabb32e90 rw quiet
           udev.log_priority=3 resume=/dev/disk/by-partuuid/b6c8514b-da07-4e4f-8618-82ffbf3a670c
           Desktop: i3 4.18.2 info: polybar dm: LightDM 1.30.0 Distro: Manjaro Linux
Machine:   Type: Desktop System: Dell product: OptiPlex 7010 v: 01 serial: <filter> Chassis: type: 3 serial: <filter>
           Mobo: Dell model: 0YXT71 v: A01 serial: <filter> UEFI: Dell v: A29 date: 06/28/2018
CPU:       Topology: Quad Core model: Intel Core i5-3570 bits: 64 type: MCP arch: Ivy Bridge family: 6 model-id: 3A (58)
           stepping: 9 microcode: 21 L2 cache: 6144 KiB
           flags: avx lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 27150
           Speed: 3682 MHz min/max: 1600/3800 MHz Core speeds (MHz): 1: 3677 2: 3653 3: 3623 4: 3675
           Vulnerabilities: Type: itlb_multihit status: KVM: VMX disabled
           Type: l1tf mitigation: PTE Inversion; VMX: conditional cache flushes, SMT disabled
           Type: mds mitigation: Clear CPU buffers; SMT disabled
           Type: meltdown mitigation: PTI
           Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via prctl and seccomp
           Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer sanitization
           Type: spectre_v2 mitigation: Full generic retpoline, IBPB: conditional, IBRS_FW, STIBP: disabled, RSB filling
           Type: srbds status: Vulnerable: No microcode
           Type: tsx_async_abort status: Not affected
Graphics:  Device-1: Advanced Micro Devices [AMD/ATI] Caicos XT [Radeon HD 7470/8470 / R5 235/310 OEM] vendor: Dell
           driver: radeon v: kernel bus ID: 01:00.0 chip ID: 1002:6778
           Display: x11 server: X.Org 1.20.8 compositor: picom v: git-e553e driver: radeon display ID: :0 screens: 1
           Screen-1: 0 s-res: 2560x1440 s-dpi: 96 s-size: 677x381mm (26.7x15.0") s-diag: 777mm (30.6")
           Monitor-1: DisplayPort-0 res: 2560x1440 hz: 60 dpi: 109 size: 597x336mm (23.5x13.2") diag: 685mm (27")
           OpenGL: renderer: AMD CAICOS (DRM 2.50.0 / 5.7.17-2-MANJARO LLVM 10.0.1) v: 3.3 Mesa 20.1.7 compat-v: 3.1
           direct render: Yes

also I have this ‘/etc/X11/xorg.conf.d/20-radeon.conf’:

Section "Device"
    Identifier "Radeon"
    Driver "radeon"
EndSection

Any hint, where to look further would be helpfull.

Also appreciated a hint, how to further automate my xrandr-hack after login, if the actual source is too hard to figure out.

Thanks,
Muichi

Hello,

I suggest this:

Also, consider this:

Is EOL = end of life, so switching to another kernel might be a good idea.

2 Likes

thanks.

As I understand the arch wiki article about AMDGPU the proper driver for my card would be radeon instead of amdgpu thats why I have a 20-radeon.conf. I’ll add the Option "TearFree" "true" though.

I am already on kernel 5.8 right now, just created the post while the update was still running. Nevertheless, the issue survieved the kernelupdate :frowning:

Then you might try this:

Section "Device"
	Identifier  "Radeon"
	Driver "radeon"
	Option "AccelMethod" "glamor"
        Option "DRI" "3"
        Option "TearFree" "on"
EndSection

But, i wonder if that would not be a xf86-video-ati driver thing that seems to create the 10-radeon.conf file instead of 20-radeon.conf

unfortunatelly it’s still not working.
At least I was able to learn that it appears not to be relevant to the x-server, since booting to multi-user.target produced the same issue, except that my xrandr-workaround didn’t work (because xrandr relies on xserver right?).
So I am thinking, what might set the screen mode before the start of xserver

Edit: btw. grub-menu is in 2560x1440 (I guess 60Hz)