Bug 99704 - Spinning wheel cursor splits into two parts when starting laptop docked / using rotated external screen
Summary: Spinning wheel cursor splits into two parts when starting laptop docked / usi...
Status: NEW
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/intel (show other bugs)
Version: git
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Chris Wilson
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-02-07 12:04 UTC by languitar
Modified: 2017-02-07 12:40 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
Video showing the effect (1015.72 KB, video/mp4)
2017-02-07 12:04 UTC, languitar
no flags Details
lspci -vvv (9.66 KB, text/plain)
2017-02-07 12:05 UTC, languitar
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description languitar 2017-02-07 12:04:47 UTC
Created attachment 129383 [details]
Video showing the effect

I am using a Dell Latitude E5470 with then current intel driver from archlinux 64 bits, which is git commit 9fe04af4. As a desktop environment I am using i3 with compton as the compositor.

In case I start the X server with my laptop being docked with two additional screens, one being rotated, animated cursors like the spinning wheel break up into two parts on screen and rejoin with a fixed rate of maybe 1 Hz. I have recorded a video for this, which will be attached. Funnily, recording the desktop with byzanz or things like that does not contain these artifacts.

The issues only appears on the external screen which is not rotated. All external screens are connected via display port. The internal screen is never affected and also the rotated one is not. The issue seems to disappears once I remove the rotation of one of the external screen and in several other situations (related to screen layout changes, like undocking and docking again) where I couldn't find a consistent pattern.
Comment 1 languitar 2017-02-07 12:05:54 UTC
Created attachment 129384 [details]
lspci -vvv
Comment 2 Chris Wilson 2017-02-07 12:11:34 UTC
Hmm, frequently updating cursor jumps. Can you try something like

diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index 573869e..7da8d9a 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -6012,6 +6012,7 @@ static struct sna_cursor *__sna_get_cursor(struct sna *sna, xf86CrtcPtr crtc)
            height < cursor->last_height ||
            rotation != cursor->rotation)
                memset(image, 0, 4*size*size);
+       memset(image, 0xff, 4*size*size);
        if (rotation == RR_Rotate_0) {
                if (argb == NULL) {
                        for (y = 0; y < height; y++) {

which should show us the extents of the cursor, and then whether it is the image or the entire cursor that is jumping.
Comment 3 Chris Wilson 2017-02-07 12:12:48 UTC
Also, there are issues in xorg-1.19 with lack of locking around the new input (i.e. cursor) updates. Are you using xorg-1.19? If so do you see the same with xorg-1.18?
Comment 4 languitar 2017-02-07 12:17:16 UTC
I am using local/xorg-server-common 1.19.1-1 where I have manually applied the patches from https://bugs.freedesktop.org/show_bug.cgi?id=99358, as I was experiencing this crash as well.

What would happen if I apply your patch? Will it crash and I need to provide a dump?

Apart, I think this only happens on display port. DVI was never affected from such issues.
Comment 5 languitar 2017-02-07 12:25:33 UTC
Btw, the cursor sometimes isn't jumping completely but instead splits into two parts.
Comment 6 languitar 2017-02-07 12:40:54 UTC
Regarding xorg 1.18: I suspect I can't easily downgrade my system to that version. Packages are more than half a year old, which would probably break archlinux.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct.