[PATCH] mi: fix software cursor with several X screens (was Re: Software cursor broken with several X screens)

Pierre-Loup A. Griffais pgriffais at nvidia.com
Tue Apr 6 14:44:45 PDT 2010


(disregard previous message sent too soon)

Attached is a tentative patch that cleans that particular code up and fixes the 
issue.

It would seem cleaner to perform the screen looping in ActivateDevice(), but 
that would also mean changing miPointerDeviceInitialize and 
miSpriteDeviceCursorInitialize to only perform their own setup once in that 
case. Opinions?

Thanks,
  - Pierre-Loup

On 04/06/2010 08:20 AM, Tiago Vignatti wrote:
> On Tue, Apr 06, 2010 at 03:52:07AM +0200, ext Pierre-Loup A. Griffais wrote:
>> The DC code is broken for setups with several screens. Devs only have one pSave
>> pixmap and there's no code to thrash them like p[Save|Restore]GC.
>>
>> That means if you have two X screens and force SW cursor on both, the server
>> will end up passing a bunch of CopyAreas with mismatching screens to the driver,
>> which can fail horribly if the driver does a good job abstracting screens away
>> from each other.
>
> If helps you, I can confirm this happening here also.
>
>                              Tiago


More information about the xorg-devel mailing list