1. 24 Nov, 2023 2 commits
    • Zack Rusin's avatar
      drm/atomic: Add support for mouse hotspots · 8f7179a1
      Zack Rusin authored
      Atomic modesetting code lacked support for specifying mouse cursor
      hotspots. The legacy kms DRM_IOCTL_MODE_CURSOR2 had support for setting
      the hotspot but the functionality was not implemented in the new atomic
      paths.
      
      Due to the lack of hotspots in the atomic paths userspace compositors
      completely disable atomic modesetting for drivers that require it (i.e.
      all paravirtualized drivers).
      
      This change adds hotspot properties to the atomic codepaths throughtout
      the DRM core and will allow enabling atomic modesetting for virtualized
      drivers in the userspace.
      Signed-off-by: default avatarZack Rusin <zackr@vmware.com>
      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>
      Reviewed-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
      Signed-off-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20231023074613.41327-3-aesteve@redhat.com
      8f7179a1
    • 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
  2. 23 Nov, 2023 24 commits
  3. 22 Nov, 2023 2 commits
  4. 21 Nov, 2023 12 commits