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...
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
Depends on:
Reported: 2017-02-07 12:04 UTC by languitar
Modified: 2019-11-27 13:47 UTC (History)
0 users

See Also:
i915 platform:
i915 features:

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

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.
Comment 7 languitar 2019-02-06 16:31:54 UTC
I can still see this issue with a new work laptop with an Intel Corporation UHD Graphics 620 (rev 07). Flickr appears on external displays connected via DP from a USB-C docking station.
Comment 8 Chris Wilson 2019-02-06 21:03:45 UTC
Are you sure you are using -intel, as we use the HW cursor for rotated outputs as well.
Comment 9 languitar 2019-02-06 21:20:29 UTC
Could you please explain what I need to check for that?
Comment 10 Martin Peres 2019-11-27 13:47:31 UTC
-- 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/137.

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.