Modesetting driver and cursor hot-spot

Michael Thayer michael.thayer at oracle.com
Fri Apr 1 20:22:18 UTC 2016


On 01.04.2016 22:12, Michael Thayer wrote:
> I have just been adjusting the cursor handling code in the VirtualBox
> kernel driver and realised that the modesetting user space driver is
> still adjusting the reported cursor position to take the hot-spot into
> account, even though it also reports the hot-spot using
> drmModeSetCursor2().  In theory this would be easy to fix, but that
> would create a new problem: kernel space would have no easy way to tell
> whether it was dealing with the old or with the new driver.  Other
> drivers do not have this bug though, and I seem to be the first person
> to want to use both position and hot-spot information in modesetting.
> Does anyone have a good idea about how to deal with this?  My best so
> far is for my driver to intercept DRM_IOCTL_MODE_CURSOR2 and just
> -EINVAL it to force fall-back.

Ah, it gets more fun - the kernel code clearly also makes the same 
assumption: if a driver does not provide cursor_set2(), it falls back to 
calling cursor_set() with the same parameters, minus the hot-spot 
location.  Reported cursor position does not take this into account.  So 
this is clearly already a part of the kernel API, though probably as yet 
with no one actually depending on it.

Regards,

Michael

-- 
Michael Thayer | VirtualBox engineer
ORACLE Deutschland B.V. & Co. KG | Werkstr. 24 | D-71384 Weinstadt

ORACLE Deutschland B.V. & Co. KG
Hauptverwaltung: Riesstraße 25, D-80992 München
Registergericht: Amtsgericht München, HRA 95603

Komplementärin: ORACLE Deutschland Verwaltung B.V.
Hertogswetering 163/167, 3543 AS Utrecht, Niederlande
Handelsregister der Handelskammer Midden-Nederland, Nr. 30143697
Geschäftsführer: Alexander van der Ven, Jan Schultheiss, Val Maher


More information about the xorg-devel mailing list