[PATCH] mi: fix software cursor with several X screens

Pierre-Loup A. Griffais pgriffais at nvidia.com
Tue Apr 6 15:32:49 PDT 2010


Now with a proper GC cleanup sequence instead of freeing the same GC in a loop.

Thanks,
  - Pierre-Loup

On 04/06/2010 02:44 PM, Pierre-Loup A. Griffais wrote:
> (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