On Thu, 2025-11-13 at 01:30 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <[email protected]>
> 
> Since old kernel versions wouldn't expose the IN_FORMATS_ASYNC blob,
> userspace can't really use the absence of the blob to determine
> that async flips aren't supported. Thus it seems better to always
> expose the blob on all planes, whether they support async flips
> or not. The blob will simply not indicate any format+modifier
> combinations as supported on planes that aren't async flip capable.
> 
> Currently we expose the blob for all skl+ universal planes (even
> though we implement async flips only for the first plane on each
> pipe), and i9xx primary planes (for ilk+ we have async flips support,
> for pre-ilk we do not). Complete the full set by also expsosing
> the blob on pre-skl sprite planes, and cursors.

Reviewed-by: Jouni Högander <[email protected]>
> 
> Signed-off-by: Ville Syrjälä <[email protected]>
> ---
>  drivers/gpu/drm/i915/display/intel_cursor.c | 1 +
>  drivers/gpu/drm/i915/display/intel_sprite.c | 3 +++
>  2 files changed, 4 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c
> b/drivers/gpu/drm/i915/display/intel_cursor.c
> index a10b2425b94d..63e6a4767aa9 100644
> --- a/drivers/gpu/drm/i915/display/intel_cursor.c
> +++ b/drivers/gpu/drm/i915/display/intel_cursor.c
> @@ -974,6 +974,7 @@ static const struct drm_plane_funcs
> intel_cursor_plane_funcs = {
>       .atomic_duplicate_state = intel_plane_duplicate_state,
>       .atomic_destroy_state = intel_plane_destroy_state,
>       .format_mod_supported = intel_cursor_format_mod_supported,
> +     .format_mod_supported_async =
> intel_plane_format_mod_supported_async,
>  };
>  
>  static void intel_cursor_add_size_hints_property(struct intel_plane
> *plane)
> diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c
> b/drivers/gpu/drm/i915/display/intel_sprite.c
> index 69b6873a6044..9888a2a43fc5 100644
> --- a/drivers/gpu/drm/i915/display/intel_sprite.c
> +++ b/drivers/gpu/drm/i915/display/intel_sprite.c
> @@ -1567,6 +1567,7 @@ static const struct drm_plane_funcs
> g4x_sprite_funcs = {
>       .atomic_duplicate_state = intel_plane_duplicate_state,
>       .atomic_destroy_state = intel_plane_destroy_state,
>       .format_mod_supported = g4x_sprite_format_mod_supported,
> +     .format_mod_supported_async =
> intel_plane_format_mod_supported_async,
>  };
>  
>  static const struct drm_plane_funcs snb_sprite_funcs = {
> @@ -1576,6 +1577,7 @@ static const struct drm_plane_funcs
> snb_sprite_funcs = {
>       .atomic_duplicate_state = intel_plane_duplicate_state,
>       .atomic_destroy_state = intel_plane_destroy_state,
>       .format_mod_supported = snb_sprite_format_mod_supported,
> +     .format_mod_supported_async =
> intel_plane_format_mod_supported_async,
>  };
>  
>  static const struct drm_plane_funcs vlv_sprite_funcs = {
> @@ -1585,6 +1587,7 @@ static const struct drm_plane_funcs
> vlv_sprite_funcs = {
>       .atomic_duplicate_state = intel_plane_duplicate_state,
>       .atomic_destroy_state = intel_plane_destroy_state,
>       .format_mod_supported = vlv_sprite_format_mod_supported,
> +     .format_mod_supported_async =
> intel_plane_format_mod_supported_async,
>  };
>  
>  struct intel_plane *

Reply via email to