From: Javier Martinez Canillas <javierm@redhat.com>
To: Zack Rusin <zackr@vmware.com>, dri-devel@lists.freedesktop.org
Cc: Maxime Ripard <mripard@kernel.org>,
spice-devel@lists.freedesktop.org,
Thomas Zimmermann <tzimmermann@suse.de>,
Hans de Goede <hdegoede@redhat.com>,
David Airlie <airlied@linux.ie>,
banackm@vmware.com, Gurchetan Singh <gurchetansingh@chromium.org>,
krastevm@vmware.com, ppaalanen@gmail.com,
Dave Airlie <airlied@redhat.com>,
stable@vger.kernel.org, iforbes@vmware.com,
virtualization@lists.linux-foundation.org,
mombasawalam@vmware.com, Gerd Hoffmann <kraxel@redhat.com>
Subject: Re: [PATCH v3 1/8] drm: Disable the cursor plane on atomic contexts with virtualized drivers
Date: Tue, 27 Jun 2023 10:26:51 +0200 [thread overview]
Message-ID: <875y7948fo.fsf@minerva.mail-host-address-is-not-set> (raw)
In-Reply-To: <20230627035839.496399-2-zack@kde.org>
Zack Rusin <zack@kde.org> writes:
Hello Zack,
> From: Zack Rusin <zackr@vmware.com>
>
> Cursor planes on virtualized drivers have special meaning and require
> that the clients handle them in specific ways, e.g. the cursor plane
> should react to the mouse movement the way a mouse cursor would be
> expected to and the client is required to set hotspot properties on it
> in order for the mouse events to be routed correctly.
>
> This breaks the contract as specified by the "universal planes". Fix it
> by disabling the cursor planes on virtualized drivers while adding
> a foundation on top of which it's possible to special case mouse cursor
> planes for clients that want it.
>
> Disabling the cursor planes makes some kms compositors which were broken,
> e.g. Weston, fallback to software cursor which works fine or at least
> better than currently while having no effect on others, e.g. gnome-shell
> or kwin, which put virtualized drivers on a deny-list when running in
> atomic context to make them fallback to legacy kms and avoid this issue.
>
> Signed-off-by: Zack Rusin <zackr@vmware.com>
> Fixes: 681e7ec73044 ("drm: Allow userspace to ask for universal plane list (v2)")
> Cc: <stable@vger.kernel.org> # v5.4+
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: Maxime Ripard <mripard@kernel.org>
> Cc: Thomas Zimmermann <tzimmermann@suse.de>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Daniel Vetter <daniel@ffwll.ch>
> Cc: Dave Airlie <airlied@redhat.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Cc: Hans de Goede <hdegoede@redhat.com>
> Cc: Gurchetan Singh <gurchetansingh@chromium.org>
> Cc: Chia-I Wu <olvaffe@gmail.com>
> Cc: dri-devel@lists.freedesktop.org
> Cc: virtualization@lists.linux-foundation.org
> Cc: spice-devel@lists.freedesktop.org
> ---
> drivers/gpu/drm/drm_plane.c | 13 +++++++++++++
> drivers/gpu/drm/qxl/qxl_drv.c | 2 +-
> drivers/gpu/drm/vboxvideo/vbox_drv.c | 2 +-
> drivers/gpu/drm/virtio/virtgpu_drv.c | 2 +-
> drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 2 +-
> include/drm/drm_drv.h | 9 +++++++++
> include/drm/drm_file.h | 12 ++++++++++++
> 7 files changed, 38 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c
> index 24e7998d1731..a4a39f4834e2 100644
> --- a/drivers/gpu/drm/drm_plane.c
> +++ b/drivers/gpu/drm/drm_plane.c
> @@ -678,6 +678,19 @@ int drm_mode_getplane_res(struct drm_device *dev, void *data,
> !file_priv->universal_planes)
> continue;
>
> + /*
> + * If we're running on a virtualized driver then,
> + * unless userspace advertizes support for the
> + * virtualized cursor plane, disable cursor planes
> + * because they'll be broken due to missing cursor
> + * hotspot info.
> + */
> + if (plane->type == DRM_PLANE_TYPE_CURSOR &&
> + drm_core_check_feature(dev, DRIVER_CURSOR_HOTSPOT) &&
Nit: you have a tab instead of an space before && but this can just be
fixed when applying.
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
--
Best regards,
Javier Martinez Canillas
Core Platforms
Red Hat
WARNING: multiple messages have this Message-ID (diff)
From: Javier Martinez Canillas <javierm@redhat.com>
To: Zack Rusin <zackr@vmware.com>, dri-devel@lists.freedesktop.org
Cc: krastevm@vmware.com, David Airlie <airlied@linux.ie>,
banackm@vmware.com, Gurchetan Singh <gurchetansingh@chromium.org>,
Hans de Goede <hdegoede@redhat.com>,
ppaalanen@gmail.com, Maxime Ripard <mripard@kernel.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
Dave Airlie <airlied@redhat.com>,
spice-devel@lists.freedesktop.org, stable@vger.kernel.org,
iforbes@vmware.com, virtualization@lists.linux-foundation.org,
mombasawalam@vmware.com, Gerd Hoffmann <kraxel@redhat.com>
Subject: Re: [PATCH v3 1/8] drm: Disable the cursor plane on atomic contexts with virtualized drivers
Date: Tue, 27 Jun 2023 10:26:51 +0200 [thread overview]
Message-ID: <875y7948fo.fsf@minerva.mail-host-address-is-not-set> (raw)
In-Reply-To: <20230627035839.496399-2-zack@kde.org>
Zack Rusin <zack@kde.org> writes:
Hello Zack,
> From: Zack Rusin <zackr@vmware.com>
>
> Cursor planes on virtualized drivers have special meaning and require
> that the clients handle them in specific ways, e.g. the cursor plane
> should react to the mouse movement the way a mouse cursor would be
> expected to and the client is required to set hotspot properties on it
> in order for the mouse events to be routed correctly.
>
> This breaks the contract as specified by the "universal planes". Fix it
> by disabling the cursor planes on virtualized drivers while adding
> a foundation on top of which it's possible to special case mouse cursor
> planes for clients that want it.
>
> Disabling the cursor planes makes some kms compositors which were broken,
> e.g. Weston, fallback to software cursor which works fine or at least
> better than currently while having no effect on others, e.g. gnome-shell
> or kwin, which put virtualized drivers on a deny-list when running in
> atomic context to make them fallback to legacy kms and avoid this issue.
>
> Signed-off-by: Zack Rusin <zackr@vmware.com>
> Fixes: 681e7ec73044 ("drm: Allow userspace to ask for universal plane list (v2)")
> Cc: <stable@vger.kernel.org> # v5.4+
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: Maxime Ripard <mripard@kernel.org>
> Cc: Thomas Zimmermann <tzimmermann@suse.de>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Daniel Vetter <daniel@ffwll.ch>
> Cc: Dave Airlie <airlied@redhat.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Cc: Hans de Goede <hdegoede@redhat.com>
> Cc: Gurchetan Singh <gurchetansingh@chromium.org>
> Cc: Chia-I Wu <olvaffe@gmail.com>
> Cc: dri-devel@lists.freedesktop.org
> Cc: virtualization@lists.linux-foundation.org
> Cc: spice-devel@lists.freedesktop.org
> ---
> drivers/gpu/drm/drm_plane.c | 13 +++++++++++++
> drivers/gpu/drm/qxl/qxl_drv.c | 2 +-
> drivers/gpu/drm/vboxvideo/vbox_drv.c | 2 +-
> drivers/gpu/drm/virtio/virtgpu_drv.c | 2 +-
> drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 2 +-
> include/drm/drm_drv.h | 9 +++++++++
> include/drm/drm_file.h | 12 ++++++++++++
> 7 files changed, 38 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c
> index 24e7998d1731..a4a39f4834e2 100644
> --- a/drivers/gpu/drm/drm_plane.c
> +++ b/drivers/gpu/drm/drm_plane.c
> @@ -678,6 +678,19 @@ int drm_mode_getplane_res(struct drm_device *dev, void *data,
> !file_priv->universal_planes)
> continue;
>
> + /*
> + * If we're running on a virtualized driver then,
> + * unless userspace advertizes support for the
> + * virtualized cursor plane, disable cursor planes
> + * because they'll be broken due to missing cursor
> + * hotspot info.
> + */
> + if (plane->type == DRM_PLANE_TYPE_CURSOR &&
> + drm_core_check_feature(dev, DRIVER_CURSOR_HOTSPOT) &&
Nit: you have a tab instead of an space before && but this can just be
fixed when applying.
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
--
Best regards,
Javier Martinez Canillas
Core Platforms
Red Hat
next prev parent reply other threads:[~2023-06-27 8:27 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-27 3:58 [PATCH v3 0/8] Fix cursor planes with virtualized drivers Zack Rusin
2023-06-27 3:58 ` [PATCH v3 1/8] drm: Disable the cursor plane on atomic contexts " Zack Rusin
2023-06-27 3:58 ` Zack Rusin
2023-06-27 8:18 ` Pekka Paalanen
2023-06-27 8:18 ` Pekka Paalanen
2023-06-27 8:18 ` Pekka Paalanen
2023-06-27 8:26 ` Javier Martinez Canillas [this message]
2023-06-27 8:26 ` Javier Martinez Canillas
2023-06-27 3:58 ` [PATCH v3 2/8] drm/atomic: Add support for mouse hotspots Zack Rusin
2023-06-27 8:26 ` Pekka Paalanen
2023-06-27 8:56 ` Javier Martinez Canillas
2023-06-27 10:30 ` Pekka Paalanen
2023-06-27 10:54 ` Javier Martinez Canillas
2023-06-27 8:49 ` Javier Martinez Canillas
2023-06-27 3:58 ` [PATCH v3 3/8] drm/vmwgfx: Use the hotspot properties from cursor planes Zack Rusin
2023-06-27 9:49 ` Javier Martinez Canillas
2023-06-27 13:08 ` Martin Krastev (VMware)
2023-06-27 3:58 ` [PATCH v3 4/8] drm/qxl: " Zack Rusin
2023-06-27 9:50 ` Javier Martinez Canillas
2023-06-27 3:58 ` [PATCH v3 5/8] drm/vboxvideo: " Zack Rusin
2023-06-27 10:02 ` Javier Martinez Canillas
2023-06-27 3:58 ` [PATCH v3 6/8] drm/virtio: " Zack Rusin
2023-06-27 10:03 ` Javier Martinez Canillas
2023-06-27 3:58 ` [PATCH v3 7/8] drm: Remove legacy cursor hotspot code Zack Rusin
2023-06-27 10:16 ` Javier Martinez Canillas
2023-06-27 3:58 ` [PATCH v3 8/8] drm: Introduce DRM_CLIENT_CAP_VIRTUALIZED_CURSOR_PLANE Zack Rusin
2023-06-27 8:38 ` Pekka Paalanen
2023-06-27 10:19 ` 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=875y7948fo.fsf@minerva.mail-host-address-is-not-set \
--to=javierm@redhat.com \
--cc=airlied@linux.ie \
--cc=airlied@redhat.com \
--cc=banackm@vmware.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=gurchetansingh@chromium.org \
--cc=hdegoede@redhat.com \
--cc=iforbes@vmware.com \
--cc=krastevm@vmware.com \
--cc=kraxel@redhat.com \
--cc=mombasawalam@vmware.com \
--cc=mripard@kernel.org \
--cc=ppaalanen@gmail.com \
--cc=spice-devel@lists.freedesktop.org \
--cc=stable@vger.kernel.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 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.