Bug 76724

Summary: Recent cursor changes break multihead
Product: xorg Reporter: Jan Alexander Steffens (heftig) <jan.steffens>
Component: Driver/intelAssignee: Chris Wilson <chris>
Status: RESOLVED FIXED QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: normal    
Priority: medium    
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Jan Alexander Steffens (heftig) 2014-03-28 08:53:18 UTC
Recent changes to cursor handling in xf86-video-intel master break cursor rendering when multiple monitors are attached.

When the cursor is on the main monitor, it is visible on all monitors.
When the cursor is not on the main monitor, it is invisible.
Comment 1 Chris Wilson 2014-03-28 09:04:47 UTC
What's your arrangement? (Just paste xrandr) I tested this in a simple extended setup across a pair of monitors.

Also please verify that you have the most recent updates to that code.
Comment 2 Chris Wilson 2014-03-28 09:19:23 UTC
If the problem persists, could you please configure with --enable-debug=full, and
compile with

diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index 5c2781c..f78df00 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -87,7 +87,7 @@ union compat_mode_get_connector{
 #define DEFAULT_DPI 96
 #endif
 
-#if 0
+#if 1
 #define __DBG DBG
 #else
 #define __DBG(x)
Comment 3 Jan Alexander Steffens (heftig) 2014-03-28 09:39:39 UTC
Vertical arrangement of the monitors seems to be a requirement for the bug to manifest.


Screen 0: minimum 8 x 8, current 1680 x 1818, maximum 32767 x 32767
LVDS1 connected 1366x768+157+1050 (normal left inverted right x axis y axis) 277mm x 156mm
   1366x768       60.0*+
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
VGA1 connected primary 1680x1050+0+0 (normal left inverted right x axis y axis) 473mm x 296mm
   1680x1050      60.0*+
   1600x1000      60.0 +
   1280x1024      75.0     60.0  
   1440x900       59.9  
   1280x960       60.0  
   1152x864       75.0  
   1152x720       60.0  
   1024x768       75.1     60.0  
   832x624        74.6  
   800x600        75.0     60.3  
   640x480        75.0     60.0  
   720x400        70.1  
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
HDMI3 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
DP3 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
Comment 4 Jan Alexander Steffens (heftig) 2014-03-28 09:43:53 UTC
To clarify, this is a Thinkpad X220t (SNB) with Arch Linux x86_64 3.13.7. e07f8e2 has the bug, 2.99.911 does not.
Comment 5 Chris Wilson 2014-03-28 09:45:09 UTC
Oh, stupid bug. The bug is if the first screen is offset/transformed.
Comment 6 Chris Wilson 2014-03-28 10:02:13 UTC
Thanks!

commit 5c0623b5f36cd1a1a2e3280ab2bea35a7899281b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Mar 28 09:53:49 2014 +0000

    sna: Only transform the temporary cursor coordinates
    
    As we need to recompute them for each CRTC, we need to reset the
    computation each time or else we screw up the coordinates and hide
    the cursors at random.
    
    Breakage from commit 25ca8f136cef9e1bdf06967bf8e78c87b54ffce2
    Author: Chris Wilson <chris@chris-wilson.co.uk>
    Date:   Thu Mar 27 14:15:30 2014 +0000
    
        sna: Support variable sized cursors
    
    Reported-by: Jan Alexander Steffens <jan.steffens@gmail.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76724
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

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.