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
