mbox series

[v6,0/3] Expose modifiers/formats supported by async flips

Message ID 20250219-asyn-v6-0-b959e6becb3c@intel.com (mailing list archive)
Headers show
Series Expose modifiers/formats supported by async flips | expand

Message

Arun R Murthy Feb. 19, 2025, 9:17 a.m. UTC
All of the formats/modifiers supported by the plane during synchronous
flips are nor supported by asynchronous flips. The formats/modifiers
exposed to user by IN_FORMATS exposes all formats/modifiers supported by
plane and this list varies for async flips. If the async flip supported
formats/modifiers are exposed to the user, user based on this list can
take decision to proceed or not and avoid flip failures during async
flips.
Discussion around this can be located @
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29618#note_2487123
Userspace implementation for IN_FORMARTS_ASYNC under review @
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4063

TODO: Upon merge of the patch related to async flip
https://patchwork.freedesktop.org/patch/626849/?series=139807&rev=6
the patch 5 in this series will have to make use of the new function
pointer can_async_flip().

v3: Add new plane->funcs format_mod_supported_async (Ville)

Arun R Murthy (3):
  drm/plane: Add new plane property IN_FORMATS_ASYNC
  drm/plane: Expose function to create format/modifier blob
  drm/i915/display: Populate list of async supported formats/modifiers

 drivers/gpu/drm/drm_mode_config.c             |  7 +++
 drivers/gpu/drm/drm_plane.c                   | 50 ++++++++++++------
 .../drm/i915/display/skl_universal_plane.c    | 51 +++++++++++++++++++
 include/drm/drm_mode_config.h                 |  6 +++
 include/drm/drm_plane.h                       |  4 ++
 5 files changed, 103 insertions(+), 15 deletions(-)

--
2.25.1

---
Arun R Murthy (5):
      drm/plane: Add new plane property IN_FORMATS_ASYNC
      drm/plane: Expose function to create format/modifier blob
      drm/plane: Function to check async supported modifier/format
      drm/i915/display: Populate list of async supported formats/modifiers
      drm/i915/display: Add function for format_mod_supported_async

 drivers/gpu/drm/drm_mode_config.c                  |   7 ++
 drivers/gpu/drm/drm_plane.c                        |  72 +++++++++----
 drivers/gpu/drm/i915/display/skl_universal_plane.c | 113 ++++++++++++++++++---
 include/drm/drm_mode_config.h                      |   6 ++
 include/drm/drm_plane.h                            |  24 +++++
 5 files changed, 188 insertions(+), 34 deletions(-)
---
base-commit: 08bd590935a5258ffd79355c59adffd72fb2c642
change-id: 20250102-asyn-bf76730501cc

Best regards,
--
Arun R Murthy <arun.r.murthy@intel.com>

---
Changes in v6:
- EDITME: describe what is new in this series revision.
- EDITME: use bulletpoints and terse descriptions.
- Link to v5: https://lore.kernel.org/r/20250218-asyn-v5-0-7ac5ac4abd4a@intel.com

---
Arun R Murthy (3):
      drm/plane: Add new plane property IN_FORMATS_ASYNC
      drm/plane: modify create_in_formats to accommodate async
      drm/i915/display: Add i915 hook for format_mod_supported_async

 drivers/gpu/drm/drm_mode_config.c                  |  7 +++
 drivers/gpu/drm/drm_plane.c                        | 53 +++++++++++++++-----
 drivers/gpu/drm/i915/display/skl_universal_plane.c | 56 ++++++++++++++++------
 include/drm/drm_mode_config.h                      |  6 +++
 include/drm/drm_plane.h                            | 17 +++++++
 5 files changed, 112 insertions(+), 27 deletions(-)
---
base-commit: bc7a84cbc968ce97e581e9e3c2d26fb0ac106482
change-id: 20250102-asyn-bf76730501cc

Best regards,

Comments

Simona Vetter Feb. 19, 2025, 1:53 p.m. UTC | #1
On Wed, Feb 19, 2025 at 02:47:22PM +0530, Arun R Murthy wrote:
> All of the formats/modifiers supported by the plane during synchronous
> flips are nor supported by asynchronous flips. The formats/modifiers
> exposed to user by IN_FORMATS exposes all formats/modifiers supported by
> plane and this list varies for async flips. If the async flip supported
> formats/modifiers are exposed to the user, user based on this list can
> take decision to proceed or not and avoid flip failures during async
> flips.
> Discussion around this can be located @
> https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29618#note_2487123
> Userspace implementation for IN_FORMARTS_ASYNC under review @
> https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4063
> 
> TODO: Upon merge of the patch related to async flip
> https://patchwork.freedesktop.org/patch/626849/?series=139807&rev=6
> the patch 5 in this series will have to make use of the new function
> pointer can_async_flip().
> 
> v3: Add new plane->funcs format_mod_supported_async (Ville)
> 
> Arun R Murthy (3):
>   drm/plane: Add new plane property IN_FORMATS_ASYNC
>   drm/plane: Expose function to create format/modifier blob
>   drm/i915/display: Populate list of async supported formats/modifiers

