[PATCH xserver 1/2] xfree86/modes: Fix HW cursor clipping for crtc->driverIsPerformingTransform

Michel Dänzer michel at daenzer.net
Fri Jan 29 01:38:16 PST 2016


On 26.12.2015 12:20, Keith Packard wrote:
> Michel Dänzer <michel at daenzer.net> writes:
>> On 26.12.2015 04:08, Keith Packard wrote:
>>> Michel Dänzer <michel at daenzer.net> writes:
>>>
>>>> From: Michel Dänzer <michel.daenzer at amd.com>
>>>>
>>>> Even if the driver is handling the transform, we still need to transform
>>>> the cursor position for clipping, otherwise we may hide the HW cursor
>>>> when the cursor is actually inside the area covered by the CRTC.
>>>
>>> I would expect that driverIsPerformingTransform would apply only to the
>>> output path, and not to the cursor.
>>
>> If that was the case, xf86_crtc_set_cursor_position wouldn't check for
>> driverIsPerformingTransform in the first place and would always
>> transform the coordinates passed to the driver.
> 
> Sorry, I wasn't clear -- I think the API is busted and we should fix it
> so that the server always does the cursor transform instead of the
> driver.
> 
> Your patch was quite sensible, I'm just suggesting that a more complete
> fix would be to make the X server do the whole job, instead of just the
> clipping part.

I'm not sure that makes sense; e.g. it seems inconsistent with leaving
the cursor image untransformed in the driverIsPerformingTransform case.
It seems to me like the idea behind driverIsPerformingTransform was to
leave all transformations to the driver/hardware.

Aaron, what do you think? How does the driver you added this stuff for
deal with the broken in_range handling?


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer


More information about the xorg-devel mailing list