Back to Blog

Disabling VSYNC on an Intel iGPU in Arch

linuxarchintel-graphicsobsvsync

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 ~/.drirc in your home directory with vblank_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:

  1. The terminal showing boot output, before the desktop starts
  2. 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:

  1. 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.
  2. 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-intel restores 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.

Frequently asked questions

Why does an Intel iGPU flicker on Arch?

It is usually tearing from the default VSYNC behavior, and it shows up most on the boot terminal output and in OBS recordings. Set vertical sync to Never in the KDE display settings, or set vblank_mode=0 in ~/.drirc.

What if the KDE display settings offer no Never option?

Try the other options in the vertical sync dropdown first. If none of them work, write ~/.drirc by hand with the device block from this article and set vblank_mode=0 to turn VSYNC off.

Does turning off VSYNC have side effects?

The picture can tear, which is exactly what VSYNC exists to prevent. For everyday use and screen recording it usually does not matter. If it bothers you, apply it to specific applications such as OBS instead.

Do I need to uninstall xf86-video-intel?

No. Editing ~/.drirc solves it, and removing the driver can break other things. Leave it alone if it works.