[PATCH i-g-t 15/37] lib/igt_fb: Extract ccs_needs_enginecopy()

Juha-Pekka Heikkila juhapekka.heikkila at gmail.com
Tue Aug 27 16:34:06 UTC 2024


Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>

On 3.7.2024 2.27, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> 
> We have two copies of the code to determine if CCS needs to
> use enginecopy. Extract the code to a helper.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> ---
>   lib/igt_fb.c | 29 +++++++++++++++++++++--------
>   1 file changed, 21 insertions(+), 8 deletions(-)
> 
> diff --git a/lib/igt_fb.c b/lib/igt_fb.c
> index c48a61b5f148..6c9b4b7f3107 100644
> --- a/lib/igt_fb.c
> +++ b/lib/igt_fb.c
> @@ -2494,17 +2494,29 @@ static bool block_copy_ok(const struct igt_fb *fb)
>   					       fb_tile_to_blt_tile(fb->modifier));
>   }
>   
> +static bool ccs_needs_enginecopy(const struct igt_fb *fb)
> +{
> +	if (is_gen12_mc_ccs_modifier(fb->modifier))
> +		return true;
> +
> +	if (is_ccs_modifier(fb->modifier) &&
> +	    !HAS_FLATCCS(intel_get_drm_devid(fb->fd)))
> +		return true;
> +
> +	return false;
> +}
> +
>   static bool blitter_ok(const struct igt_fb *fb)
>   {
>   	if (!is_intel_device(fb->fd))
>   		return false;
>   
> -	if ((!HAS_FLATCCS(intel_get_drm_devid(fb->fd)) &&
> -	    is_ccs_modifier(fb->modifier)) ||
> -	    is_gen12_mc_ccs_modifier(fb->modifier) ||
> -	    (!blt_uses_extended_block_copy(fb->fd) &&
> +	if (ccs_needs_enginecopy(fb))
> +		return false;
> +
> +	if (!blt_uses_extended_block_copy(fb->fd) &&
>   	    fb->modifier == I915_FORMAT_MOD_X_TILED &&
> -	    is_xe_device(fb->fd)))
> +	    is_xe_device(fb->fd))
>   		return false;
>   
>   	if (is_xe_device(fb->fd))
> @@ -2544,10 +2556,11 @@ static bool use_enginecopy(const struct igt_fb *fb)
>   	if (blitter_ok(fb))
>   		return false;
>   
> +	if (ccs_needs_enginecopy(fb))
> +		return true;
> +
>   	return fb->modifier == I915_FORMAT_MOD_Yf_TILED ||
> -	       fb->modifier == I915_FORMAT_MOD_X_TILED ||
> -	       (!HAS_FLATCCS(intel_get_drm_devid(fb->fd)) && is_ccs_modifier(fb->modifier)) ||
> -	       is_gen12_mc_ccs_modifier(fb->modifier);
> +		fb->modifier == I915_FORMAT_MOD_X_TILED;
>   }
>   
>   static bool use_blitter(const struct igt_fb *fb)



More information about the igt-dev mailing list