Bug 1264782

Summary: cursor flickers when hidden on Wayland
Product: [Fedora] Fedora Reporter: Daniel Stone <daniel>
Component: mutterAssignee: Florian Müllner <fmuellner>
Status: CLOSED UPSTREAM QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 23CC: berend.de.schouwer, daniel, fmuellner, ofourdan, otaylor, walters
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1281685 (view as bug list) Environment:
Last Closed: 2015-10-01 09:03:59 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
flickering shown on gnome-terminal none

Description Daniel Stone 2015-09-21 08:23:25 UTC
Created attachment 1075418 [details]
flickering shown on gnome-terminal

When the cursor is hidden by a Wayland client, it flickers like mad, within what looks like a 256x256 area (my native hardware size). This is most visible when typing in gnome-terminal or GEdit.

Running mutter-wayland on a native KMS backend.

The attached video shows this in gnome-terminal: pressing a character (which hides the cursor) starts the flickering, and moving the mouse ends it.

mutter-3.17.92-1.fc23.x86_64

Comment 1 Daniel Stone 2015-09-21 08:25:55 UTC
This does not occur for XWayland clients: GEdit shows it when running under Wayland, but unsetting $WAYLAND_DISPLAY has it doing the right thing.

Comment 2 Olivier Fourdan 2015-09-22 09:50:09 UTC
Could this be related?

https://bugzilla.gnome.org/show_bug.cgi?id=751835

Comment 3 Daniel Stone 2015-09-22 10:00:08 UTC
I don't necessarily think so. Weston disabled the hardware cursor because of a kernel bug which meant that all cursor updates blocked for another vblank period, halving frame-rate BTW - it's never had difficulties with flickering like Mutter has.

In either case, it's not about the timing of when to draw the cursor: as you can see from the video, the cursor position jumps wildly within the box. So something else is much more seriously wrong with the cursor handling in that release.

I do still see some flickering on animated cursors after running a jhbuild from GNOME master everything, but certainly nothing like this. So I guess it's fixed upstream.

Comment 4 Olivier Fourdan 2015-09-22 13:29:41 UTC
(In reply to Daniel Stone from comment #3)
> I don't necessarily think so. Weston disabled the hardware cursor because of
> a kernel bug which meant that all cursor updates blocked for another vblank
> period, halving frame-rate BTW - it's never had difficulties with flickering
> like Mutter has.

Yes, I agree, weston did not disable HW cursor for this, (which has been reverted recently, btw), but not using HW cursor in mutter did make the issue go away (or rather, hide the problem).

> In either case, it's not about the timing of when to draw the cursor: as you
> can see from the video, the cursor position jumps wildly within the box. So
> something else is much more seriously wrong with the cursor handling in that
> release.

I suspect this is because the cursor was refreshed continuously in mutter even when it did need to which can cause flickering on some hardware but not all, which was making the matter worse of these hardware. 

> I do still see some flickering on animated cursors after running a jhbuild
> from GNOME master everything, but certainly nothing like this. So I guess
> it's fixed upstream.

Jonas' series of patches for https://bugzilla.gnome.org/show_bug.cgi?id=744932 has landed upstream very recently, I reckon that's what helped here.

Comment 5 Daniel Stone 2015-09-23 13:45:06 UTC
Ugh, actually I'm wrong. Running gnome-session directly from 'jhbuild run' didn't pick up a load of stuff from my session, seemingly. After running it from a proper GDM session, it's back.

Comment 6 Olivier Fourdan 2015-09-24 15:41:40 UTC
For some reason, I just cannot reproduce anymore after the latest F23 update which included mesa (11.0.0-2.20150913), libwayland (1.9.0-1) and kernel (4.2.1-300) updates from today.

Would it be possible for you to update and retry? (I was pretty confident but now I can't reproduce anymore, that makes the investigation a tad more challenging...)

Comment 7 Olivier Fourdan 2015-09-25 07:59:23 UTC
Pretty certain it's gtk+. 

Downgrading to 3.17.9-1.fc23 makes the issue reproducible at will.
Upgrading to 3.18.0-1.fc23 makes the issue go away.

Comment 8 Daniel Stone 2015-10-01 09:03:59 UTC
Yeah, this is fixed in latest git, so let's call it done.