Summary: | xorg-server 1.18.2: missing mouse pointer when coming back from screen lock | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | xorg | Reporter: | Denis Dupeyron <calchan> | ||||||||
Component: | Driver/intel | Assignee: | Chris Wilson <chris> | ||||||||
Status: | RESOLVED FIXED | QA Contact: | Intel GFX Bugs mailing list <intel-gfx-bugs> | ||||||||
Severity: | normal | ||||||||||
Priority: | medium | CC: | 8, andrey.vihrov, andyrtr, bugs.freedesktop.org, bugzilla, ckrzen, giantcone, hanno, jefdriesen, jefferym, koterpillar, michel, mvoorhis, nicolasmaia, sitsofe, thomas-lange2, tobias.pal, unhammer+dill | ||||||||
Version: | unspecified | ||||||||||
Hardware: | Other | ||||||||||
OS: | All | ||||||||||
Whiteboard: | |||||||||||
i915 platform: | i915 features: | ||||||||||
Attachments: |
|
Description
Denis Dupeyron
2016-03-23 20:50:26 UTC
Does this also happen using the modesetting driver instead of the intel driver? (In reply to Michel Dänzer from comment #1) > Does this also happen using the modesetting driver instead of the intel > driver? Good catch. I tried and it does not happen with the modesetting driver. First machine I looked at worked fine. Could you please run xf86-video-intel/tools/cursor and cat /sys/kernel/debug/dri/0/i915_display_info when the cursor is invisible coming back from screenlock? Created attachment 122577 [details]
/sys/kernel/debug/dri/0/i915_display_info
This is a cat of /sys/kernel/debug/dri/0/i915_display_info when the cursor is invisible. The before and after screenlock diff is this:
--- before 2016-03-26 11:12:18.744047285 -0600
+++ after 2016-03-26 11:13:28.722867306 -0600
@@ -6,11 +6,11 @@
fb: 50, pos: 0x0, size: 1280x800
encoder 26: type: LVDS-26, connectors:
connector 25: type: LVDS-1, status: connected, mode:
- id 0:"1280x800" freq 60 clock 82060 hdisp 1280 hss 1332 hse 1396 htot 1672 vdisp 800 vss 803 vse 806 vtot 818 type 0x48 flags 0xa
- cursor visible? yes, position (365, 188), size 64x64, addr 0x00816000, active? yes
+ id 0:"1280x800" freq 60 clock 82060 hdisp 1280 hss 1332 hse 1396 htot 1672 vdisp 800 vss 803 vse 806 vtot 818 type 0x0 flags 0xa
+ cursor visible? no, position (0, 0), size 0x0, addr 0x00000000, active? no
No scalers available on this platform
--Plane id 22: type=PRI, crtc_pos= 0x 0, crtc_size=1280x 800, src_pos=0.0000x0.0000, src_size=1280.0000x800.0000, format=XR24 little-endian (0x34325258), rotation=0 (0x00000001)
- --Plane id 23: type=CUR, crtc_pos= 365x 188, crtc_size= 64x 64, src_pos=0.0000x0.0000, src_size=64.0000x64.0000, format=AR24 little-endian (0x34325241), rotation=0 (0x00000001)
+ --Plane id 23: type=CUR, crtc_pos= 0x 0, crtc_size= 0x 0, src_pos=0.0000x0.0000, src_size=0.0000x0.0000, format=N/A, rotation=0 (0x00000001)
underrun reporting: cpu=yes pch=no
Connector info
Created attachment 123068 [details]
xf86-video-intel/tools/cursor output
To add to the previous comment, running xf86-video-intel/tools/cursor when the pointer is invisible prints a correct pointer image and dimensions.
For reference: duplicate bug #95132 *** Bug 95132 has been marked as a duplicate of this bug. *** I'm seeing this too with XUbuntu 16.04. Here's a potential downstream bug https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1568604 . I'm affected by this bug and I'm trying to figure out if there's anything I can do to help get it fixed. For example, I see the cursor-related functions in sna_display.c already have a fair amount of debug logging. Would it help if I compiled the Intel driver with --enable-debug=full and then captured the log while the bug was occurring? (In reply to Tim Starling from comment #9) > I'm affected by this bug and I'm trying to figure out if there's anything I > can do to help get it fixed. This bug is already fixed (at least for me). It went away simply by upgrading my Arch Linux installation. But I cannot say for sure which package was the culprit. Package versions: xorg-server: 1.18.4 xf86-video-intel: 2.99.917+691+ga77397a lightdm: 1.18.2 I looked into this with gdb, with the stock packages from Ubuntu 16.04 since I have a reliable reproduction with that version. Specifically, xserver-xorg-core 2:1.18.3-1ubuntu2.3 and xserver-xorg-video-intel 2:2.99.917+git20160325-1ubuntu1. The cursor is actually restored successfully after unlock, but then it disappears again when sna_mode_disable_secondary_planes() is called, specifically during the LOCAL_IOCTL_MODE_SETPLANE ioctl. After this, there is no chance of the cursor being restored, since sna_crtc->cursor remains non-null, so further attempts to restore it hit the "skipping cursor already show on CRTC" case. So, there's a good chance this bug was fixed by f1c757e4518f6835bbff6c940269a5c6be75f202, since the commit message claims to modify sna_mode_disable_secondary_planes() to "ignore the secondary cursor planes". Confirmed by patching the xserver-xorg-video-intel package source with that commit and also its dependency 00a3adaf43640b9aaa84b8cb98c1f2f227686689 "sna: Record all sprite planes reported by the kernel". |
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.