The short version: flickering on Arch with Intel integrated graphics is usually tearing caused by VSYNC. Set vertical sync to Never in KDE, or add
~/.drircin your home directory withvblank_mode=0. I ended up using the second one.
When it flickers
The screen flickered at random while I was installing Arch. The machine has an Intel processor, and my AMD laptop never did this. I had also set up a minimal sshd first so I could install over SSH, and everything looked fine once I reached SDDM and the KDE desktop. That narrowed the problem to two cases:
- The terminal showing boot output, before the desktop starts
- Screen recording in OBS
The cause
With the default VSYNC behavior, an Intel integrated GPU tears easily, and the boot terminal and OBS recordings are where it shows.
The quick attempt in KDE
I found a video from 2020 that offered two options:
- Turn on Show FPS in KDE Settings → Desktop Effects. That leaves a permanent FPS counter in the top right corner. It does not block clicks, it just looks bad, so I skipped it.
- Set vertical sync to Never in KDE Settings → Display Settings.
What I ran into: no Never option
My vertical sync dropdown had no Never entry, and none of the other options made any difference.
What worked: ~/.drirc
The Arch Wiki had the answer: add a config file named ~/.drirc in your home directory and set vblank_mode to 0, which disables VSYNC.
<device screen="0" driver="dri2">
<application name="Default">
<option name="vblank_mode" value="0"/>
</application>
</device>
The result
Both the OBS flicker and the Arch terminal flicker went away. I came in trying to fix OBS and fixed the older problem along with it.
Notes
- Some people say uninstalling
xf86-video-intelrestores normal behavior. I do not think it is worth it. It works, so edit the config file and leave the driver alone. - I wrote this in 2021, on the Arch and KDE of that time. The details may have moved since.
Related reading
- Setting up SMB on Manjaro, another Linux detour
- See all technical notes
- Shiina Labs open source