On 26.12.2015 11:31, Michel Dänzer wrote:
> On 26.12.2015 04:08, Keith Packard wrote:
>> Michel Dänzer <[email protected]> writes:
>>
>>> From: Michel Dänzer <[email protected]>
>>>
>>> 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.
> 
> 
>> In the only example of this that I can find (in xf86-video-omap), the
>> driver just has to call xf86CrtcTransformCursorPos itself.
> 
> Sure, the driver has to call xf86CrtcTransformCursorPos itself, because
> xf86_crtc_set_cursor_position doesn't do it in the
> driverIsPerformingTransform case.
> 
> The problem fixed by this patch is that xf86_crtc_set_cursor hides the
> cursor in cases where it should be visible, because it uses the
> untransformed coordinates to check whether the cursor is visible in the
> driverIsPerformingTransform case. Note that the fix only applies the
> transform for the visibility check in this case, not to the coordinates
> passed to the driver.

Maybe it would be clearer if I renamed clip_x/y to crtc_x/y, indicating
that it's the position in the CRTC coordinate space?


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to