Bug 7038 - Mouse cursor position should not be updated when it's invisible
Summary: Mouse cursor position should not be updated when it's invisible
Status: RESOLVED INVALID
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/Radeon (show other bugs)
Version: unspecified
Hardware: x86 (IA32) Linux (All)
: high normal
Assignee: Xorg Project Team
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-05-26 10:08 UTC by Aapo Tahkola
Modified: 2008-12-02 23:33 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
Don't call driver SetCursorPosition hook when cursor is invisible (1.54 KB, patch)
2006-09-19 08:20 UTC, Michel Dänzer
no flags Details | Splinter Review

Description Aapo Tahkola 2006-05-26 10:08:25 UTC
Doing so causes unnecessary synchronation loss on 3d apps.
Would it be possible to implement this at higher level so that all drivers would
get fixed at once?
Comment 1 Michel Dänzer 2006-07-02 07:37:15 UTC
(In reply to comment #0)
> Doing so causes unnecessary synchronation loss on 3d apps.

Not sure what you mean, please elaborate.

> Would it be possible to implement this at higher level so that all drivers would
> get fixed at once?

Possibly, but first of all, we need to understand the problem you're trying to
solve. :)
Comment 2 Aapo Tahkola 2006-07-02 10:38:35 UTC
Updating mouse cursor position causes writes to mmio space which in turn seem to
cause 3d engine to go idle for a while. DDX drivers shouldnt need to know when
invisible mouse cursor moving around. ut2k4 slows down about 20% when rapidly
moving mouse on my r480.
Comment 3 Michel Dänzer 2006-07-02 10:56:18 UTC
And you've verified that this is indeed due to the cursor position updates, e.g.
with Option "SWcursor"?

If so, does the driver's HideCursor hook get called when the cursor goes
'invisible'?
Comment 4 Aapo Tahkola 2006-07-04 04:34:38 UTC
(In reply to comment #3)
> And you've verified that this is indeed due to the cursor position updates, e.g.
> with Option "SWcursor"?

Software cursor is just as bad.
Quick hack turning CP_IDLES into no-ops in drm fixes this problem when using
SWcursor. Also glxgears didn't slow down when the cursor was visible.

> 
> If so, does the driver's HideCursor hook get called when the cursor goes
> 'invisible'?

I have to admit that I haven't checked. I don't see any way making cursor
updates faster so I think most drivers would benefit from additional visibility
checks. Need to investigate what kind of techniques are being used.
Comment 5 Michel Dänzer 2006-09-19 08:20:04 UTC
Created attachment 7070 [details] [review]
Don't call driver SetCursorPosition hook when cursor is invisible

Does this patch help?
Comment 6 Daniel Stone 2007-02-27 01:32:13 UTC
Sorry about the phenomenal bug spam, guys.  Adding xorg-team@ to the QA contact so bugs don't get lost in future.
Comment 7 Alex Deucher 2007-08-31 07:39:20 UTC
is this still an issue?
Comment 8 Alex Deucher 2008-12-02 23:33:12 UTC
no feedback in over a year.  closing.


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.