[igt-dev] [PATCH i-g-t] lib/i915_blt: Equalize pitch and aux-ccs for full resolve
Zbigniew Kempczyński
zbigniew.kempczynski at intel.com
Thu Oct 20 06:53:37 UTC 2022
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);
+ }
+
data->dw01.dst_mocs = blt->dst.mocs;
data->dw01.dst_compression = blt->dst.compression;
data->dw01.dst_tiling = __block_tiling(blt->dst.tiling);
--
2.34.1
More information about the igt-dev
mailing list