Bug 94988 - [intel HD Graphics 4000] modesetting_drv renders multiple mouse pointers
Summary: [intel HD Graphics 4000] modesetting_drv renders multiple mouse pointers
Status: RESOLVED MOVED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/modesetting (show other bugs)
Version: git
Hardware: Other All
: medium normal
Assignee: Xorg Project Team
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-04-18 11:52 UTC by Jiri Slaby
Modified: 2018-12-13 18:09 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
xorg log for modesetting_drv (46.50 KB, text/plain)
2016-04-18 11:52 UTC, Jiri Slaby
no flags Details

Description Jiri Slaby 2016-04-18 11:52:34 UTC
Created attachment 123025 [details]
xorg log for modesetting_drv

I tried to switch from intel_drv to modesetting_drv, but it does not work well.

My adapter:
00:02.0 VGA compatible controller [0300]: Intel Corporation 3rd Gen Core processor Graphics Controller [8086:0166] (rev 09) (prog-if 00 [VGA controller])
        Subsystem: Lenovo Device [17aa:21fa]
        Flags: bus master, fast devsel, latency 0, IRQ 29
        Memory at f0000000 (64-bit, non-prefetchable) [size=4M]
        Memory at e0000000 (64-bit, prefetchable) [size=256M]
        I/O ports at 5000 [size=64]
        Expansion ROM at <unassigned> [disabled]
        Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
        Capabilities: [d0] Power Management version 2
        Capabilities: [a4] PCI Advanced Features
        Kernel driver in use: i915
        Kernel modules: i915

My kernel:
Linux anemoi 4.5.1-1.gf5f7dfc-default #1 SMP PREEMPT Wed Apr 13 14:25:59 UTC 2016 (f5f7dfc) x86_64 x86_64 x86_64 GNU/Linux

I see many copies of mouse pointers, screen flickering etc. This is with plasma 5, compositing enabled, running on OpenGL. With XRender, it does not show the artefacts that often. Without compositing, it is still unusable as plasmashell starts looping on one CPU and stops reacting on user input eventually. It spins on calling drm_ioctl_wait_vblank ioctl repeatedly.
Comment 1 Michel Dänzer 2016-04-19 01:47:16 UTC
(In reply to Jiri Slaby from comment #0)
> Without compositing, it is still unusable as plasmashell starts looping on one
> CPU and stops reacting on user input eventually. It spins on calling
> drm_ioctl_wait_vblank ioctl repeatedly.

Sounds like bug 94596, fixed in xserver 1.18.3.
Comment 2 Jiri Slaby 2016-04-20 09:30:38 UTC
(In reply to Michel Dänzer from comment #1)
> (In reply to Jiri Slaby from comment #0)
> > Without compositing, it is still unusable as plasmashell starts looping on one
> > CPU and stops reacting on user input eventually. It spins on calling
> > drm_ioctl_wait_vblank ioctl repeatedly.
> 
> Sounds like bug 94596, fixed in xserver 1.18.3.

+1, no more looping with compositing disabled now.

Now, the original problem: with compositing enabled, the pointer is still there multiple times. Looks like it is not cleared properly in the back buffer or something, given it flickers and remains there.

vsync's "Full screen repaints" mitigates this a lot. But while I am writing this, I see the cursor three times. All front+back+another buffers have it on a different positions, so I see it moving back and forth without actually moving the mouse.
Comment 3 Michel Dänzer 2016-04-21 09:51:48 UTC
(In reply to Jiri Slaby from comment #2)
> Now, the original problem: with compositing enabled, the pointer is still
> there multiple times. Looks like it is not cleared properly in the back
> buffer or something, given it flickers and remains there.

Sounds like it's using an SW cursor but still allowing page flipping, which can't work correctly. I recently fixed a similar problem in the radeon driver in https://cgit.freedesktop.org/xorg/driver/xf86-video-ati/commit/?id=7f3d0780ca65a90117c2a61362dbc0899bd9c0b0 .

Not sure why it's using an SW cursor in the first place though. Might be worth trying this patch: https://patchwork.freedesktop.org/patch/75985/
Comment 4 Jiri Slaby 2016-04-21 10:44:10 UTC
(In reply to Michel Dänzer from comment #3)
> Not sure why it's using an SW cursor in the first place though. Might be
> worth trying this patch: https://patchwork.freedesktop.org/patch/75985/

This didn't help.

Is there a way to find out whether a SW or HW cursor is used?
Comment 5 Michel Dänzer 2016-04-27 09:18:58 UTC
(In reply to Jiri Slaby from comment #4)
> Is there a way to find out whether a SW or HW cursor is used?

The symptoms you're describing can only really happen with SW cursor.
Comment 6 Jiri Slaby 2016-05-18 12:03:45 UTC
Well, update to kernel 4.6 fixed the flickering with OpenGL compositing.
Comment 7 Jiri Slaby 2016-05-18 12:04:41 UTC
Note that I am still using the patch for xorg:
https://patchwork.freedesktop.org/patch/75985/
Comment 8 GitLab Migration User 2018-12-13 18:09:50 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/xserver/issues/30.


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.