Somewhat orthogonal, but in a different atomic kms discussion the much
bigger question of what are compositors supposed to figure out with
TEST_ONLY and what are they supposed to figure out through special
properties cropped up. Might be really good to document that, so that we
can have some design consistency here.

I think this patch series should also document why we need this and
compositors can't figure this out on their own, ideally by linking/quoting
the relevant discussions in the compositor enabling PR.

Thanks, Sima

> 
>  drivers/gpu/drm/drm_mode_config.c             |  7 +++
>  drivers/gpu/drm/drm_plane.c                   | 50 ++++++++++++------
>  .../drm/i915/display/skl_universal_plane.c    | 51 +++++++++++++++++++
>  include/drm/drm_mode_config.h                 |  6 +++
>  include/drm/drm_plane.h                       |  4 ++
>  5 files changed, 103 insertions(+), 15 deletions(-)
> 
> --
> 2.25.1
> 
> ---
> Arun R Murthy (5):
>       drm/plane: Add new plane property IN_FORMATS_ASYNC
>       drm/plane: Expose function to create format/modifier blob
>       drm/plane: Function to check async supported modifier/format
>       drm/i915/display: Populate list of async supported formats/modifiers
>       drm/i915/display: Add function for format_mod_supported_async
> 
>  drivers/gpu/drm/drm_mode_config.c                  |   7 ++
>  drivers/gpu/drm/drm_plane.c                        |  72 +++++++++----
>  drivers/gpu/drm/i915/display/skl_universal_plane.c | 113 ++++++++++++++++++---
>  include/drm/drm_mode_config.h                      |   6 ++
>  include/drm/drm_plane.h                            |  24 +++++
>  5 files changed, 188 insertions(+), 34 deletions(-)
> ---
> base-commit: 08bd590935a5258ffd79355c59adffd72fb2c642
> change-id: 20250102-asyn-bf76730501cc
> 
> Best regards,
> --
> Arun R Murthy <arun.r.murthy@intel.com>
> 
> ---
> Changes in v6:
> - EDITME: describe what is new in this series revision.
> - EDITME: use bulletpoints and terse descriptions.
> - Link to v5: https://lore.kernel.org/r/20250218-asyn-v5-0-7ac5ac4abd4a@intel.com
> 
> ---
> Arun R Murthy (3):
>       drm/plane: Add new plane property IN_FORMATS_ASYNC
>       drm/plane: modify create_in_formats to accommodate async
>       drm/i915/display: Add i915 hook for format_mod_supported_async
> 
>  drivers/gpu/drm/drm_mode_config.c                  |  7 +++
>  drivers/gpu/drm/drm_plane.c                        | 53 +++++++++++++++-----
>  drivers/gpu/drm/i915/display/skl_universal_plane.c | 56 ++++++++++++++++------
>  include/drm/drm_mode_config.h                      |  6 +++
>  include/drm/drm_plane.h                            | 17 +++++++
>  5 files changed, 112 insertions(+), 27 deletions(-)
> ---
> base-commit: bc7a84cbc968ce97e581e9e3c2d26fb0ac106482
> change-id: 20250102-asyn-bf76730501cc
> 
> Best regards,
> -- 
> Arun R Murthy <arun.r.murthy@intel.com>
>
Ville Syrjälä Feb. 19, 2025, 10:33 p.m. UTC | #2
On Wed, Feb 19, 2025 at 02:47:22PM +0530, Arun R Murthy wrote:
> All of the formats/modifiers supported by the plane during synchronous
> flips are nor supported by asynchronous flips. The formats/modifiers
> exposed to user by IN_FORMATS exposes all formats/modifiers supported by
> plane and this list varies for async flips. If the async flip supported
> formats/modifiers are exposed to the user, user based on this list can
> take decision to proceed or not and avoid flip failures during async
> flips.
> Discussion around this can be located @
> https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29618#note_2487123
> Userspace implementation for IN_FORMARTS_ASYNC under review @
> https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4063

FYI I just cooked up support for xorg/modesetting:
https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1816