All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/8] Fix cursor planes with virtualized drivers
@ 2023-06-28  5:21 Zack Rusin
  2023-06-28  5:21   ` Zack Rusin
                   ` (7 more replies)
  0 siblings, 8 replies; 32+ messages in thread
From: Zack Rusin @ 2023-06-28  5:21 UTC (permalink / raw)
  To: dri-devel; +Cc: javierm, banackm, krastevm, ppaalanen, iforbes, mombasawalam

From: Zack Rusin <zackr@vmware.com>

v4: Make drm_plane_create_hotspot_properties static, rename
DRM_CLIENT_CAP_VIRTUALIZED_CURSOR_PLANE to DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT
and some minor stylistic fixes for things found by Javier and Pekka
in v3.

v3: Renames, fixes and cleanups suggested by Daniel, Simon and Pekka
after v2. There's no major changes in functionality. Please let me know
if I missed anything, it's been a while since v2.

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).

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_CURSOR_PLANE_HOTSPOT

 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               | 64 ++++++++++++++++++++++-
 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                     |  9 ++++
 include/drm/drm_file.h                    | 12 +++++
 include/drm/drm_framebuffer.h             | 12 -----
 include/drm/drm_plane.h                   | 14 +++++
 include/uapi/drm/drm.h                    | 25 +++++++++
 17 files changed, 184 insertions(+), 39 deletions(-)

-- 
2.39.2


^ permalink raw reply	[flat|nested] 32+ messages in thread

end of thread, other threads:[~2023-07-18  9:56 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-28  5:21 [PATCH v4 0/8] Fix cursor planes with virtualized drivers Zack Rusin
2023-06-28  5:21 ` [PATCH v4 1/8] drm: Disable the cursor plane on atomic contexts " Zack Rusin
2023-06-28  5:21   ` Zack Rusin
2023-06-28  5:21 ` [PATCH v4 2/8] drm/atomic: Add support for mouse hotspots Zack Rusin
2023-06-28  7:41   ` Pekka Paalanen
2023-06-28  7:54     ` Pekka Paalanen
2023-06-28  8:30       ` Javier Martinez Canillas
2023-06-28 19:54       ` Zack Rusin
2023-06-29  8:03         ` Pekka Paalanen
2023-07-03 21:06           ` Michael Banack
2023-07-04  8:08             ` Pekka Paalanen
2023-07-05 16:08               ` Michael Banack
2023-07-06  8:01                 ` Pekka Paalanen
2023-07-06 16:23                   ` Michael Banack
2023-07-07  8:38                     ` Pekka Paalanen
2023-07-07 20:54                       ` Michael Banack
2023-07-10  8:17                         ` Pekka Paalanen
2023-07-10 17:46                           ` Michael Banack
2023-07-11  7:14                             ` Pekka Paalanen
2023-07-18  8:41                               ` Javier Martinez Canillas
2023-07-18  9:27                                 ` Javier Martinez Canillas
2023-07-18  9:56                                 ` Pekka Paalanen
2023-06-28 14:15   ` Simon Ser
2023-06-28 16:26     ` Zack Rusin
2023-06-29  8:16       ` Pekka Paalanen
2023-07-03 21:15         ` Michael Banack
2023-06-28  5:21 ` [PATCH v4 3/8] drm/vmwgfx: Use the hotspot properties from cursor planes Zack Rusin
2023-06-28  5:21 ` [PATCH v4 4/8] drm/qxl: " Zack Rusin
2023-06-28  5:21 ` [PATCH v4 5/8] drm/vboxvideo: " Zack Rusin
2023-06-28  5:21 ` [PATCH v4 6/8] drm/virtio: " Zack Rusin
2023-06-28  5:21 ` [PATCH v4 7/8] drm: Remove legacy cursor hotspot code Zack Rusin
2023-06-28  5:21 ` [PATCH v4 8/8] drm: Introduce DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT Zack Rusin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.