• Zack Rusin's avatar
    drm: Disable the cursor plane on atomic contexts with virtualized drivers · 4e3b70da
    Zack Rusin authored
    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: default avatarZack Rusin <zackr@vmware.com>
    Fixes: 681e7ec7 ("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
    Acked-by: default avatarPekka Paalanen <pekka.paalanen@collabora.com>
    Reviewed-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
    Acked-by: default avatarSimon Ser <contact@emersion.fr>
    Signed-off-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20231023074613.41327-2-aesteve@redhat.com
    4e3b70da
drm_plane.c 45.9 KB