On 01.07.14 10:20, Gerd Hoffmann wrote:
On Mo, 2014-06-30 at 22:32 +1000, Benjamin Herrenschmidt wrote:
On Mon, 2014-06-30 at 13:14 +0200, Gerd Hoffmann wrote:
Hi,
From what I can tell, we only ever call the cursor drawing callback on
non-shared surfaces. Should I deduce that the HW cursor emulation simply
doesn't work when using shared surfaces ? Or is there another path I
have missed to handle it ?
Hmm. Looks like hw-cursor-on-shared-surface broken indeed. Need to dig
out a guest which actually uses it & go figure when testing your patch
series ...
I don't think I broke it much more than it already was but then I
couldn't find a guest using it. I've tried the plain cirrus DDX in X and
it didn't have any problem... maybe windows ?
Nope. windows xp doesn't use it. Anything newer doesn't ship with
cirrus drivers any more (and uses vesa bios support).
Looking at the code the cirrus hardware cursor supports two colors only
(and some funky xor mode). Guess it simply doesn't cut it as you can't
have your cursors drop shadows with that, so guests are ignoring it.
Windows NT 4 might use it. I remember that I had issues running NT4 with
Cirrus emulation a while back.
Right. A quick fix would be to add a flag to force always using a shadow
surface and set it in cirrus ... I'm not sure anybody will notice the
performance difference.
I suspect we can rip out hw cursor emulation and nobody will notice the
difference either ...
Very likely ;). Though I think we're better off keeping it around to
make sure we're still compatible with ancient guests (Windows 3.1 might
use it too). Making it slow however shouldn't make any difference at all.
Alex