modesetting: HWCursor and rotation

Michel Dänzer michel at daenzer.net
Mon Jul 9 07:43:02 UTC 2018


On 2018-07-06 04:23 PM, Carsten Behling wrote:
> 
> [...] I get e.g. negative cursor postion in x/y if the HW cursor buffer
> is moved in display rotation of 180 degrees towards the lower/right corner.
> 
> The cursor move is ignored in this case:
> 
> static void
> drmmode_set_cursor_position(xf86CrtcPtr crtc, int x, int y)
> {
>     drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
>     drmmode_ptr drmmode = drmmode_crtc->drmmode;
> 
>     drmModeMoveCursor(drmmode->fd, drmmode_crtc->mode_crtc->crtc_id, x, y);
> }
> 
> So the upper left corner of the default cursor arrow never pointed to lower
> right positions that are beyond screen positions 64/64
> (Note: on 180 degree rotation we are on the upper left corner of the
> framebuffer).
> 
> So my question is :
> 
> Where should that be fixed?:
> 
> a) Should my DRM driver allow to move the HW cursor buffer partially
> outside the frambuffer?

Yes. That's how this is working with other drivers.


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


More information about the xorg mailing list