[PATCH i-g-t 20/37] lib/igt_fb: Adjust how we pick the blitter compression format

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


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

On 3.7.2024 2.28, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> 
> Instead doing this bpp vs. format thing based on the compression
> type, let's stick with the format. In order to avoid having to
> populate the table with all the different swizzles we'll pass
> the format through igt_reduce_format().
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> ---
>   lib/igt_fb.c | 15 +++++++--------
>   1 file changed, 7 insertions(+), 8 deletions(-)
> 
> diff --git a/lib/igt_fb.c b/lib/igt_fb.c
> index 4ef1945e4333..fd115f833bc5 100644
> --- a/lib/igt_fb.c
> +++ b/lib/igt_fb.c
> @@ -2875,23 +2875,22 @@ static enum blt_color_depth blt_get_bpp(const struct igt_fb *fb)
>   			  x.compression_type == COMPRESSION_TYPE_MEDIA)
>   
>   const struct {
> -	uint32_t key;
> +	uint32_t format;
>   	enum blt_compression_type type;
>   	uint32_t return_value;
>   } compression_mappings[] = {
> -	{ CD_32bit, COMPRESSION_TYPE_3D, 8 },
> +	{ DRM_FORMAT_XRGB8888, COMPRESSION_TYPE_3D, 0x8 },
>   	{ DRM_FORMAT_XRGB8888, COMPRESSION_TYPE_MEDIA, 8 },
>   	{ DRM_FORMAT_XYUV8888, COMPRESSION_TYPE_MEDIA, 9 },
>   	{ DRM_FORMAT_NV12, COMPRESSION_TYPE_MEDIA, 9 },
>   	{ DRM_FORMAT_P010, COMPRESSION_TYPE_MEDIA, 8 },
> -	{ DRM_FORMAT_P012, COMPRESSION_TYPE_MEDIA, 8 },
> -	{ DRM_FORMAT_P016, COMPRESSION_TYPE_MEDIA, 8 },
>   };
>   
> -static uint32_t get_compression_return_value(uint32_t key, enum  blt_compression_type type)
> +static uint32_t get_compression_return_value(uint32_t format,
> +					     enum  blt_compression_type type)
>   {
>   	for (int i = 0; i < ARRAY_SIZE(compression_mappings); i++) {
> -		if (compression_mappings[i].key == key &&
> +		if (compression_mappings[i].format == format &&
>   		    compression_mappings[i].type == type) {
>   			return compression_mappings[i].return_value;
>   		}
> @@ -2908,11 +2907,11 @@ static uint32_t blt_compression_format(struct blt_copy_data *blt,
>   		return 0;
>   
>   	if (BLT_TARGET_RC(blt->src) || BLT_TARGET_RC(blt->dst))
> -		return get_compression_return_value(blt->color_depth,
> +		return get_compression_return_value(igt_reduce_format(fb->drm_format),
>   						    COMPRESSION_TYPE_3D);
>   
>   	if (BLT_TARGET_MC(blt->src))
> -		return get_compression_return_value(fb->drm_format,
> +		return get_compression_return_value(igt_reduce_format(fb->drm_format),
>   						    COMPRESSION_TYPE_MEDIA);
>   
>   	if (BLT_TARGET_MC(blt->dst))



More information about the igt-dev mailing list