RFC: Bug #4633 (Initial mouse pointer incorrect with EXA)
Michel Dänzer
michel at daenzer.net
Fri Nov 11 02:51:47 PST 2005
The backtrace in comment #17
(https://bugs.freedesktop.org/show_bug.cgi?id=4633#c17) shows that the
problem is caused by xf86RandRSetMode() calling
EnableDisableFBAccess(index, FALSE), which causes EXA to kick out all
allocated offscreen areas, even locked ones such as the one for the
radeon driver's HW cursor data. The driver doesn't know about that, so
the card still reads the cursor data from the same, now invalid
location, hence the corrupted cursor until the server uploads a new
cursor image.
I can think of several basic approaches to fix this, but I'm not sure
which one is the best, so I'd like to collect some other opinions before
embarking on one.
* EXA could preserve locked offscreen areas across
EnableDisableFBAccess() calls.
* xf86RandRSetMode() might be able to take care of this by calling
something like UnrealizeCursor() before disabling FB access and
RealizeCursor() after re-enabling it.
* The driver could wrap EnableDisableFBAccess() and restore the
offscreen HW cursor data after FB access gets re-enabled.
* Other approaches?
--
Earthling Michel Dänzer | Debian (powerpc), X and DRI developer
Libre software enthusiast | http://svcs.affero.net/rm.php?r=daenzer
More information about the xorg
mailing list