ZaphodHead + TearFree: Freezing glxgears on multiple screens
Using a Zaphod head configuration with TearFree we start glxgears on displays :0.0 and :0.1 and within seconds the gears stop turning. Using strace we can see that both processes are blocked on polling the X socket at /tmp/.X11-unix/X0
.
When we run glxgears with vblank_mode=0
we don't see the freezing issue.
Running glxgears with INTEL_DEBUG=reemit
did not prevent the freezing; it seemed to have no effect on behaviour at all.
When it is frozen, killing the glxgears on display :0.1, unfreezes the glxgears on display :0.0. However, if the glxgears on display :0.0 is killed first, the glxgears on display :0.1 does not unfreeze.
We can watch DRM vblank events in dmesg for both crtcs with the following command:
echo 0x20 > /sys/module/drm/parameters/debug
When the gears freeze, the vblank events stop.
When both displays are showing a frozen glxgears, we can start a third glxgears on either screen which animates correctly for a short while before freezing. Killing all but the first instance on display :0.0 causes that instance to unfreeze.
- xserver/xorg-server version: 1.20.6
- xdriver/xf86-video-intel: 6f4972d5
The xserver log and glxgears strace captures are here: zaphod-head-tear-free-glxgears-logs.tar.xz.
Our /etc/X11/xorg.conf.d/10-monitor.conf
looks like this:
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Center Screen"
Screen 1 "Cluster Screen"
EndSection
Section "Device"
Driver "intel"
Identifier "intel0"
Screen 0
Option "monitor-eDP1" "Center Display"
Option "ZaphodHeads" "eDP1"
Option "AccelMethod" "sna"
Option "TearFree" "true"
EndSection
Section "Device"
Driver "intel"
Identifier "intel1"
Screen 1
Option "monitor-DP1" "Cluster Display"
Option "ZaphodHeads" "DP1"
Option "AccelMethod" "sna"
Option "TearFree" "true"
EndSection
Section "Screen"
Identifier "Center Screen"
Device "intel0"
EndSection
Section "Screen"
Identifier "Cluster Screen"
Device "intel1"
EndSection
In an older version of X (1.20.5) and xf86-video-intel (33ee0c3b), we experienced similar symptoms to the following issue - which might be related: