[igt-dev] [PATCH i-g-t] lib/i915_blt: Equalize pitch and aux-ccs for full resolve

Karolina Drobnik karolina.drobnik at intel.com
Fri Oct 21 09:28:40 UTC 2022


On 20.10.2022 08:53, Zbigniew Kempczyński wrote:
> According to documentation and hw team suggestion use source pitch
> and aux-ccs in destination object when inplace decompression is
> performed (full-resolve operation).
> 
> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
> Cc: Karolina Drobnik <karolina.drobnik at intel.com>
> 
> ---
> v2: group assignments in if/else
> ---
>   lib/i915/i915_blt.c | 10 ++++++++--
>   1 file changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/lib/i915/i915_blt.c b/lib/i915/i915_blt.c
> index 8d46e51fb7..a886c1d72d 100644
> --- a/lib/i915/i915_blt.c
> +++ b/lib/i915/i915_blt.c
> @@ -317,8 +317,14 @@ static void fill_data(struct gen12_block_copy_data *data,
>   	data->dw00.special_mode = __special_mode(blt);
>   	data->dw00.length = extended_command ? 20 : 10;
>   
> -	data->dw01.dst_pitch = blt->dst.pitch - 1;
> -	data->dw01.dst_aux_mode = __aux_mode(&blt->dst);
> +	if (__special_mode(blt) == SM_FULL_RESOLVE) {
> +		data->dw01.dst_pitch = blt->src.pitch - 1;
> +		data->dw01.dst_aux_mode = __aux_mode(&blt->src);
> +	} else {
> +		data->dw01.dst_pitch = blt->dst.pitch - 1;
> +		data->dw01.dst_aux_mode = __aux_mode(&blt->dst);
> +	}
> +

iirc, with FULL_RESOLVE, we want to have identical src and dst
configuration, not just aux and pitch. Still, these were the only
differences we found when analysing bbs (and it would be hard to
restructure fill_data() to do it), so I'm fine with this change.

Reviewed-by: Karolina Drobnik <karolina.drobnik at intel.com>

>   	data->dw01.dst_mocs = blt->dst.mocs;
>   	data->dw01.dst_compression = blt->dst.compression;
>   	data->dw01.dst_tiling = __block_tiling(blt->dst.tiling);


More information about the igt-dev mailing list