On Mon, 11 Jul 2022 23:32:38 -0400 Zack Rusin <zack@xxxxxxx> wrote: > From: Zack Rusin <zackr@xxxxxxxxxx> > > Virtualized drivers have had a lot of issues with cursor support on top > of atomic modesetting. This set both fixes the long standing problems > with atomic kms and virtualized drivers and adds code to let userspace > use atomic kms on virtualized drivers while preserving functioning > seamless cursors between the host and guest. > > The first change in the set is one that should be backported as far as > possible, likely 5.4 stable, because earlier stable kernels do not have > virtualbox driver. The change makes virtualized drivers stop exposing > a cursor plane for atomic clients, this fixes mouse cursor on all well > formed compositors which will automatically fallback to software cursor. > > The rest of the changes until the last one ports the legacy hotspot code > to atomic plane properties. > > Finally the last change introduces userspace API to let userspace > clients advertise the fact that they are aware of additional restrictions > placed upon the cursor plane by virtualized drivers and lets them use > atomic kms with virtualized drivers (the clients are expected to set > hotspots correctly when advertising support for virtual cursor plane). Hi Zack, thank you very much for this revision, I am generally very happy how this looks. I read through all the patches, and all the commit messages and code comments say good things. I'm not really knowledgeable enough to review the code itself. Otherwise I would already give my Ack for everything here, but I did have some questions inspired by patches 5 and 8. See my replies to them. Thanks, pq > Zack Rusin (8): > drm: Disable the cursor plane on atomic contexts with virtualized > drivers > drm/atomic: Add support for mouse hotspots > drm/vmwgfx: Use the hotspot properties from cursor planes > drm/qxl: Use the hotspot properties from cursor planes > drm/vboxvideo: Use the hotspot properties from cursor planes > drm/virtio: Use the hotspot properties from cursor planes > drm: Remove legacy cursor hotspot code > drm: Introduce DRM_CLIENT_CAP_SUPPORTS_VIRTUAL_CURSOR_PLANE > > drivers/gpu/drm/drm_atomic_state_helper.c | 14 ++++++ > drivers/gpu/drm/drm_atomic_uapi.c | 20 ++++++++ > drivers/gpu/drm/drm_ioctl.c | 9 ++++ > drivers/gpu/drm/drm_plane.c | 59 ++++++++++++++++++++++- > drivers/gpu/drm/qxl/qxl_display.c | 14 +++--- > drivers/gpu/drm/qxl/qxl_drv.c | 2 +- > drivers/gpu/drm/vboxvideo/vbox_drv.c | 2 +- > drivers/gpu/drm/vboxvideo/vbox_mode.c | 4 +- > drivers/gpu/drm/virtio/virtgpu_drv.c | 3 +- > drivers/gpu/drm/virtio/virtgpu_plane.c | 8 +-- > drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 2 +- > drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 9 +--- > include/drm/drm_drv.h | 10 ++++ > include/drm/drm_file.h | 12 +++++ > include/drm/drm_framebuffer.h | 12 ----- > include/drm/drm_plane.h | 15 ++++++ > include/uapi/drm/drm.h | 17 +++++++ > 17 files changed, 173 insertions(+), 39 deletions(-) >
Attachment:
pgplBiLvicGCD.pgp
Description: OpenPGP digital signature