From: Albert Esteve <aesteve@redhat.com>
To: qemu-devel@nongnu.org
Cc: zackr@vmware.com, contact@emersion.fr, linux-doc@vger.kernel.org,
dri-devel@lists.freedesktop.org,
Maxime Ripard <mripard@kernel.org>,
iforbes@vmware.com,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Chia-I Wu <olvaffe@gmail.com>,
Thomas Zimmermann <tzimmermann@suse.de>,
Hans de Goede <hdegoede@redhat.com>,
Matt Roper <matthew.d.roper@intel.com>,
David Airlie <airlied@gmail.com>,
banackm@vmware.com, Rob Clark <robdclark@gmail.com>,
javierm@redhat.com, krastevm@vmware.com,
spice-devel@lists.freedesktop.org,
Gurchetan Singh <gurchetansingh@chromium.org>,
Jonathan Corbet <corbet@lwn.net>,
David Airlie <airlied@redhat.com>,
virtualization@lists.linux-foundation.org,
linux-kernel@vger.kernel.org, mombasawalam@vmware.com,
Daniel Vetter <daniel@ffwll.ch>,
ppaalanen@gmail.com,
VMware Graphics Reviewers <linux-graphics-maintainer@vmware.com>,
Gerd Hoffmann <kraxel@redhat.com>,
Albert Esteve <aesteve@redhat.com>
Subject: [PATCH v6 0/9] Fix cursor planes with virtualized drivers
Date: Mon, 23 Oct 2023 09:46:04 +0200 [thread overview]
Message-ID: <20231023074613.41327-1-aesteve@redhat.com> (raw)
v6: Shift DRIVER_CURSOR_HOTSPOT flag bit to BIT(9), since BIT(8)
was already taken by DRIVER_GEM_GPUVA.
v5: Add a change with documentation from Michael, based on his discussion
with Pekka and bump the kernel version DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT
might be introduced with to 6.6.
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).
Link to the IGT test covering this patch (already merged):
https://lists.freedesktop.org/archives/igt-dev/2023-July/058427.html
Mutter patch:
https://lists.freedesktop.org/archives/igt-dev/2023-July/058427.html
Michael Banack (1):
drm: Introduce documentation for hotspot properties
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
Documentation/gpu/drm-kms.rst | 6 ++
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 | 120 +++++++++++++++++++++-
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 | 2 +-
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 +++++
18 files changed, 245 insertions(+), 39 deletions(-)
--
2.41.0
next reply other threads:[~2023-10-23 7:48 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-23 7:46 Albert Esteve [this message]
2023-10-23 7:46 ` [PATCH v6 1/9] drm: Disable the cursor plane on atomic contexts with virtualized drivers Albert Esteve
2023-10-23 7:53 ` Simon Ser
2023-10-23 7:46 ` [PATCH v6 2/9] drm/atomic: Add support for mouse hotspots Albert Esteve
2023-10-23 7:46 ` [PATCH v6 3/9] drm/vmwgfx: Use the hotspot properties from cursor planes Albert Esteve
2023-10-23 7:46 ` [PATCH v6 4/9] drm/qxl: " Albert Esteve
2023-10-23 7:46 ` [PATCH v6 5/9] drm/vboxvideo: " Albert Esteve
2023-10-23 7:46 ` [PATCH v6 6/9] drm/virtio: " Albert Esteve
2023-10-23 7:46 ` [PATCH v6 7/9] drm: Remove legacy cursor hotspot code Albert Esteve
2023-10-23 7:46 ` [PATCH v6 8/9] drm: Introduce DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT Albert Esteve
2023-10-23 7:46 ` [PATCH v6 9/9] drm: Introduce documentation for hotspot properties Albert Esteve
2023-10-23 8:23 ` Pekka Paalanen
2023-10-23 21:29 ` Javier Martinez Canillas
2023-10-24 19:34 ` Michael Banack
2023-10-25 6:36 ` Javier Martinez Canillas
2023-10-23 7:55 ` [PATCH v6 0/9] Fix cursor planes with virtualized drivers Simon Ser
2023-10-23 8:14 ` Albert Esteve
2023-10-23 8:19 ` Simon Ser
2023-11-22 12:49 ` Javier Martinez Canillas
2023-11-23 22:11 ` Simon Ser
2023-11-24 10:56 ` Javier Martinez Canillas
2023-11-24 14:41 ` Javier Martinez Canillas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231023074613.41327-1-aesteve@redhat.com \
--to=aesteve@redhat.com \
--cc=airlied@gmail.com \
--cc=airlied@redhat.com \
--cc=banackm@vmware.com \
--cc=contact@emersion.fr \
--cc=corbet@lwn.net \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=gurchetansingh@chromium.org \
--cc=hdegoede@redhat.com \
--cc=iforbes@vmware.com \
--cc=javierm@redhat.com \
--cc=krastevm@vmware.com \
--cc=kraxel@redhat.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-graphics-maintainer@vmware.com \
--cc=linux-kernel@vger.kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=matthew.d.roper@intel.com \
--cc=mombasawalam@vmware.com \
--cc=mripard@kernel.org \
--cc=olvaffe@gmail.com \
--cc=ppaalanen@gmail.com \
--cc=qemu-devel@nongnu.org \
--cc=robdclark@gmail.com \
--cc=spice-devel@lists.freedesktop.org \
--cc=tzimmermann@suse.de \
--cc=virtualization@lists.linux-foundation.org \
--cc=zackr@vmware.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).