Three monitors, set up as three screens with Xinerama enabled, left to right: - 2560x1600 normal rotation - 1600x1200 left rotation - 1600x1200 left rotation If one of the 1600x1200 screens is rotated back to normal orientation, everything continues to work fine. But if *both* are rotated back to normal, everything goes haywire. When typing into a window parts of the screen will alternate between normal and black, sometimes the whole screen will go black except for the last few letters typed in a terminal, using a menu can make all three monitors flash between grey and black over the whole screen, etc. The mouse cursor is the only thing that behaves normally the whole time. Putting one of the screens back to 'left' rotation immediately makes everything return to normal and all graphical corruption disappear. This bug happens 100% of the time, and it doesn't matter whether the arrangement is handled via xorg.conf or via xrandr, both methods are able to produce (and then fix) the corruption by rotating the various screens. It does not appear to be an issue with the overall X desktop size, because the problem still happens if the origin of the screens is moved to overlap another screen, reducing the size of the full X display. When there is corruption, it affects all three displays (it is not limited to the ones being rotated.) Here is a sample config: Section "Device" Identifier "d_intel" Driver "intel" Option "monitor-DP1" "m_dell_3008wfp" Option "monitor-HDMI1" "m_dell_2001fp" Option "monitor-HDMI3" "m_dell_2007fp" Option "monitor-VGA1" "none" EndSection Section "Monitor" Identifier "m_dell_3008wfp" Option "PreferredMode" "2560x1600" Option "Enable" "true" Option "Rotate" "normal" Option "Primary" "true" EndSection Section "Monitor" Identifier "m_dell_2001fp" Option "PreferredMode" "1600x1200" Option "Enable" "true" # Option "Rotate" "left" # Corruption if both rotations are off Option "RightOf" "m_dell_3008wfp" EndSection Section "Monitor" Identifier "m_dell_2007fp" Option "PreferredMode" "1600x1200" Option "Enable" "true" # Option "Rotate" "left" # Corruption if both rotations are off # Option "RightOf" "m_dell_2001fp" Option "Position" "2560 0" EndSection Section "Screen" Identifier "s_intel_1" Device "d_intel" Monitor "m_dell_3008wfp" EndSection Section "Screen" Identifier "s_intel_2" Device "d_intel" Monitor "m_dell_2001fp" EndSection Section "Screen" Identifier "s_intel_3" Device "d_intel" Monitor "m_dell_2007fp" EndSection Section "ServerLayout" Identifier "l_intel" Screen "s_intel_1" Screen "s_intel_2" Screen "s_intel_3" EndSection
Please attach Xorg.0.log and the output of xrandr --verbose in the corrupt setup. What software configuration are you using, i.e. desktop environment and compositor (window manager)?
Created attachment 108955 [details] xrandr --verbose output when corrupt The screen flickered between normal and grey at each keypress when I typed the xrandr command
Created attachment 108957 [details] xorg log when corruption is present
Created attachment 108958 [details] xorg log when everything is fine Only difference between this and the corrupted log is that here one screen is in "rotate left" mode. When all screens are in landscape the corruption is present.
Ohh you just reminded me I am using the "compton" compositor. If I kill that then everything is fine. For the record I'm using the "awesome" window manager and without compton running, everything is fine. Looks like it may not be a bug in the driver after all! Sorry for the noise.
iirc, compton offers various methods for its compositors, are they all affected?
The --glx-swap-method takes parameters 0 through 6, and 0, 4 and 6 do actually work. But 1, 2, 3, and 5 cause corruption. I believe 2 is double-buffer and 3 is triple-buffer. Including or omitting the --paint-on-overlay option has no effect. It looks in many ways like old buffers aren't being erased, because the corruption can be anything from what was displayed previously on one screen suddenly appearing in the middle of another screen, or the contents of one screen being drawn on another but if the screen's width is different then there is a stair-stepping effect. This is in units of say eight pixels high, as the image is drawn across the display and when the horizontal edge of the image is reached, it keeps drawing from the next row. Looks just like when you load an image file with the wrong width and a little bit of the next row gets drawn on the end of the previous row.
You have to disable glx-no-rebind-pixmap, which requires commit e3a15d5f94d70d9925ac092286bce1d9c139f281 Author: Richard Grenville <pyxlcy@gmail.com> Date: Fri Apr 5 21:05:19 2013 +0800 Improvement: GLX: Cache region contents & --glx-no-rebind-pixmap as it is broken by design. Or just not use compton, it doesn't do anything that the ddx cannot do itself with Option "TearFree" (and TearFree also works with rotation etc).
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xorg/driver/xf86-video-intel/issues/34.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.