All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t 0/2] lib/i915_blt: Minor blt_create_object refactoring
@ 2023-01-23 10:52 Karolina Stolarek
  2023-01-23 10:52 ` [igt-dev] [PATCH i-g-t 1/2] lib/i915_blt: Remove create_mapping flag from blt_create_object Karolina Stolarek
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Karolina Stolarek @ 2023-01-23 10:52 UTC (permalink / raw)
  To: igt-dev

The series consists of two patches. The first one removes
"create_mapping" param  in blt_create_object() param that seems
to not be used by the tests. The second one attempts to slightly
split up the creation of copy objects for fast and block copy.
Fast copy doesn't provide compression-backed copy, so we shouldn't
have to pass compression information when creating an object.

Karolina Stolarek (2):
  lib/i915_blt: Remove create_mapping flag from blt_create_object
  lib/i915_blt: Split up blt_copy_object functions

 lib/i915/i915_blt.c            | 94 ++++++++++++++++++++++++----------
 lib/i915/i915_blt.h            | 30 ++++++-----
 tests/i915/gem_ccs.c           | 39 +++++++-------
 tests/i915/gem_exercise_blt.c  | 18 +++----
 tests/i915/gem_lmem_swapping.c | 13 ++---
 5 files changed, 117 insertions(+), 77 deletions(-)

-- 
2.25.1

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [igt-dev] [PATCH i-g-t 1/2] lib/i915_blt: Remove create_mapping flag from blt_create_object
  2023-01-23 10:52 [igt-dev] [PATCH i-g-t 0/2] lib/i915_blt: Minor blt_create_object refactoring Karolina Stolarek
@ 2023-01-23 10:52 ` Karolina Stolarek
  2023-01-26 12:00   ` Zbigniew Kempczyński
  2023-01-23 10:52 ` [igt-dev] [PATCH i-g-t 2/2] lib/i915_blt: Split up blt_copy_object functions Karolina Stolarek
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 11+ messages in thread
From: Karolina Stolarek @ 2023-01-23 10:52 UTC (permalink / raw)
  To: igt-dev

In the tests we have, we always set create_mapping flag to true, as we
wish to create memory mappings when creating blitter copy objects. As
this is the only use case, we can delete the flag and just create a
mapping.

Cc: Zbigniew Kempczynski <zbigniew.kempczynski@intel.com>
Signed-off-by: Karolina Stolarek <karolina.stolarek@intel.com>
---
 lib/i915/i915_blt.c           |  8 +++-----
 lib/i915/i915_blt.h           |  3 +--
 tests/i915/gem_ccs.c          | 14 +++++++-------
 tests/i915/gem_exercise_blt.c | 12 ++++++------
 4 files changed, 17 insertions(+), 20 deletions(-)

diff --git a/lib/i915/i915_blt.c b/lib/i915/i915_blt.c
index bbfb6ffc..3e64efeb 100644
--- a/lib/i915/i915_blt.c
+++ b/lib/i915/i915_blt.c
@@ -1219,8 +1219,7 @@ blt_create_object(int i915, uint32_t region,
 		  uint32_t width, uint32_t height, uint32_t bpp, uint8_t mocs,
 		  enum blt_tiling_type tiling,
 		  enum blt_compression compression,
-		  enum blt_compression_type compression_type,
-		  bool create_mapping)
+		  enum blt_compression_type compression_type)
 {
 	struct blt_copy_object *obj;
 	uint64_t size = width * height * bpp / 8;
@@ -1237,9 +1236,8 @@ blt_create_object(int i915, uint32_t region,
 		       compression, compression_type);
 	blt_set_geom(obj, stride, 0, 0, width, height, 0, 0);
 
-	if (create_mapping)
-		obj->ptr = gem_mmap__device_coherent(i915, handle, 0, size,
-						     PROT_READ | PROT_WRITE);
+	obj->ptr = gem_mmap__device_coherent(i915, handle, 0, size,
+					     PROT_READ | PROT_WRITE);
 
 	return obj;
 }
diff --git a/lib/i915/i915_blt.h b/lib/i915/i915_blt.h
index 299dff8e..eaf4cc1f 100644
--- a/lib/i915/i915_blt.h
+++ b/lib/i915/i915_blt.h
@@ -218,8 +218,7 @@ blt_create_object(int i915, uint32_t region,
 		  uint32_t width, uint32_t height, uint32_t bpp, uint8_t mocs,
 		  enum blt_tiling_type tiling,
 		  enum blt_compression compression,
-		  enum blt_compression_type compression_type,
-		  bool create_mapping);
+		  enum blt_compression_type compression_type);
 void blt_destroy_object(int i915, struct blt_copy_object *obj);
 void blt_set_object(struct blt_copy_object *obj,
 		    uint32_t handle, uint64_t size, uint32_t region,
diff --git a/tests/i915/gem_ccs.c b/tests/i915/gem_ccs.c
index f629f664..b7a32673 100644
--- a/tests/i915/gem_ccs.c
+++ b/tests/i915/gem_ccs.c
@@ -361,11 +361,11 @@ static void block_copy(int i915,
 		pext = NULL;
 
 	src = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
-				T_LINEAR, COMPRESSION_DISABLED, comp_type, true);
+				T_LINEAR, COMPRESSION_DISABLED, comp_type);
 	mid = blt_create_object(i915, mid_region, width, height, bpp, uc_mocs,
-				mid_tiling, mid_compression, comp_type, true);
+				mid_tiling, mid_compression, comp_type);
 	dst = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
-				T_LINEAR, COMPRESSION_DISABLED, comp_type, true);
+				T_LINEAR, COMPRESSION_DISABLED, comp_type);
 	igt_assert(src->size == dst->size);
 	PRINT_SURFACE_INFO("src", src);
 	PRINT_SURFACE_INFO("mid", mid);
@@ -477,13 +477,13 @@ static void block_multicopy(int i915,
 		pext3 = NULL;
 
 	src = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
-				T_LINEAR, COMPRESSION_DISABLED, comp_type, true);
+				T_LINEAR, COMPRESSION_DISABLED, comp_type);
 	mid = blt_create_object(i915, mid_region, width, height, bpp, uc_mocs,
-				mid_tiling, mid_compression, comp_type, true);
+				mid_tiling, mid_compression, comp_type);
 	dst = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
-				mid_tiling, COMPRESSION_DISABLED, comp_type, true);
+				mid_tiling, COMPRESSION_DISABLED, comp_type);
 	final = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
-				  T_LINEAR, COMPRESSION_DISABLED, comp_type, true);
+				  T_LINEAR, COMPRESSION_DISABLED, comp_type);
 	igt_assert(src->size == dst->size);
 	PRINT_SURFACE_INFO("src", src);
 	PRINT_SURFACE_INFO("mid", mid);
diff --git a/tests/i915/gem_exercise_blt.c b/tests/i915/gem_exercise_blt.c
index 02c54f85..b1123356 100644
--- a/tests/i915/gem_exercise_blt.c
+++ b/tests/i915/gem_exercise_blt.c
@@ -136,11 +136,11 @@ static void fast_copy_emit(int i915, const intel_ctx_t *ctx,
 	igt_assert(__gem_create_in_memory_regions(i915, &bb, &bb_size, region1) == 0);
 
 	src = blt_create_object(i915, region1, width, height, bpp, 0,
-				T_LINEAR, COMPRESSION_DISABLED, 0, true);
+				T_LINEAR, COMPRESSION_DISABLED, 0);
 	mid = blt_create_object(i915, region2, width, height, bpp, 0,
-				mid_tiling, COMPRESSION_DISABLED, 0, true);
+				mid_tiling, COMPRESSION_DISABLED, 0);
 	dst = blt_create_object(i915, region1, width, height, bpp, 0,
-				T_LINEAR, COMPRESSION_DISABLED, 0, true);
+				T_LINEAR, COMPRESSION_DISABLED, 0);
 	igt_assert(src->size == dst->size);
 
 	PRINT_SURFACE_INFO("src", src);
@@ -196,11 +196,11 @@ static void fast_copy(int i915, const intel_ctx_t *ctx,
 	igt_assert(__gem_create_in_memory_regions(i915, &bb, &bb_size, region1) == 0);
 
 	src = blt_create_object(i915, region1, width, height, bpp, 0,
-				T_LINEAR, COMPRESSION_DISABLED, 0, true);
+				T_LINEAR, COMPRESSION_DISABLED, 0);
 	mid = blt_create_object(i915, region2, width, height, bpp, 0,
-				mid_tiling, COMPRESSION_DISABLED, 0, true);
+				mid_tiling, COMPRESSION_DISABLED, 0);
 	dst = blt_create_object(i915, region1, width, height, bpp, 0,
-				T_LINEAR, COMPRESSION_DISABLED, 0, true);
+				T_LINEAR, COMPRESSION_DISABLED, 0);
 	igt_assert(src->size == dst->size);
 
 	blt_surface_fill_rect(i915, src, width, height);
-- 
2.25.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [igt-dev] [PATCH i-g-t 2/2] lib/i915_blt: Split up blt_copy_object functions
  2023-01-23 10:52 [igt-dev] [PATCH i-g-t 0/2] lib/i915_blt: Minor blt_create_object refactoring Karolina Stolarek
  2023-01-23 10:52 ` [igt-dev] [PATCH i-g-t 1/2] lib/i915_blt: Remove create_mapping flag from blt_create_object Karolina Stolarek
@ 2023-01-23 10:52 ` Karolina Stolarek
  2023-01-26 12:13   ` Zbigniew Kempczyński
  2023-01-23 12:52 ` [igt-dev] ✓ Fi.CI.BAT: success for lib/i915_blt: Minor blt_create_object refactoring Patchwork
  2023-01-24  1:55 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  3 siblings, 1 reply; 11+ messages in thread
From: Karolina Stolarek @ 2023-01-23 10:52 UTC (permalink / raw)
  To: igt-dev

Add dedicated functions to set and create blt_copy_object depending on
the copy type. Extract the common path so it can be called both in fast
and block copy setup. Move mocs field in blt_copy_object so it's next
to the compression-specific fields.

Signed-off-by: Karolina Stolarek <karolina.stolarek@intel.com>
---
 lib/i915/i915_blt.c            | 92 ++++++++++++++++++++++++----------
 lib/i915/i915_blt.h            | 29 +++++++----
 tests/i915/gem_ccs.c           | 39 +++++++-------
 tests/i915/gem_exercise_blt.c  | 18 +++----
 tests/i915/gem_lmem_swapping.c | 13 ++---
 5 files changed, 117 insertions(+), 74 deletions(-)

diff --git a/lib/i915/i915_blt.c b/lib/i915/i915_blt.c
index 3e64efeb..979c7161 100644
--- a/lib/i915/i915_blt.c
+++ b/lib/i915/i915_blt.c
@@ -1214,12 +1214,29 @@ void blt_set_batch(struct blt_copy_batch *batch,
 	batch->region = region;
 }
 
-struct blt_copy_object *
-blt_create_object(int i915, uint32_t region,
-		  uint32_t width, uint32_t height, uint32_t bpp, uint8_t mocs,
-		  enum blt_tiling_type tiling,
-		  enum blt_compression compression,
-		  enum blt_compression_type compression_type)
+static void blt_set_object_common(struct blt_copy_object *obj,
+				  uint32_t handle, uint64_t size,
+				  uint32_t region, enum blt_tiling_type tiling)
+{
+	obj->handle = handle;
+	obj->size = size;
+	obj->region = region;
+	obj->tiling = tiling;
+}
+
+static void blt_set_object_compression(struct blt_copy_object *obj, uint8_t mocs,
+				       enum blt_compression compression,
+				       enum blt_compression_type compression_type)
+{
+	obj->mocs = mocs;
+	obj->compression = compression;
+	obj->compression_type = compression_type;
+}
+
+static struct blt_copy_object *
+blt_create_object_common(int i915, uint32_t region, uint32_t width,
+			 uint32_t height, uint32_t bpp,
+			 enum blt_tiling_type tiling)
 {
 	struct blt_copy_object *obj;
 	uint64_t size = width * height * bpp / 8;
@@ -1228,20 +1245,58 @@ blt_create_object(int i915, uint32_t region,
 
 	obj = calloc(1, sizeof(*obj));
 
-	obj->size = size;
 	igt_assert(__gem_create_in_memory_regions(i915, &handle,
 						  &size, region) == 0);
+	obj->ptr = gem_mmap__device_coherent(i915, handle, 0, size,
+					     PROT_READ | PROT_WRITE);
+	obj->size = size;
 
-	blt_set_object(obj, handle, size, region, mocs, tiling,
-		       compression, compression_type);
+	blt_set_object_common(obj, handle, size, region, tiling);
 	blt_set_geom(obj, stride, 0, 0, width, height, 0, 0);
 
-	obj->ptr = gem_mmap__device_coherent(i915, handle, 0, size,
-					     PROT_READ | PROT_WRITE);
+	return obj;
+}
+
+struct blt_copy_object *
+blt_create_block_object(int i915, uint32_t region,
+			uint32_t width, uint32_t height, uint32_t bpp,
+			uint8_t mocs, enum blt_tiling_type tiling,
+			enum blt_compression compression,
+			enum blt_compression_type compression_type)
+{
+	struct blt_copy_object *obj;
+
+	obj = blt_create_object_common(i915, region, width, height, bpp, tiling);
+	blt_set_object_compression(obj, mocs, compression, compression_type);
 
 	return obj;
 }
 
+struct blt_copy_object *
+blt_create_fast_object(int i915, uint32_t region, uint32_t width,
+		       uint32_t height, uint32_t bpp,
+		       enum blt_tiling_type tiling)
+{
+	return blt_create_object_common(i915, region, width, height, bpp, tiling);
+}
+
+void blt_set_block_object(struct blt_copy_object *obj,
+			  uint32_t handle, uint64_t size, uint32_t region,
+			  uint8_t mocs, enum blt_tiling_type tiling,
+			  enum blt_compression compression,
+			  enum blt_compression_type compression_type)
+{
+	blt_set_object_common(obj, handle, size, region, tiling);
+	blt_set_object_compression(obj, mocs, compression, compression_type);
+}
+
+void blt_set_fast_object(struct blt_copy_object *obj,
+			 uint32_t handle, uint64_t size,
+			 uint32_t region, enum blt_tiling_type tiling)
+{
+	blt_set_object_common(obj, handle, size, region, tiling);
+}
+
 void blt_destroy_object(int i915, struct blt_copy_object *obj)
 {
 	if (obj->ptr)
@@ -1251,21 +1306,6 @@ void blt_destroy_object(int i915, struct blt_copy_object *obj)
 	free(obj);
 }
 
-void blt_set_object(struct blt_copy_object *obj,
-		    uint32_t handle, uint64_t size, uint32_t region,
-		    uint8_t mocs, enum blt_tiling_type tiling,
-		    enum blt_compression compression,
-		    enum blt_compression_type compression_type)
-{
-	obj->handle = handle;
-	obj->size = size;
-	obj->region = region;
-	obj->mocs = mocs;
-	obj->tiling = tiling;
-	obj->compression = compression;
-	obj->compression_type = compression_type;
-}
-
 void blt_set_object_ext(struct blt_block_copy_object_ext *obj,
 			uint8_t compression_format,
 			uint16_t surface_width, uint16_t surface_height,
diff --git a/lib/i915/i915_blt.h b/lib/i915/i915_blt.h
index eaf4cc1f..1bd29c8c 100644
--- a/lib/i915/i915_blt.h
+++ b/lib/i915/i915_blt.h
@@ -75,8 +75,8 @@ struct blt_copy_object {
 	uint32_t handle;
 	uint32_t region;
 	uint64_t size;
-	uint8_t mocs;
 	enum blt_tiling_type tiling;
+	uint8_t mocs; /* BC only */
 	enum blt_compression compression;  /* BC only */
 	enum blt_compression_type compression_type; /* BC only */
 	uint32_t pitch;
@@ -214,17 +214,24 @@ void blt_set_batch(struct blt_copy_batch *batch,
 		   uint32_t handle, uint64_t size, uint32_t region);
 
 struct blt_copy_object *
-blt_create_object(int i915, uint32_t region,
-		  uint32_t width, uint32_t height, uint32_t bpp, uint8_t mocs,
-		  enum blt_tiling_type tiling,
-		  enum blt_compression compression,
-		  enum blt_compression_type compression_type);
+blt_create_block_object(int i915, uint32_t region,
+			uint32_t width, uint32_t height, uint32_t bpp,
+			uint8_t mocs, enum blt_tiling_type tiling,
+			enum blt_compression compression,
+			enum blt_compression_type compression_type);
+struct blt_copy_object *
+blt_create_fast_object(int i915, uint32_t region,
+		       uint32_t width, uint32_t height, uint32_t bpp,
+		       enum blt_tiling_type tiling);
 void blt_destroy_object(int i915, struct blt_copy_object *obj);
-void blt_set_object(struct blt_copy_object *obj,
-		    uint32_t handle, uint64_t size, uint32_t region,
-		    uint8_t mocs, enum blt_tiling_type tiling,
-		    enum blt_compression compression,
-		    enum blt_compression_type compression_type);
+void blt_set_block_object(struct blt_copy_object *obj,
+			  uint32_t handle, uint64_t size, uint32_t region,
+			  uint8_t mocs, enum blt_tiling_type tiling,
+			  enum blt_compression compression,
+			  enum blt_compression_type compression_type);
+void blt_set_fast_object(struct blt_copy_object *obj,
+			 uint32_t handle, uint64_t size, uint32_t region,
+			 enum blt_tiling_type tiling);
 void blt_set_object_ext(struct blt_block_copy_object_ext *obj,
 			uint8_t compression_format,
 			uint16_t surface_width, uint16_t surface_height,
diff --git a/tests/i915/gem_ccs.c b/tests/i915/gem_ccs.c
index b7a32673..7e16c792 100644
--- a/tests/i915/gem_ccs.c
+++ b/tests/i915/gem_ccs.c
@@ -360,12 +360,12 @@ static void block_copy(int i915,
 	if (!blt_supports_compression(i915) && !IS_METEORLAKE(devid))
 		pext = NULL;
 
-	src = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
-				T_LINEAR, COMPRESSION_DISABLED, comp_type);
-	mid = blt_create_object(i915, mid_region, width, height, bpp, uc_mocs,
-				mid_tiling, mid_compression, comp_type);
-	dst = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
-				T_LINEAR, COMPRESSION_DISABLED, comp_type);
+	src = blt_create_block_object(i915, region1, width, height, bpp, uc_mocs,
+				      T_LINEAR, COMPRESSION_DISABLED, comp_type);
+	mid = blt_create_block_object(i915, mid_region, width, height, bpp, uc_mocs,
+				      mid_tiling, mid_compression, comp_type);
+	dst = blt_create_block_object(i915, region1, width, height, bpp, uc_mocs,
+				      T_LINEAR, COMPRESSION_DISABLED, comp_type);
 	igt_assert(src->size == dst->size);
 	PRINT_SURFACE_INFO("src", src);
 	PRINT_SURFACE_INFO("mid", mid);
@@ -428,8 +428,9 @@ static void block_copy(int i915,
 	blt_set_object_ext(&ext.src, mid_compression_format, width, height, SURFACE_TYPE_2D);
 	blt_set_object_ext(&ext.dst, 0, width, height, SURFACE_TYPE_2D);
 	if (config->inplace) {
-		blt_set_object(&blt.dst, mid->handle, dst->size, mid->region, 0,
-			       T_LINEAR, COMPRESSION_DISABLED, comp_type);
+		blt_set_block_object(&blt.dst, mid->handle, dst->size,
+				     mid->region, 0, T_LINEAR,
+				     COMPRESSION_DISABLED, comp_type);
 		blt.dst.ptr = mid->ptr;
 	}
 
@@ -476,14 +477,14 @@ static void block_multicopy(int i915,
 	if (!blt_supports_compression(i915))
 		pext3 = NULL;
 
-	src = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
-				T_LINEAR, COMPRESSION_DISABLED, comp_type);
-	mid = blt_create_object(i915, mid_region, width, height, bpp, uc_mocs,
-				mid_tiling, mid_compression, comp_type);
-	dst = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
-				mid_tiling, COMPRESSION_DISABLED, comp_type);
-	final = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
-				  T_LINEAR, COMPRESSION_DISABLED, comp_type);
+	src = blt_create_block_object(i915, region1, width, height, bpp, uc_mocs,
+				      T_LINEAR, COMPRESSION_DISABLED, comp_type);
+	mid = blt_create_block_object(i915, mid_region, width, height, bpp,
+				      uc_mocs, mid_tiling, mid_compression, comp_type);
+	dst = blt_create_block_object(i915, region1, width, height, bpp, uc_mocs,
+				      mid_tiling, COMPRESSION_DISABLED, comp_type);
+	final = blt_create_block_object(i915, region1, width, height, bpp, uc_mocs,
+					T_LINEAR, COMPRESSION_DISABLED, comp_type);
 	igt_assert(src->size == dst->size);
 	PRINT_SURFACE_INFO("src", src);
 	PRINT_SURFACE_INFO("mid", mid);
@@ -501,9 +502,9 @@ static void block_multicopy(int i915,
 	blt_set_copy_object(&blt3.final, final);
 
 	if (config->inplace) {
-		blt_set_object(&blt3.dst, mid->handle, dst->size, mid->region,
-			       mid->mocs, mid_tiling, COMPRESSION_DISABLED,
-			       comp_type);
+		blt_set_block_object(&blt3.dst, mid->handle, dst->size,
+				     mid->region, mid->mocs, mid_tiling,
+				     COMPRESSION_DISABLED, comp_type);
 		blt3.dst.ptr = mid->ptr;
 	}
 
diff --git a/tests/i915/gem_exercise_blt.c b/tests/i915/gem_exercise_blt.c
index b1123356..5b7178df 100644
--- a/tests/i915/gem_exercise_blt.c
+++ b/tests/i915/gem_exercise_blt.c
@@ -135,12 +135,9 @@ static void fast_copy_emit(int i915, const intel_ctx_t *ctx,
 
 	igt_assert(__gem_create_in_memory_regions(i915, &bb, &bb_size, region1) == 0);
 
-	src = blt_create_object(i915, region1, width, height, bpp, 0,
-				T_LINEAR, COMPRESSION_DISABLED, 0);
-	mid = blt_create_object(i915, region2, width, height, bpp, 0,
-				mid_tiling, COMPRESSION_DISABLED, 0);
-	dst = blt_create_object(i915, region1, width, height, bpp, 0,
-				T_LINEAR, COMPRESSION_DISABLED, 0);
+	src = blt_create_fast_object(i915, region1, width, height, bpp, T_LINEAR);
+	mid = blt_create_fast_object(i915, region2, width, height, bpp, mid_tiling);
+	dst = blt_create_fast_object(i915, region1, width, height, bpp, T_LINEAR);
 	igt_assert(src->size == dst->size);
 
 	PRINT_SURFACE_INFO("src", src);
@@ -195,12 +192,9 @@ static void fast_copy(int i915, const intel_ctx_t *ctx,
 
 	igt_assert(__gem_create_in_memory_regions(i915, &bb, &bb_size, region1) == 0);
 
-	src = blt_create_object(i915, region1, width, height, bpp, 0,
-				T_LINEAR, COMPRESSION_DISABLED, 0);
-	mid = blt_create_object(i915, region2, width, height, bpp, 0,
-				mid_tiling, COMPRESSION_DISABLED, 0);
-	dst = blt_create_object(i915, region1, width, height, bpp, 0,
-				T_LINEAR, COMPRESSION_DISABLED, 0);
+	src = blt_create_fast_object(i915, region1, width, height, bpp, T_LINEAR);
+	mid = blt_create_fast_object(i915, region2, width, height, bpp, mid_tiling);
+	dst = blt_create_fast_object(i915, region1, width, height, bpp, T_LINEAR);
 	igt_assert(src->size == dst->size);
 
 	blt_surface_fill_rect(i915, src, width, height);
diff --git a/tests/i915/gem_lmem_swapping.c b/tests/i915/gem_lmem_swapping.c
index 55b044ec..3a6308ed 100644
--- a/tests/i915/gem_lmem_swapping.c
+++ b/tests/i915/gem_lmem_swapping.c
@@ -317,9 +317,9 @@ static void __do_evict(int i915,
 
 		tmp->handle = gem_create_in_memory_regions(i915, params->size.max,
 				   INTEL_MEMORY_REGION_ID(I915_SYSTEM_MEMORY, 0));
-		blt_set_object(tmp, tmp->handle, params->size.max,
-			       INTEL_MEMORY_REGION_ID(I915_SYSTEM_MEMORY, 0),
-			       intel_get_uc_mocs(i915), T_LINEAR,
+		blt_set_block_object(tmp, tmp->handle, params->size.max,
+				     INTEL_MEMORY_REGION_ID(I915_SYSTEM_MEMORY, 0),
+				     intel_get_uc_mocs(i915), T_LINEAR,
 			       COMPRESSION_DISABLED, COMPRESSION_TYPE_3D);
 		blt_set_geom(tmp, stride, 0, 0, width, height, 0, 0);
 	}
@@ -348,9 +348,10 @@ static void __do_evict(int i915,
 
 			obj->blt_obj = calloc(1, sizeof(*obj->blt_obj));
 			igt_assert(obj->blt_obj);
-			blt_set_object(obj->blt_obj, obj->handle, obj->size, region_id,
-				       intel_get_uc_mocs(i915), T_LINEAR,
-				       COMPRESSION_ENABLED, COMPRESSION_TYPE_3D);
+			blt_set_block_object(obj->blt_obj, obj->handle, obj->size,
+					     region_id, intel_get_uc_mocs(i915),
+					     T_LINEAR, COMPRESSION_ENABLED,
+					     COMPRESSION_TYPE_3D);
 			blt_set_geom(obj->blt_obj, stride, 0, 0, width, height, 0, 0);
 			init_object_ccs(i915, obj, tmp, rand(), blt_ctx,
 					region_id, ahnd);
-- 
2.25.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [igt-dev] ✓ Fi.CI.BAT: success for lib/i915_blt: Minor blt_create_object refactoring
  2023-01-23 10:52 [igt-dev] [PATCH i-g-t 0/2] lib/i915_blt: Minor blt_create_object refactoring Karolina Stolarek
  2023-01-23 10:52 ` [igt-dev] [PATCH i-g-t 1/2] lib/i915_blt: Remove create_mapping flag from blt_create_object Karolina Stolarek
  2023-01-23 10:52 ` [igt-dev] [PATCH i-g-t 2/2] lib/i915_blt: Split up blt_copy_object functions Karolina Stolarek
@ 2023-01-23 12:52 ` Patchwork
  2023-01-24  1:55 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  3 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2023-01-23 12:52 UTC (permalink / raw)
  To: Karolina Stolarek; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 4636 bytes --]

== Series Details ==

Series: lib/i915_blt: Minor blt_create_object refactoring
URL   : https://patchwork.freedesktop.org/series/113222/
State : success

== Summary ==

CI Bug Log - changes from IGT_7132 -> IGTPW_8391
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/index.html

Participating hosts (39 -> 37)
------------------------------

  Additional (1): fi-kbl-soraka 
  Missing    (3): fi-bsw-kefka fi-rkl-guc fi-snb-2520m 

Known issues
------------

  Here are the changes found in IGTPW_8391 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_huc_copy@huc-copy:
    - fi-kbl-soraka:      NOTRUN -> [SKIP][1] ([fdo#109271] / [i915#2190])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/fi-kbl-soraka/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@basic:
    - fi-kbl-soraka:      NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#4613]) +3 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/fi-kbl-soraka/igt@gem_lmem_swapping@basic.html

  * igt@i915_selftest@live@gt_pm:
    - fi-kbl-soraka:      NOTRUN -> [DMESG-FAIL][3] ([i915#1886])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html

  * igt@i915_selftest@live@perf:
    - fi-kbl-soraka:      NOTRUN -> [INCOMPLETE][4] ([i915#1886])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/fi-kbl-soraka/igt@i915_selftest@live@perf.html

  * igt@i915_suspend@basic-s3-without-i915:
    - fi-rkl-11600:       [PASS][5] -> [INCOMPLETE][6] ([i915#4817])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/fi-rkl-11600/igt@i915_suspend@basic-s3-without-i915.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/fi-rkl-11600/igt@i915_suspend@basic-s3-without-i915.html

  * igt@kms_chamelium_frames@hdmi-crc-fast:
    - fi-kbl-soraka:      NOTRUN -> [SKIP][7] ([fdo#109271]) +15 similar issues
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/fi-kbl-soraka/igt@kms_chamelium_frames@hdmi-crc-fast.html

  
#### Possible fixes ####

  * igt@i915_pm_rpm@module-reload:
    - {bat-adlm-1}:       [FAIL][8] -> [PASS][9]
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/bat-adlm-1/igt@i915_pm_rpm@module-reload.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/bat-adlm-1/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live@guc:
    - {bat-rpls-2}:       [DMESG-WARN][10] ([i915#7852]) -> [PASS][11]
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/bat-rpls-2/igt@i915_selftest@live@guc.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/bat-rpls-2/igt@i915_selftest@live@guc.html

  * igt@i915_suspend@basic-s2idle-without-i915:
    - {bat-adlm-1}:       [DMESG-WARN][12] ([i915#2867]) -> [PASS][13] +7 similar issues
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/bat-adlm-1/igt@i915_suspend@basic-s2idle-without-i915.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/bat-adlm-1/igt@i915_suspend@basic-s2idle-without-i915.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#1886]: https://gitlab.freedesktop.org/drm/intel/issues/1886
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867
  [i915#4137]: https://gitlab.freedesktop.org/drm/intel/issues/4137
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4817]: https://gitlab.freedesktop.org/drm/intel/issues/4817
  [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
  [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
  [i915#6257]: https://gitlab.freedesktop.org/drm/intel/issues/6257
  [i915#7699]: https://gitlab.freedesktop.org/drm/intel/issues/7699
  [i915#7852]: https://gitlab.freedesktop.org/drm/intel/issues/7852


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_7132 -> IGTPW_8391

  CI-20190529: 20190529
  CI_DRM_12622: 93e8ce8fb03496d8d0ccf15e7363563af90a4f8f @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8391: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/index.html
  IGT_7132: 29146e71e2adc7ee49e6b65da34be708b115d7c3 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/index.html

[-- Attachment #2: Type: text/html, Size: 5330 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [igt-dev] ✓ Fi.CI.IGT: success for lib/i915_blt: Minor blt_create_object refactoring
  2023-01-23 10:52 [igt-dev] [PATCH i-g-t 0/2] lib/i915_blt: Minor blt_create_object refactoring Karolina Stolarek
                   ` (2 preceding siblings ...)
  2023-01-23 12:52 ` [igt-dev] ✓ Fi.CI.BAT: success for lib/i915_blt: Minor blt_create_object refactoring Patchwork
@ 2023-01-24  1:55 ` Patchwork
  3 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2023-01-24  1:55 UTC (permalink / raw)
  To: Karolina Stolarek; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 23062 bytes --]

== Series Details ==

Series: lib/i915_blt: Minor blt_create_object refactoring
URL   : https://patchwork.freedesktop.org/series/113222/
State : success

== Summary ==

CI Bug Log - changes from IGT_7132_full -> IGTPW_8391_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/index.html

Participating hosts (11 -> 10)
------------------------------

  Missing    (1): shard-rkl0 

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_8391_full:

### IGT changes ###

#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@gem_ccs@ctrl-surf-copy:
    - {shard-rkl}:        [SKIP][1] ([i915#3555] / [i915#5325]) -> [SKIP][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/shard-rkl-1/igt@gem_ccs@ctrl-surf-copy.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-rkl-5/igt@gem_ccs@ctrl-surf-copy.html

  
Known issues
------------

  Here are the changes found in IGTPW_8391_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-glk:          [PASS][3] -> [FAIL][4] ([i915#2842])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/shard-glk4/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-glk4/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gem_lmem_swapping@verify-ccs:
    - shard-apl:          NOTRUN -> [SKIP][5] ([fdo#109271] / [i915#4613])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-apl6/igt@gem_lmem_swapping@verify-ccs.html

  * igt@i915_pm_rps@engine-order:
    - shard-apl:          [PASS][6] -> [FAIL][7] ([i915#6537])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/shard-apl6/igt@i915_pm_rps@engine-order.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-apl6/igt@i915_pm_rps@engine-order.html

  * igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc:
    - shard-apl:          NOTRUN -> [SKIP][8] ([fdo#109271] / [i915#3886]) +2 similar issues
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-apl7/igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_content_protection@atomic-dpms@pipe-a-dp-1:
    - shard-apl:          NOTRUN -> [TIMEOUT][9] ([i915#7173])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-apl2/igt@kms_content_protection@atomic-dpms@pipe-a-dp-1.html

  * igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size:
    - shard-glk:          [PASS][10] -> [FAIL][11] ([i915#2346])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/shard-glk5/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-glk3/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-pwrite:
    - shard-apl:          NOTRUN -> [SKIP][12] ([fdo#109271]) +39 similar issues
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-apl1/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-pwrite.html

  * igt@kms_psr2_sf@cursor-plane-move-continuous-sf:
    - shard-apl:          NOTRUN -> [SKIP][13] ([fdo#109271] / [i915#658])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-apl2/igt@kms_psr2_sf@cursor-plane-move-continuous-sf.html

  * igt@sysfs_clients@sema-25:
    - shard-apl:          NOTRUN -> [SKIP][14] ([fdo#109271] / [i915#2994])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-apl3/igt@sysfs_clients@sema-25.html

  
#### Possible fixes ####

  * igt@drm_fdinfo@virtual-idle:
    - {shard-rkl}:        [FAIL][15] ([i915#7742]) -> [PASS][16] +1 similar issue
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/shard-rkl-2/igt@drm_fdinfo@virtual-idle.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-rkl-1/igt@drm_fdinfo@virtual-idle.html

  * igt@fbdev@unaligned-read:
    - {shard-rkl}:        [SKIP][17] ([i915#2582]) -> [PASS][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/shard-rkl-5/igt@fbdev@unaligned-read.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-rkl-6/igt@fbdev@unaligned-read.html

  * igt@feature_discovery@psr1:
    - {shard-rkl}:        [SKIP][19] ([i915#658]) -> [PASS][20]
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/shard-rkl-5/igt@feature_discovery@psr1.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-rkl-6/igt@feature_discovery@psr1.html

  * igt@gem_ctx_isolation@preservation-s3@vcs0:
    - shard-apl:          [DMESG-WARN][21] ([i915#180]) -> [PASS][22]
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/shard-apl1/igt@gem_ctx_isolation@preservation-s3@vcs0.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-apl7/igt@gem_ctx_isolation@preservation-s3@vcs0.html

  * igt@gem_ctx_persistence@hang:
    - {shard-rkl}:        [SKIP][23] ([i915#6252]) -> [PASS][24]
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/shard-rkl-5/igt@gem_ctx_persistence@hang.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-rkl-3/igt@gem_ctx_persistence@hang.html

  * igt@gem_eio@unwedge-stress:
    - {shard-dg1}:        [FAIL][25] ([i915#5784]) -> [PASS][26]
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/shard-dg1-14/igt@gem_eio@unwedge-stress.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-dg1-13/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_fair@basic-deadline:
    - {shard-rkl}:        [FAIL][27] ([i915#2846]) -> [PASS][28]
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/shard-rkl-2/igt@gem_exec_fair@basic-deadline.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-rkl-3/igt@gem_exec_fair@basic-deadline.html

  * igt@gem_exec_fair@basic-none@rcs0:
    - shard-glk:          [FAIL][29] ([i915#2842]) -> [PASS][30] +1 similar issue
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/shard-glk2/igt@gem_exec_fair@basic-none@rcs0.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-glk5/igt@gem_exec_fair@basic-none@rcs0.html

  * igt@gem_exec_fair@basic-pace-solo@rcs0:
    - shard-apl:          [FAIL][31] ([i915#2842]) -> [PASS][32]
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/shard-apl7/igt@gem_exec_fair@basic-pace-solo@rcs0.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-apl2/igt@gem_exec_fair@basic-pace-solo@rcs0.html

  * igt@gem_exec_reloc@basic-cpu-gtt-noreloc:
    - {shard-rkl}:        [SKIP][33] ([i915#3281]) -> [PASS][34] +2 similar issues
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/shard-rkl-1/igt@gem_exec_reloc@basic-cpu-gtt-noreloc.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-rkl-5/igt@gem_exec_reloc@basic-cpu-gtt-noreloc.html

  * igt@gem_partial_pwrite_pread@write:
    - {shard-rkl}:        [SKIP][35] ([i915#3282]) -> [PASS][36]
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/shard-rkl-1/igt@gem_partial_pwrite_pread@write.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-rkl-5/igt@gem_partial_pwrite_pread@write.html

  * igt@i915_pipe_stress@stress-xrgb8888-ytiled:
    - {shard-rkl}:        [SKIP][37] ([i915#4098]) -> [PASS][38]
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/shard-rkl-3/igt@i915_pipe_stress@stress-xrgb8888-ytiled.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-rkl-6/igt@i915_pipe_stress@stress-xrgb8888-ytiled.html

  * igt@i915_pm_rpm@pm-tiling:
    - {shard-rkl}:        [SKIP][39] ([fdo#109308]) -> [PASS][40]
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/shard-rkl-3/igt@i915_pm_rpm@pm-tiling.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-rkl-6/igt@i915_pm_rpm@pm-tiling.html

  * igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_rc_ccs:
    - {shard-tglu}:       [SKIP][41] ([i915#7651]) -> [PASS][42] +1 similar issue
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/shard-tglu-6/igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_rc_ccs.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-tglu-7/igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_rc_ccs.html

  * igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size:
    - shard-apl:          [FAIL][43] ([i915#2346]) -> [PASS][44]
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/shard-apl3/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-apl1/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt:
    - {shard-rkl}:        [SKIP][45] ([i915#1849] / [i915#4098]) -> [PASS][46] +21 similar issues
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/shard-rkl-2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbc-1p-rte:
    - {shard-tglu}:       [SKIP][47] ([i915#1849]) -> [PASS][48] +1 similar issue
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/shard-tglu-6/igt@kms_frontbuffer_tracking@fbc-1p-rte.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-tglu-5/igt@kms_frontbuffer_tracking@fbc-1p-rte.html

  * igt@kms_plane@plane-position-covered@pipe-a-planes:
    - {shard-rkl}:        [SKIP][49] ([i915#1849]) -> [PASS][50] +2 similar issues
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/shard-rkl-5/igt@kms_plane@plane-position-covered@pipe-a-planes.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-rkl-6/igt@kms_plane@plane-position-covered@pipe-a-planes.html

  * igt@kms_psr@sprite_mmap_gtt:
    - {shard-rkl}:        [SKIP][51] ([i915#1072]) -> [PASS][52] +2 similar issues
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/shard-rkl-2/igt@kms_psr@sprite_mmap_gtt.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-rkl-6/igt@kms_psr@sprite_mmap_gtt.html

  * igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
    - {shard-rkl}:        [SKIP][53] ([i915#5461]) -> [PASS][54]
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/shard-rkl-4/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-rkl-6/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html

  * igt@kms_rotation_crc@primary-rotation-90:
    - {shard-rkl}:        [SKIP][55] ([i915#1845] / [i915#4098]) -> [PASS][56] +30 similar issues
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/shard-rkl-1/igt@kms_rotation_crc@primary-rotation-90.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-rkl-6/igt@kms_rotation_crc@primary-rotation-90.html

  * igt@kms_vblank@pipe-b-accuracy-idle:
    - {shard-tglu}:       [SKIP][57] ([i915#1845] / [i915#7651]) -> [PASS][58]
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/shard-tglu-6/igt@kms_vblank@pipe-b-accuracy-idle.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-tglu-2/igt@kms_vblank@pipe-b-accuracy-idle.html

  * igt@perf@polling-small-buf:
    - {shard-rkl}:        [FAIL][59] ([i915#1722]) -> [PASS][60]
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7132/shard-rkl-3/igt@perf@polling-small-buf.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/shard-rkl-6/igt@perf@polling-small-buf.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [IGT#2]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/2
  [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109279]: https://bugs.freedesktop.org/show_bug.cgi?id=109279
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
  [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [fdo#109303]: https://bugs.freedesktop.org/show_bug.cgi?id=109303
  [fdo#109307]: https://bugs.freedesktop.org/show_bug.cgi?id=109307
  [fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308
  [fdo#109313]: https://bugs.freedesktop.org/show_bug.cgi?id=109313
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
  [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
  [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
  [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
  [fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1257]: https://gitlab.freedesktop.org/drm/intel/issues/1257
  [i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [i915#1722]: https://gitlab.freedesktop.org/drm/intel/issues/1722
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
  [i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
  [i915#1850]: https://gitlab.freedesktop.org/drm/intel/issues/1850
  [i915#1902]: https://gitlab.freedesktop.org/drm/intel/issues/1902
  [i915#2232]: https://gitlab.freedesktop.org/drm/intel/issues/2232
  [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
  [i915#2433]: https://gitlab.freedesktop.org/drm/intel/issues/2433
  [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
  [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
  [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
  [i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658
  [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
  [i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
  [i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
  [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
  [i915#284]: https://gitlab.freedesktop.org/drm/intel/issues/284
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
  [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
  [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
  [i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994
  [i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116
  [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
  [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
  [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
  [i915#3318]: https://gitlab.freedesktop.org/drm/intel/issues/3318
  [i915#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323
  [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
  [i915#3361]: https://gitlab.freedesktop.org/drm/intel/issues/3361
  [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
  [i915#3469]: https://gitlab.freedesktop.org/drm/intel/issues/3469
  [i915#3528]: https://gitlab.freedesktop.org/drm/intel/issues/3528
  [i915#3536]: https://gitlab.freedesktop.org/drm/intel/issues/3536
  [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
  [i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3558]: https://gitlab.freedesktop.org/drm/intel/issues/3558
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
  [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
  [i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
  [i915#3804]: https://gitlab.freedesktop.org/drm/intel/issues/3804
  [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#3952]: https://gitlab.freedesktop.org/drm/intel/issues/3952
  [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
  [i915#3989]: https://gitlab.freedesktop.org/drm/intel/issues/3989
  [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
  [i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
  [i915#4387]: https://gitlab.freedesktop.org/drm/intel/issues/4387
  [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
  [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
  [i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4767]: https://gitlab.freedesktop.org/drm/intel/issues/4767
  [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
  [i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
  [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
  [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
  [i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873
  [i915#4877]: https://gitlab.freedesktop.org/drm/intel/issues/4877
  [i915#4936]: https://gitlab.freedesktop.org/drm/intel/issues/4936
  [i915#4958]: https://gitlab.freedesktop.org/drm/intel/issues/4958
  [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
  [i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288
  [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
  [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439
  [i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461
  [i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
  [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#6227]: https://gitlab.freedesktop.org/drm/intel/issues/6227
  [i915#6230]: https://gitlab.freedesktop.org/drm/intel/issues/6230
  [i915#6248]: https://gitlab.freedesktop.org/drm/intel/issues/6248
  [i915#6252]: https://gitlab.freedesktop.org/drm/intel/issues/6252
  [i915#6493]: https://gitlab.freedesktop.org/drm/intel/issues/6493
  [i915#6497]: https://gitlab.freedesktop.org/drm/intel/issues/6497
  [i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524
  [i915#6537]: https://gitlab.freedesktop.org/drm/intel/issues/6537
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
  [i915#6590]: https://gitlab.freedesktop.org/drm/intel/issues/6590
  [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
  [i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768
  [i915#6944]: https://gitlab.freedesktop.org/drm/intel/issues/6944
  [i915#6953]: https://gitlab.freedesktop.org/drm/intel/issues/6953
  [i915#7052]: https://gitlab.freedesktop.org/drm/intel/issues/7052
  [i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
  [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
  [i915#7128]: https://gitlab.freedesktop.org/drm/intel/issues/7128
  [i915#7173]: https://gitlab.freedesktop.org/drm/intel/issues/7173
  [i915#7294]: https://gitlab.freedesktop.org/drm/intel/issues/7294
  [i915#7443]: https://gitlab.freedesktop.org/drm/intel/issues/7443
  [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
  [i915#7651]: https://gitlab.freedesktop.org/drm/intel/issues/7651
  [i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697
  [i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701
  [i915#7707]: https://gitlab.freedesktop.org/drm/intel/issues/7707
  [i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
  [i915#7742]: https://gitlab.freedesktop.org/drm/intel/issues/7742
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_7132 -> IGTPW_8391

  CI-20190529: 20190529
  CI_DRM_12622: 93e8ce8fb03496d8d0ccf15e7363563af90a4f8f @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8391: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/index.html
  IGT_7132: 29146e71e2adc7ee49e6b65da34be708b115d7c3 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8391/index.html

[-- Attachment #2: Type: text/html, Size: 16856 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 1/2] lib/i915_blt: Remove create_mapping flag from blt_create_object
  2023-01-23 10:52 ` [igt-dev] [PATCH i-g-t 1/2] lib/i915_blt: Remove create_mapping flag from blt_create_object Karolina Stolarek
@ 2023-01-26 12:00   ` Zbigniew Kempczyński
  2023-01-30  8:10     ` Karolina Stolarek
  0 siblings, 1 reply; 11+ messages in thread
From: Zbigniew Kempczyński @ 2023-01-26 12:00 UTC (permalink / raw)
  To: Karolina Stolarek; +Cc: igt-dev

On Mon, Jan 23, 2023 at 11:52:42AM +0100, Karolina Stolarek wrote:
> In the tests we have, we always set create_mapping flag to true, as we
> wish to create memory mappings when creating blitter copy objects. As
> this is the only use case, we can delete the flag and just create a
> mapping.
> 
> Cc: Zbigniew Kempczynski <zbigniew.kempczynski@intel.com>
> Signed-off-by: Karolina Stolarek <karolina.stolarek@intel.com>
> ---
>  lib/i915/i915_blt.c           |  8 +++-----
>  lib/i915/i915_blt.h           |  3 +--
>  tests/i915/gem_ccs.c          | 14 +++++++-------
>  tests/i915/gem_exercise_blt.c | 12 ++++++------
>  4 files changed, 17 insertions(+), 20 deletions(-)
> 
> diff --git a/lib/i915/i915_blt.c b/lib/i915/i915_blt.c
> index bbfb6ffc..3e64efeb 100644
> --- a/lib/i915/i915_blt.c
> +++ b/lib/i915/i915_blt.c
> @@ -1219,8 +1219,7 @@ blt_create_object(int i915, uint32_t region,
>  		  uint32_t width, uint32_t height, uint32_t bpp, uint8_t mocs,
>  		  enum blt_tiling_type tiling,
>  		  enum blt_compression compression,
> -		  enum blt_compression_type compression_type,
> -		  bool create_mapping)
> +		  enum blt_compression_type compression_type)

In this case I would like to keep create_mapping flag. gem_ccs and
gem_exercise_blt use this mapping but if you someone would like
to reuse blt_create_object() without creation additional mapping
lack of this argument enforces creating object in the test.

--
Zbigniew

>  {
>  	struct blt_copy_object *obj;
>  	uint64_t size = width * height * bpp / 8;
> @@ -1237,9 +1236,8 @@ blt_create_object(int i915, uint32_t region,
>  		       compression, compression_type);
>  	blt_set_geom(obj, stride, 0, 0, width, height, 0, 0);
>  
> -	if (create_mapping)
> -		obj->ptr = gem_mmap__device_coherent(i915, handle, 0, size,
> -						     PROT_READ | PROT_WRITE);
> +	obj->ptr = gem_mmap__device_coherent(i915, handle, 0, size,
> +					     PROT_READ | PROT_WRITE);
>  
>  	return obj;
>  }
> diff --git a/lib/i915/i915_blt.h b/lib/i915/i915_blt.h
> index 299dff8e..eaf4cc1f 100644
> --- a/lib/i915/i915_blt.h
> +++ b/lib/i915/i915_blt.h
> @@ -218,8 +218,7 @@ blt_create_object(int i915, uint32_t region,
>  		  uint32_t width, uint32_t height, uint32_t bpp, uint8_t mocs,
>  		  enum blt_tiling_type tiling,
>  		  enum blt_compression compression,
> -		  enum blt_compression_type compression_type,
> -		  bool create_mapping);
> +		  enum blt_compression_type compression_type);
>  void blt_destroy_object(int i915, struct blt_copy_object *obj);
>  void blt_set_object(struct blt_copy_object *obj,
>  		    uint32_t handle, uint64_t size, uint32_t region,
> diff --git a/tests/i915/gem_ccs.c b/tests/i915/gem_ccs.c
> index f629f664..b7a32673 100644
> --- a/tests/i915/gem_ccs.c
> +++ b/tests/i915/gem_ccs.c
> @@ -361,11 +361,11 @@ static void block_copy(int i915,
>  		pext = NULL;
>  
>  	src = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
> -				T_LINEAR, COMPRESSION_DISABLED, comp_type, true);
> +				T_LINEAR, COMPRESSION_DISABLED, comp_type);
>  	mid = blt_create_object(i915, mid_region, width, height, bpp, uc_mocs,
> -				mid_tiling, mid_compression, comp_type, true);
> +				mid_tiling, mid_compression, comp_type);
>  	dst = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
> -				T_LINEAR, COMPRESSION_DISABLED, comp_type, true);
> +				T_LINEAR, COMPRESSION_DISABLED, comp_type);
>  	igt_assert(src->size == dst->size);
>  	PRINT_SURFACE_INFO("src", src);
>  	PRINT_SURFACE_INFO("mid", mid);
> @@ -477,13 +477,13 @@ static void block_multicopy(int i915,
>  		pext3 = NULL;
>  
>  	src = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
> -				T_LINEAR, COMPRESSION_DISABLED, comp_type, true);
> +				T_LINEAR, COMPRESSION_DISABLED, comp_type);
>  	mid = blt_create_object(i915, mid_region, width, height, bpp, uc_mocs,
> -				mid_tiling, mid_compression, comp_type, true);
> +				mid_tiling, mid_compression, comp_type);
>  	dst = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
> -				mid_tiling, COMPRESSION_DISABLED, comp_type, true);
> +				mid_tiling, COMPRESSION_DISABLED, comp_type);
>  	final = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
> -				  T_LINEAR, COMPRESSION_DISABLED, comp_type, true);
> +				  T_LINEAR, COMPRESSION_DISABLED, comp_type);
>  	igt_assert(src->size == dst->size);
>  	PRINT_SURFACE_INFO("src", src);
>  	PRINT_SURFACE_INFO("mid", mid);
> diff --git a/tests/i915/gem_exercise_blt.c b/tests/i915/gem_exercise_blt.c
> index 02c54f85..b1123356 100644
> --- a/tests/i915/gem_exercise_blt.c
> +++ b/tests/i915/gem_exercise_blt.c
> @@ -136,11 +136,11 @@ static void fast_copy_emit(int i915, const intel_ctx_t *ctx,
>  	igt_assert(__gem_create_in_memory_regions(i915, &bb, &bb_size, region1) == 0);
>  
>  	src = blt_create_object(i915, region1, width, height, bpp, 0,
> -				T_LINEAR, COMPRESSION_DISABLED, 0, true);
> +				T_LINEAR, COMPRESSION_DISABLED, 0);
>  	mid = blt_create_object(i915, region2, width, height, bpp, 0,
> -				mid_tiling, COMPRESSION_DISABLED, 0, true);
> +				mid_tiling, COMPRESSION_DISABLED, 0);
>  	dst = blt_create_object(i915, region1, width, height, bpp, 0,
> -				T_LINEAR, COMPRESSION_DISABLED, 0, true);
> +				T_LINEAR, COMPRESSION_DISABLED, 0);
>  	igt_assert(src->size == dst->size);
>  
>  	PRINT_SURFACE_INFO("src", src);
> @@ -196,11 +196,11 @@ static void fast_copy(int i915, const intel_ctx_t *ctx,
>  	igt_assert(__gem_create_in_memory_regions(i915, &bb, &bb_size, region1) == 0);
>  
>  	src = blt_create_object(i915, region1, width, height, bpp, 0,
> -				T_LINEAR, COMPRESSION_DISABLED, 0, true);
> +				T_LINEAR, COMPRESSION_DISABLED, 0);
>  	mid = blt_create_object(i915, region2, width, height, bpp, 0,
> -				mid_tiling, COMPRESSION_DISABLED, 0, true);
> +				mid_tiling, COMPRESSION_DISABLED, 0);
>  	dst = blt_create_object(i915, region1, width, height, bpp, 0,
> -				T_LINEAR, COMPRESSION_DISABLED, 0, true);
> +				T_LINEAR, COMPRESSION_DISABLED, 0);
>  	igt_assert(src->size == dst->size);
>  
>  	blt_surface_fill_rect(i915, src, width, height);
> -- 
> 2.25.1
> 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 2/2] lib/i915_blt: Split up blt_copy_object functions
  2023-01-23 10:52 ` [igt-dev] [PATCH i-g-t 2/2] lib/i915_blt: Split up blt_copy_object functions Karolina Stolarek
@ 2023-01-26 12:13   ` Zbigniew Kempczyński
  2023-01-30  8:21     ` Karolina Stolarek
  0 siblings, 1 reply; 11+ messages in thread
From: Zbigniew Kempczyński @ 2023-01-26 12:13 UTC (permalink / raw)
  To: Karolina Stolarek; +Cc: igt-dev

On Mon, Jan 23, 2023 at 11:52:43AM +0100, Karolina Stolarek wrote:
> Add dedicated functions to set and create blt_copy_object depending on
> the copy type. Extract the common path so it can be called both in fast
> and block copy setup. Move mocs field in blt_copy_object so it's next
> to the compression-specific fields.
> 
> Signed-off-by: Karolina Stolarek <karolina.stolarek@intel.com>
> ---
>  lib/i915/i915_blt.c            | 92 ++++++++++++++++++++++++----------
>  lib/i915/i915_blt.h            | 29 +++++++----
>  tests/i915/gem_ccs.c           | 39 +++++++-------
>  tests/i915/gem_exercise_blt.c  | 18 +++----
>  tests/i915/gem_lmem_swapping.c | 13 ++---
>  5 files changed, 117 insertions(+), 74 deletions(-)
> 
> diff --git a/lib/i915/i915_blt.c b/lib/i915/i915_blt.c
> index 3e64efeb..979c7161 100644
> --- a/lib/i915/i915_blt.c
> +++ b/lib/i915/i915_blt.c
> @@ -1214,12 +1214,29 @@ void blt_set_batch(struct blt_copy_batch *batch,
>  	batch->region = region;
>  }
>  
> -struct blt_copy_object *
> -blt_create_object(int i915, uint32_t region,
> -		  uint32_t width, uint32_t height, uint32_t bpp, uint8_t mocs,
> -		  enum blt_tiling_type tiling,
> -		  enum blt_compression compression,
> -		  enum blt_compression_type compression_type)
> +static void blt_set_object_common(struct blt_copy_object *obj,
> +				  uint32_t handle, uint64_t size,
> +				  uint32_t region, enum blt_tiling_type tiling)
> +{
> +	obj->handle = handle;
> +	obj->size = size;
> +	obj->region = region;
> +	obj->tiling = tiling;
> +}
> +
> +static void blt_set_object_compression(struct blt_copy_object *obj, uint8_t mocs,
> +				       enum blt_compression compression,
> +				       enum blt_compression_type compression_type)
> +{
> +	obj->mocs = mocs;
> +	obj->compression = compression;
> +	obj->compression_type = compression_type;
> +}
> +
> +static struct blt_copy_object *
> +blt_create_object_common(int i915, uint32_t region, uint32_t width,
> +			 uint32_t height, uint32_t bpp,
> +			 enum blt_tiling_type tiling)

This should be public. We assume above fields are common to all
supported commands we have (block-copy, fast-copy, etc), so user
can call this generic function and it should work for all
blit instructions. That means that you should fill mocs here even
if user didn't explicitly passed this value.

Rename this to blt_create_object(), I don't think _common suffix 
is really necessary here.

--
Zbigniew

>  {
>  	struct blt_copy_object *obj;
>  	uint64_t size = width * height * bpp / 8;
> @@ -1228,20 +1245,58 @@ blt_create_object(int i915, uint32_t region,
>  
>  	obj = calloc(1, sizeof(*obj));
>  
> -	obj->size = size;
>  	igt_assert(__gem_create_in_memory_regions(i915, &handle,
>  						  &size, region) == 0);
> +	obj->ptr = gem_mmap__device_coherent(i915, handle, 0, size,
> +					     PROT_READ | PROT_WRITE);
> +	obj->size = size;
>  
> -	blt_set_object(obj, handle, size, region, mocs, tiling,
> -		       compression, compression_type);
> +	blt_set_object_common(obj, handle, size, region, tiling);
>  	blt_set_geom(obj, stride, 0, 0, width, height, 0, 0);
>  
> -	obj->ptr = gem_mmap__device_coherent(i915, handle, 0, size,
> -					     PROT_READ | PROT_WRITE);
> +	return obj;
> +}
> +
> +struct blt_copy_object *
> +blt_create_block_object(int i915, uint32_t region,
> +			uint32_t width, uint32_t height, uint32_t bpp,
> +			uint8_t mocs, enum blt_tiling_type tiling,
> +			enum blt_compression compression,
> +			enum blt_compression_type compression_type)
a> +{
> +	struct blt_copy_object *obj;
> +
> +	obj = blt_create_object_common(i915, region, width, height, bpp, tiling);
> +	blt_set_object_compression(obj, mocs, compression, compression_type);
>  
>  	return obj;
>  }
>  
> +struct blt_copy_object *
> +blt_create_fast_object(int i915, uint32_t region, uint32_t width,
> +		       uint32_t height, uint32_t bpp,
> +		       enum blt_tiling_type tiling)
> +{
> +	return blt_create_object_common(i915, region, width, height, bpp, tiling);
> +}
> +
> +void blt_set_block_object(struct blt_copy_object *obj,
> +			  uint32_t handle, uint64_t size, uint32_t region,
> +			  uint8_t mocs, enum blt_tiling_type tiling,
> +			  enum blt_compression compression,
> +			  enum blt_compression_type compression_type)
> +{
> +	blt_set_object_common(obj, handle, size, region, tiling);
> +	blt_set_object_compression(obj, mocs, compression, compression_type);
> +}
> +
> +void blt_set_fast_object(struct blt_copy_object *obj,
> +			 uint32_t handle, uint64_t size,
> +			 uint32_t region, enum blt_tiling_type tiling)
> +{
> +	blt_set_object_common(obj, handle, size, region, tiling);
> +}
> +
>  void blt_destroy_object(int i915, struct blt_copy_object *obj)
>  {
>  	if (obj->ptr)
> @@ -1251,21 +1306,6 @@ void blt_destroy_object(int i915, struct blt_copy_object *obj)
>  	free(obj);
>  }
>  
> -void blt_set_object(struct blt_copy_object *obj,
> -		    uint32_t handle, uint64_t size, uint32_t region,
> -		    uint8_t mocs, enum blt_tiling_type tiling,
> -		    enum blt_compression compression,
> -		    enum blt_compression_type compression_type)
> -{
> -	obj->handle = handle;
> -	obj->size = size;
> -	obj->region = region;
> -	obj->mocs = mocs;
> -	obj->tiling = tiling;
> -	obj->compression = compression;
> -	obj->compression_type = compression_type;
> -}
> -
>  void blt_set_object_ext(struct blt_block_copy_object_ext *obj,
>  			uint8_t compression_format,
>  			uint16_t surface_width, uint16_t surface_height,
> diff --git a/lib/i915/i915_blt.h b/lib/i915/i915_blt.h
> index eaf4cc1f..1bd29c8c 100644
> --- a/lib/i915/i915_blt.h
> +++ b/lib/i915/i915_blt.h
> @@ -75,8 +75,8 @@ struct blt_copy_object {
>  	uint32_t handle;
>  	uint32_t region;
>  	uint64_t size;
> -	uint8_t mocs;
>  	enum blt_tiling_type tiling;
> +	uint8_t mocs; /* BC only */
>  	enum blt_compression compression;  /* BC only */
>  	enum blt_compression_type compression_type; /* BC only */
>  	uint32_t pitch;
> @@ -214,17 +214,24 @@ void blt_set_batch(struct blt_copy_batch *batch,
>  		   uint32_t handle, uint64_t size, uint32_t region);
>  
>  struct blt_copy_object *
> -blt_create_object(int i915, uint32_t region,
> -		  uint32_t width, uint32_t height, uint32_t bpp, uint8_t mocs,
> -		  enum blt_tiling_type tiling,
> -		  enum blt_compression compression,
> -		  enum blt_compression_type compression_type);
> +blt_create_block_object(int i915, uint32_t region,
> +			uint32_t width, uint32_t height, uint32_t bpp,
> +			uint8_t mocs, enum blt_tiling_type tiling,
> +			enum blt_compression compression,
> +			enum blt_compression_type compression_type);
> +struct blt_copy_object *
> +blt_create_fast_object(int i915, uint32_t region,
> +		       uint32_t width, uint32_t height, uint32_t bpp,
> +		       enum blt_tiling_type tiling);
>  void blt_destroy_object(int i915, struct blt_copy_object *obj);
> -void blt_set_object(struct blt_copy_object *obj,
> -		    uint32_t handle, uint64_t size, uint32_t region,
> -		    uint8_t mocs, enum blt_tiling_type tiling,
> -		    enum blt_compression compression,
> -		    enum blt_compression_type compression_type);
> +void blt_set_block_object(struct blt_copy_object *obj,
> +			  uint32_t handle, uint64_t size, uint32_t region,
> +			  uint8_t mocs, enum blt_tiling_type tiling,
> +			  enum blt_compression compression,
> +			  enum blt_compression_type compression_type);
> +void blt_set_fast_object(struct blt_copy_object *obj,
> +			 uint32_t handle, uint64_t size, uint32_t region,
> +			 enum blt_tiling_type tiling);
>  void blt_set_object_ext(struct blt_block_copy_object_ext *obj,
>  			uint8_t compression_format,
>  			uint16_t surface_width, uint16_t surface_height,
> diff --git a/tests/i915/gem_ccs.c b/tests/i915/gem_ccs.c
> index b7a32673..7e16c792 100644
> --- a/tests/i915/gem_ccs.c
> +++ b/tests/i915/gem_ccs.c
> @@ -360,12 +360,12 @@ static void block_copy(int i915,
>  	if (!blt_supports_compression(i915) && !IS_METEORLAKE(devid))
>  		pext = NULL;
>  
> -	src = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
> -				T_LINEAR, COMPRESSION_DISABLED, comp_type);
> -	mid = blt_create_object(i915, mid_region, width, height, bpp, uc_mocs,
> -				mid_tiling, mid_compression, comp_type);
> -	dst = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
> -				T_LINEAR, COMPRESSION_DISABLED, comp_type);
> +	src = blt_create_block_object(i915, region1, width, height, bpp, uc_mocs,
> +				      T_LINEAR, COMPRESSION_DISABLED, comp_type);
> +	mid = blt_create_block_object(i915, mid_region, width, height, bpp, uc_mocs,
> +				      mid_tiling, mid_compression, comp_type);
> +	dst = blt_create_block_object(i915, region1, width, height, bpp, uc_mocs,
> +				      T_LINEAR, COMPRESSION_DISABLED, comp_type);
>  	igt_assert(src->size == dst->size);
>  	PRINT_SURFACE_INFO("src", src);
>  	PRINT_SURFACE_INFO("mid", mid);
> @@ -428,8 +428,9 @@ static void block_copy(int i915,
>  	blt_set_object_ext(&ext.src, mid_compression_format, width, height, SURFACE_TYPE_2D);
>  	blt_set_object_ext(&ext.dst, 0, width, height, SURFACE_TYPE_2D);
>  	if (config->inplace) {
> -		blt_set_object(&blt.dst, mid->handle, dst->size, mid->region, 0,
> -			       T_LINEAR, COMPRESSION_DISABLED, comp_type);
> +		blt_set_block_object(&blt.dst, mid->handle, dst->size,
> +				     mid->region, 0, T_LINEAR,
> +				     COMPRESSION_DISABLED, comp_type);
>  		blt.dst.ptr = mid->ptr;
>  	}
>  
> @@ -476,14 +477,14 @@ static void block_multicopy(int i915,
>  	if (!blt_supports_compression(i915))
>  		pext3 = NULL;
>  
> -	src = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
> -				T_LINEAR, COMPRESSION_DISABLED, comp_type);
> -	mid = blt_create_object(i915, mid_region, width, height, bpp, uc_mocs,
> -				mid_tiling, mid_compression, comp_type);
> -	dst = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
> -				mid_tiling, COMPRESSION_DISABLED, comp_type);
> -	final = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
> -				  T_LINEAR, COMPRESSION_DISABLED, comp_type);
> +	src = blt_create_block_object(i915, region1, width, height, bpp, uc_mocs,
> +				      T_LINEAR, COMPRESSION_DISABLED, comp_type);
> +	mid = blt_create_block_object(i915, mid_region, width, height, bpp,
> +				      uc_mocs, mid_tiling, mid_compression, comp_type);
> +	dst = blt_create_block_object(i915, region1, width, height, bpp, uc_mocs,
> +				      mid_tiling, COMPRESSION_DISABLED, comp_type);
> +	final = blt_create_block_object(i915, region1, width, height, bpp, uc_mocs,
> +					T_LINEAR, COMPRESSION_DISABLED, comp_type);
>  	igt_assert(src->size == dst->size);
>  	PRINT_SURFACE_INFO("src", src);
>  	PRINT_SURFACE_INFO("mid", mid);
> @@ -501,9 +502,9 @@ static void block_multicopy(int i915,
>  	blt_set_copy_object(&blt3.final, final);
>  
>  	if (config->inplace) {
> -		blt_set_object(&blt3.dst, mid->handle, dst->size, mid->region,
> -			       mid->mocs, mid_tiling, COMPRESSION_DISABLED,
> -			       comp_type);
> +		blt_set_block_object(&blt3.dst, mid->handle, dst->size,
> +				     mid->region, mid->mocs, mid_tiling,
> +				     COMPRESSION_DISABLED, comp_type);
>  		blt3.dst.ptr = mid->ptr;
>  	}
>  
> diff --git a/tests/i915/gem_exercise_blt.c b/tests/i915/gem_exercise_blt.c
> index b1123356..5b7178df 100644
> --- a/tests/i915/gem_exercise_blt.c
> +++ b/tests/i915/gem_exercise_blt.c
> @@ -135,12 +135,9 @@ static void fast_copy_emit(int i915, const intel_ctx_t *ctx,
>  
>  	igt_assert(__gem_create_in_memory_regions(i915, &bb, &bb_size, region1) == 0);
>  
> -	src = blt_create_object(i915, region1, width, height, bpp, 0,
> -				T_LINEAR, COMPRESSION_DISABLED, 0);
> -	mid = blt_create_object(i915, region2, width, height, bpp, 0,
> -				mid_tiling, COMPRESSION_DISABLED, 0);
> -	dst = blt_create_object(i915, region1, width, height, bpp, 0,
> -				T_LINEAR, COMPRESSION_DISABLED, 0);
> +	src = blt_create_fast_object(i915, region1, width, height, bpp, T_LINEAR);
> +	mid = blt_create_fast_object(i915, region2, width, height, bpp, mid_tiling);
> +	dst = blt_create_fast_object(i915, region1, width, height, bpp, T_LINEAR);
>  	igt_assert(src->size == dst->size);
>  
>  	PRINT_SURFACE_INFO("src", src);
> @@ -195,12 +192,9 @@ static void fast_copy(int i915, const intel_ctx_t *ctx,
>  
>  	igt_assert(__gem_create_in_memory_regions(i915, &bb, &bb_size, region1) == 0);
>  
> -	src = blt_create_object(i915, region1, width, height, bpp, 0,
> -				T_LINEAR, COMPRESSION_DISABLED, 0);
> -	mid = blt_create_object(i915, region2, width, height, bpp, 0,
> -				mid_tiling, COMPRESSION_DISABLED, 0);
> -	dst = blt_create_object(i915, region1, width, height, bpp, 0,
> -				T_LINEAR, COMPRESSION_DISABLED, 0);
> +	src = blt_create_fast_object(i915, region1, width, height, bpp, T_LINEAR);
> +	mid = blt_create_fast_object(i915, region2, width, height, bpp, mid_tiling);
> +	dst = blt_create_fast_object(i915, region1, width, height, bpp, T_LINEAR);
>  	igt_assert(src->size == dst->size);
>  
>  	blt_surface_fill_rect(i915, src, width, height);
> diff --git a/tests/i915/gem_lmem_swapping.c b/tests/i915/gem_lmem_swapping.c
> index 55b044ec..3a6308ed 100644
> --- a/tests/i915/gem_lmem_swapping.c
> +++ b/tests/i915/gem_lmem_swapping.c
> @@ -317,9 +317,9 @@ static void __do_evict(int i915,
>  
>  		tmp->handle = gem_create_in_memory_regions(i915, params->size.max,
>  				   INTEL_MEMORY_REGION_ID(I915_SYSTEM_MEMORY, 0));
> -		blt_set_object(tmp, tmp->handle, params->size.max,
> -			       INTEL_MEMORY_REGION_ID(I915_SYSTEM_MEMORY, 0),
> -			       intel_get_uc_mocs(i915), T_LINEAR,
> +		blt_set_block_object(tmp, tmp->handle, params->size.max,
> +				     INTEL_MEMORY_REGION_ID(I915_SYSTEM_MEMORY, 0),
> +				     intel_get_uc_mocs(i915), T_LINEAR,
>  			       COMPRESSION_DISABLED, COMPRESSION_TYPE_3D);
>  		blt_set_geom(tmp, stride, 0, 0, width, height, 0, 0);
>  	}
> @@ -348,9 +348,10 @@ static void __do_evict(int i915,
>  
>  			obj->blt_obj = calloc(1, sizeof(*obj->blt_obj));
>  			igt_assert(obj->blt_obj);
> -			blt_set_object(obj->blt_obj, obj->handle, obj->size, region_id,
> -				       intel_get_uc_mocs(i915), T_LINEAR,
> -				       COMPRESSION_ENABLED, COMPRESSION_TYPE_3D);
> +			blt_set_block_object(obj->blt_obj, obj->handle, obj->size,
> +					     region_id, intel_get_uc_mocs(i915),
> +					     T_LINEAR, COMPRESSION_ENABLED,
> +					     COMPRESSION_TYPE_3D);
>  			blt_set_geom(obj->blt_obj, stride, 0, 0, width, height, 0, 0);
>  			init_object_ccs(i915, obj, tmp, rand(), blt_ctx,
>  					region_id, ahnd);
> -- 
> 2.25.1
> 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 1/2] lib/i915_blt: Remove create_mapping flag from blt_create_object
  2023-01-26 12:00   ` Zbigniew Kempczyński
@ 2023-01-30  8:10     ` Karolina Stolarek
  2023-01-30 19:30       ` Zbigniew Kempczyński
  0 siblings, 1 reply; 11+ messages in thread
From: Karolina Stolarek @ 2023-01-30  8:10 UTC (permalink / raw)
  To: Zbigniew Kempczyński; +Cc: igt-dev

Hi Zbigniew,

Sorry for my late response, the email got stuck in my inbox.

On 26.01.2023 13:00, Zbigniew Kempczyński wrote:
> On Mon, Jan 23, 2023 at 11:52:42AM +0100, Karolina Stolarek wrote:
>> In the tests we have, we always set create_mapping flag to true, as we
>> wish to create memory mappings when creating blitter copy objects. As
>> this is the only use case, we can delete the flag and just create a
>> mapping.
>>
>> Cc: Zbigniew Kempczynski <zbigniew.kempczynski@intel.com>
>> Signed-off-by: Karolina Stolarek <karolina.stolarek@intel.com>
>> ---
>>   lib/i915/i915_blt.c           |  8 +++-----
>>   lib/i915/i915_blt.h           |  3 +--
>>   tests/i915/gem_ccs.c          | 14 +++++++-------
>>   tests/i915/gem_exercise_blt.c | 12 ++++++------
>>   4 files changed, 17 insertions(+), 20 deletions(-)
>>
>> diff --git a/lib/i915/i915_blt.c b/lib/i915/i915_blt.c
>> index bbfb6ffc..3e64efeb 100644
>> --- a/lib/i915/i915_blt.c
>> +++ b/lib/i915/i915_blt.c
>> @@ -1219,8 +1219,7 @@ blt_create_object(int i915, uint32_t region,
>>   		  uint32_t width, uint32_t height, uint32_t bpp, uint8_t mocs,
>>   		  enum blt_tiling_type tiling,
>>   		  enum blt_compression compression,
>> -		  enum blt_compression_type compression_type,
>> -		  bool create_mapping)
>> +		  enum blt_compression_type compression_type)
> 
> In this case I would like to keep create_mapping flag. gem_ccs and
> gem_exercise_blt use this mapping but if you someone would like
> to reuse blt_create_object() without creation additional mapping
> lack of this argument enforces creating object in the test.

Hm, but in the majority of cases we'd like to create a new object. From 
the API point of view, we could introduce another function to do it. The 
list of parameters is already quite long here.

Thanks,
Karolina

> 
> --
> Zbigniew
> 
>>   {
>>   	struct blt_copy_object *obj;
>>   	uint64_t size = width * height * bpp / 8;
>> @@ -1237,9 +1236,8 @@ blt_create_object(int i915, uint32_t region,
>>   		       compression, compression_type);
>>   	blt_set_geom(obj, stride, 0, 0, width, height, 0, 0);
>>   
>> -	if (create_mapping)
>> -		obj->ptr = gem_mmap__device_coherent(i915, handle, 0, size,
>> -						     PROT_READ | PROT_WRITE);
>> +	obj->ptr = gem_mmap__device_coherent(i915, handle, 0, size,
>> +					     PROT_READ | PROT_WRITE);
>>   
>>   	return obj;
>>   }
>> diff --git a/lib/i915/i915_blt.h b/lib/i915/i915_blt.h
>> index 299dff8e..eaf4cc1f 100644
>> --- a/lib/i915/i915_blt.h
>> +++ b/lib/i915/i915_blt.h
>> @@ -218,8 +218,7 @@ blt_create_object(int i915, uint32_t region,
>>   		  uint32_t width, uint32_t height, uint32_t bpp, uint8_t mocs,
>>   		  enum blt_tiling_type tiling,
>>   		  enum blt_compression compression,
>> -		  enum blt_compression_type compression_type,
>> -		  bool create_mapping);
>> +		  enum blt_compression_type compression_type);
>>   void blt_destroy_object(int i915, struct blt_copy_object *obj);
>>   void blt_set_object(struct blt_copy_object *obj,
>>   		    uint32_t handle, uint64_t size, uint32_t region,
>> diff --git a/tests/i915/gem_ccs.c b/tests/i915/gem_ccs.c
>> index f629f664..b7a32673 100644
>> --- a/tests/i915/gem_ccs.c
>> +++ b/tests/i915/gem_ccs.c
>> @@ -361,11 +361,11 @@ static void block_copy(int i915,
>>   		pext = NULL;
>>   
>>   	src = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
>> -				T_LINEAR, COMPRESSION_DISABLED, comp_type, true);
>> +				T_LINEAR, COMPRESSION_DISABLED, comp_type);
>>   	mid = blt_create_object(i915, mid_region, width, height, bpp, uc_mocs,
>> -				mid_tiling, mid_compression, comp_type, true);
>> +				mid_tiling, mid_compression, comp_type);
>>   	dst = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
>> -				T_LINEAR, COMPRESSION_DISABLED, comp_type, true);
>> +				T_LINEAR, COMPRESSION_DISABLED, comp_type);
>>   	igt_assert(src->size == dst->size);
>>   	PRINT_SURFACE_INFO("src", src);
>>   	PRINT_SURFACE_INFO("mid", mid);
>> @@ -477,13 +477,13 @@ static void block_multicopy(int i915,
>>   		pext3 = NULL;
>>   
>>   	src = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
>> -				T_LINEAR, COMPRESSION_DISABLED, comp_type, true);
>> +				T_LINEAR, COMPRESSION_DISABLED, comp_type);
>>   	mid = blt_create_object(i915, mid_region, width, height, bpp, uc_mocs,
>> -				mid_tiling, mid_compression, comp_type, true);
>> +				mid_tiling, mid_compression, comp_type);
>>   	dst = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
>> -				mid_tiling, COMPRESSION_DISABLED, comp_type, true);
>> +				mid_tiling, COMPRESSION_DISABLED, comp_type);
>>   	final = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
>> -				  T_LINEAR, COMPRESSION_DISABLED, comp_type, true);
>> +				  T_LINEAR, COMPRESSION_DISABLED, comp_type);
>>   	igt_assert(src->size == dst->size);
>>   	PRINT_SURFACE_INFO("src", src);
>>   	PRINT_SURFACE_INFO("mid", mid);
>> diff --git a/tests/i915/gem_exercise_blt.c b/tests/i915/gem_exercise_blt.c
>> index 02c54f85..b1123356 100644
>> --- a/tests/i915/gem_exercise_blt.c
>> +++ b/tests/i915/gem_exercise_blt.c
>> @@ -136,11 +136,11 @@ static void fast_copy_emit(int i915, const intel_ctx_t *ctx,
>>   	igt_assert(__gem_create_in_memory_regions(i915, &bb, &bb_size, region1) == 0);
>>   
>>   	src = blt_create_object(i915, region1, width, height, bpp, 0,
>> -				T_LINEAR, COMPRESSION_DISABLED, 0, true);
>> +				T_LINEAR, COMPRESSION_DISABLED, 0);
>>   	mid = blt_create_object(i915, region2, width, height, bpp, 0,
>> -				mid_tiling, COMPRESSION_DISABLED, 0, true);
>> +				mid_tiling, COMPRESSION_DISABLED, 0);
>>   	dst = blt_create_object(i915, region1, width, height, bpp, 0,
>> -				T_LINEAR, COMPRESSION_DISABLED, 0, true);
>> +				T_LINEAR, COMPRESSION_DISABLED, 0);
>>   	igt_assert(src->size == dst->size);
>>   
>>   	PRINT_SURFACE_INFO("src", src);
>> @@ -196,11 +196,11 @@ static void fast_copy(int i915, const intel_ctx_t *ctx,
>>   	igt_assert(__gem_create_in_memory_regions(i915, &bb, &bb_size, region1) == 0);
>>   
>>   	src = blt_create_object(i915, region1, width, height, bpp, 0,
>> -				T_LINEAR, COMPRESSION_DISABLED, 0, true);
>> +				T_LINEAR, COMPRESSION_DISABLED, 0);
>>   	mid = blt_create_object(i915, region2, width, height, bpp, 0,
>> -				mid_tiling, COMPRESSION_DISABLED, 0, true);
>> +				mid_tiling, COMPRESSION_DISABLED, 0);
>>   	dst = blt_create_object(i915, region1, width, height, bpp, 0,
>> -				T_LINEAR, COMPRESSION_DISABLED, 0, true);
>> +				T_LINEAR, COMPRESSION_DISABLED, 0);
>>   	igt_assert(src->size == dst->size);
>>   
>>   	blt_surface_fill_rect(i915, src, width, height);
>> -- 
>> 2.25.1
>>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 2/2] lib/i915_blt: Split up blt_copy_object functions
  2023-01-26 12:13   ` Zbigniew Kempczyński
@ 2023-01-30  8:21     ` Karolina Stolarek
  2023-01-30 19:26       ` Zbigniew Kempczyński
  0 siblings, 1 reply; 11+ messages in thread
From: Karolina Stolarek @ 2023-01-30  8:21 UTC (permalink / raw)
  To: Zbigniew Kempczyński; +Cc: igt-dev

Hi,

On 26.01.2023 13:13, Zbigniew Kempczyński wrote:
> On Mon, Jan 23, 2023 at 11:52:43AM +0100, Karolina Stolarek wrote:
>> Add dedicated functions to set and create blt_copy_object depending on
>> the copy type. Extract the common path so it can be called both in fast
>> and block copy setup. Move mocs field in blt_copy_object so it's next
>> to the compression-specific fields.
>>
>> Signed-off-by: Karolina Stolarek <karolina.stolarek@intel.com>
>> ---
>>   lib/i915/i915_blt.c            | 92 ++++++++++++++++++++++++----------
>>   lib/i915/i915_blt.h            | 29 +++++++----
>>   tests/i915/gem_ccs.c           | 39 +++++++-------
>>   tests/i915/gem_exercise_blt.c  | 18 +++----
>>   tests/i915/gem_lmem_swapping.c | 13 ++---
>>   5 files changed, 117 insertions(+), 74 deletions(-)
>>
>> diff --git a/lib/i915/i915_blt.c b/lib/i915/i915_blt.c
>> index 3e64efeb..979c7161 100644
>> --- a/lib/i915/i915_blt.c
>> +++ b/lib/i915/i915_blt.c
>> @@ -1214,12 +1214,29 @@ void blt_set_batch(struct blt_copy_batch *batch,
>>   	batch->region = region;
>>   }
>>   
>> -struct blt_copy_object *
>> -blt_create_object(int i915, uint32_t region,
>> -		  uint32_t width, uint32_t height, uint32_t bpp, uint8_t mocs,
>> -		  enum blt_tiling_type tiling,
>> -		  enum blt_compression compression,
>> -		  enum blt_compression_type compression_type)
>> +static void blt_set_object_common(struct blt_copy_object *obj,
>> +				  uint32_t handle, uint64_t size,
>> +				  uint32_t region, enum blt_tiling_type tiling)
>> +{
>> +	obj->handle = handle;
>> +	obj->size = size;
>> +	obj->region = region;
>> +	obj->tiling = tiling;
>> +}
>> +
>> +static void blt_set_object_compression(struct blt_copy_object *obj, uint8_t mocs,
>> +				       enum blt_compression compression,
>> +				       enum blt_compression_type compression_type)
>> +{
>> +	obj->mocs = mocs;
>> +	obj->compression = compression;
>> +	obj->compression_type = compression_type;
>> +}
>> +
>> +static struct blt_copy_object *
>> +blt_create_object_common(int i915, uint32_t region, uint32_t width,
>> +			 uint32_t height, uint32_t bpp,
>> +			 enum blt_tiling_type tiling)
> 
> This should be public. We assume above fields are common to all
> supported commands we have (block-copy, fast-copy, etc), so user
> can call this generic function and it should work for all
> blit instructions. That means that you should fill mocs here even
> if user didn't explicitly passed this value.
> 
> Rename this to blt_create_object(), I don't think _common suffix
> is really necessary here.

But this means we'd have blt_create_block_copy and blt_create_object, as 
it wouldn't make sense to also have blt_create_fast_object. Having a 
special treatment of block-copy would make things confusing.

The best option would be to have blt_create_fast_object and call it 
inside blt_create_block_object. It'd would be fine by the user, maybe 
slightly confusing for people who maintain the lib, but it should be 
alright.

I think we should separate the commands, even if they use the same 
struct underneath.

Thanks,
Karolina
> --
> Zbigniew
> 
>>   {
>>   	struct blt_copy_object *obj;
>>   	uint64_t size = width * height * bpp / 8;
>> @@ -1228,20 +1245,58 @@ blt_create_object(int i915, uint32_t region,
>>   
>>   	obj = calloc(1, sizeof(*obj));
>>   
>> -	obj->size = size;
>>   	igt_assert(__gem_create_in_memory_regions(i915, &handle,
>>   						  &size, region) == 0);
>> +	obj->ptr = gem_mmap__device_coherent(i915, handle, 0, size,
>> +					     PROT_READ | PROT_WRITE);
>> +	obj->size = size;
>>   
>> -	blt_set_object(obj, handle, size, region, mocs, tiling,
>> -		       compression, compression_type);
>> +	blt_set_object_common(obj, handle, size, region, tiling);
>>   	blt_set_geom(obj, stride, 0, 0, width, height, 0, 0);
>>   
>> -	obj->ptr = gem_mmap__device_coherent(i915, handle, 0, size,
>> -					     PROT_READ | PROT_WRITE);
>> +	return obj;
>> +}
>> +
>> +struct blt_copy_object *
>> +blt_create_block_object(int i915, uint32_t region,
>> +			uint32_t width, uint32_t height, uint32_t bpp,
>> +			uint8_t mocs, enum blt_tiling_type tiling,
>> +			enum blt_compression compression,
>> +			enum blt_compression_type compression_type)
> a> +{
>> +	struct blt_copy_object *obj;
>> +
>> +	obj = blt_create_object_common(i915, region, width, height, bpp, tiling);
>> +	blt_set_object_compression(obj, mocs, compression, compression_type);
>>   
>>   	return obj;
>>   }
>>   
>> +struct blt_copy_object *
>> +blt_create_fast_object(int i915, uint32_t region, uint32_t width,
>> +		       uint32_t height, uint32_t bpp,
>> +		       enum blt_tiling_type tiling)
>> +{
>> +	return blt_create_object_common(i915, region, width, height, bpp, tiling);
>> +}
>> +
>> +void blt_set_block_object(struct blt_copy_object *obj,
>> +			  uint32_t handle, uint64_t size, uint32_t region,
>> +			  uint8_t mocs, enum blt_tiling_type tiling,
>> +			  enum blt_compression compression,
>> +			  enum blt_compression_type compression_type)
>> +{
>> +	blt_set_object_common(obj, handle, size, region, tiling);
>> +	blt_set_object_compression(obj, mocs, compression, compression_type);
>> +}
>> +
>> +void blt_set_fast_object(struct blt_copy_object *obj,
>> +			 uint32_t handle, uint64_t size,
>> +			 uint32_t region, enum blt_tiling_type tiling)
>> +{
>> +	blt_set_object_common(obj, handle, size, region, tiling);
>> +}
>> +
>>   void blt_destroy_object(int i915, struct blt_copy_object *obj)
>>   {
>>   	if (obj->ptr)
>> @@ -1251,21 +1306,6 @@ void blt_destroy_object(int i915, struct blt_copy_object *obj)
>>   	free(obj);
>>   }
>>   
>> -void blt_set_object(struct blt_copy_object *obj,
>> -		    uint32_t handle, uint64_t size, uint32_t region,
>> -		    uint8_t mocs, enum blt_tiling_type tiling,
>> -		    enum blt_compression compression,
>> -		    enum blt_compression_type compression_type)
>> -{
>> -	obj->handle = handle;
>> -	obj->size = size;
>> -	obj->region = region;
>> -	obj->mocs = mocs;
>> -	obj->tiling = tiling;
>> -	obj->compression = compression;
>> -	obj->compression_type = compression_type;
>> -}
>> -
>>   void blt_set_object_ext(struct blt_block_copy_object_ext *obj,
>>   			uint8_t compression_format,
>>   			uint16_t surface_width, uint16_t surface_height,
>> diff --git a/lib/i915/i915_blt.h b/lib/i915/i915_blt.h
>> index eaf4cc1f..1bd29c8c 100644
>> --- a/lib/i915/i915_blt.h
>> +++ b/lib/i915/i915_blt.h
>> @@ -75,8 +75,8 @@ struct blt_copy_object {
>>   	uint32_t handle;
>>   	uint32_t region;
>>   	uint64_t size;
>> -	uint8_t mocs;
>>   	enum blt_tiling_type tiling;
>> +	uint8_t mocs; /* BC only */
>>   	enum blt_compression compression;  /* BC only */
>>   	enum blt_compression_type compression_type; /* BC only */
>>   	uint32_t pitch;
>> @@ -214,17 +214,24 @@ void blt_set_batch(struct blt_copy_batch *batch,
>>   		   uint32_t handle, uint64_t size, uint32_t region);
>>   
>>   struct blt_copy_object *
>> -blt_create_object(int i915, uint32_t region,
>> -		  uint32_t width, uint32_t height, uint32_t bpp, uint8_t mocs,
>> -		  enum blt_tiling_type tiling,
>> -		  enum blt_compression compression,
>> -		  enum blt_compression_type compression_type);
>> +blt_create_block_object(int i915, uint32_t region,
>> +			uint32_t width, uint32_t height, uint32_t bpp,
>> +			uint8_t mocs, enum blt_tiling_type tiling,
>> +			enum blt_compression compression,
>> +			enum blt_compression_type compression_type);
>> +struct blt_copy_object *
>> +blt_create_fast_object(int i915, uint32_t region,
>> +		       uint32_t width, uint32_t height, uint32_t bpp,
>> +		       enum blt_tiling_type tiling);
>>   void blt_destroy_object(int i915, struct blt_copy_object *obj);
>> -void blt_set_object(struct blt_copy_object *obj,
>> -		    uint32_t handle, uint64_t size, uint32_t region,
>> -		    uint8_t mocs, enum blt_tiling_type tiling,
>> -		    enum blt_compression compression,
>> -		    enum blt_compression_type compression_type);
>> +void blt_set_block_object(struct blt_copy_object *obj,
>> +			  uint32_t handle, uint64_t size, uint32_t region,
>> +			  uint8_t mocs, enum blt_tiling_type tiling,
>> +			  enum blt_compression compression,
>> +			  enum blt_compression_type compression_type);
>> +void blt_set_fast_object(struct blt_copy_object *obj,
>> +			 uint32_t handle, uint64_t size, uint32_t region,
>> +			 enum blt_tiling_type tiling);
>>   void blt_set_object_ext(struct blt_block_copy_object_ext *obj,
>>   			uint8_t compression_format,
>>   			uint16_t surface_width, uint16_t surface_height,
>> diff --git a/tests/i915/gem_ccs.c b/tests/i915/gem_ccs.c
>> index b7a32673..7e16c792 100644
>> --- a/tests/i915/gem_ccs.c
>> +++ b/tests/i915/gem_ccs.c
>> @@ -360,12 +360,12 @@ static void block_copy(int i915,
>>   	if (!blt_supports_compression(i915) && !IS_METEORLAKE(devid))
>>   		pext = NULL;
>>   
>> -	src = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
>> -				T_LINEAR, COMPRESSION_DISABLED, comp_type);
>> -	mid = blt_create_object(i915, mid_region, width, height, bpp, uc_mocs,
>> -				mid_tiling, mid_compression, comp_type);
>> -	dst = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
>> -				T_LINEAR, COMPRESSION_DISABLED, comp_type);
>> +	src = blt_create_block_object(i915, region1, width, height, bpp, uc_mocs,
>> +				      T_LINEAR, COMPRESSION_DISABLED, comp_type);
>> +	mid = blt_create_block_object(i915, mid_region, width, height, bpp, uc_mocs,
>> +				      mid_tiling, mid_compression, comp_type);
>> +	dst = blt_create_block_object(i915, region1, width, height, bpp, uc_mocs,
>> +				      T_LINEAR, COMPRESSION_DISABLED, comp_type);
>>   	igt_assert(src->size == dst->size);
>>   	PRINT_SURFACE_INFO("src", src);
>>   	PRINT_SURFACE_INFO("mid", mid);
>> @@ -428,8 +428,9 @@ static void block_copy(int i915,
>>   	blt_set_object_ext(&ext.src, mid_compression_format, width, height, SURFACE_TYPE_2D);
>>   	blt_set_object_ext(&ext.dst, 0, width, height, SURFACE_TYPE_2D);
>>   	if (config->inplace) {
>> -		blt_set_object(&blt.dst, mid->handle, dst->size, mid->region, 0,
>> -			       T_LINEAR, COMPRESSION_DISABLED, comp_type);
>> +		blt_set_block_object(&blt.dst, mid->handle, dst->size,
>> +				     mid->region, 0, T_LINEAR,
>> +				     COMPRESSION_DISABLED, comp_type);
>>   		blt.dst.ptr = mid->ptr;
>>   	}
>>   
>> @@ -476,14 +477,14 @@ static void block_multicopy(int i915,
>>   	if (!blt_supports_compression(i915))
>>   		pext3 = NULL;
>>   
>> -	src = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
>> -				T_LINEAR, COMPRESSION_DISABLED, comp_type);
>> -	mid = blt_create_object(i915, mid_region, width, height, bpp, uc_mocs,
>> -				mid_tiling, mid_compression, comp_type);
>> -	dst = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
>> -				mid_tiling, COMPRESSION_DISABLED, comp_type);
>> -	final = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
>> -				  T_LINEAR, COMPRESSION_DISABLED, comp_type);
>> +	src = blt_create_block_object(i915, region1, width, height, bpp, uc_mocs,
>> +				      T_LINEAR, COMPRESSION_DISABLED, comp_type);
>> +	mid = blt_create_block_object(i915, mid_region, width, height, bpp,
>> +				      uc_mocs, mid_tiling, mid_compression, comp_type);
>> +	dst = blt_create_block_object(i915, region1, width, height, bpp, uc_mocs,
>> +				      mid_tiling, COMPRESSION_DISABLED, comp_type);
>> +	final = blt_create_block_object(i915, region1, width, height, bpp, uc_mocs,
>> +					T_LINEAR, COMPRESSION_DISABLED, comp_type);
>>   	igt_assert(src->size == dst->size);
>>   	PRINT_SURFACE_INFO("src", src);
>>   	PRINT_SURFACE_INFO("mid", mid);
>> @@ -501,9 +502,9 @@ static void block_multicopy(int i915,
>>   	blt_set_copy_object(&blt3.final, final);
>>   
>>   	if (config->inplace) {
>> -		blt_set_object(&blt3.dst, mid->handle, dst->size, mid->region,
>> -			       mid->mocs, mid_tiling, COMPRESSION_DISABLED,
>> -			       comp_type);
>> +		blt_set_block_object(&blt3.dst, mid->handle, dst->size,
>> +				     mid->region, mid->mocs, mid_tiling,
>> +				     COMPRESSION_DISABLED, comp_type);
>>   		blt3.dst.ptr = mid->ptr;
>>   	}
>>   
>> diff --git a/tests/i915/gem_exercise_blt.c b/tests/i915/gem_exercise_blt.c
>> index b1123356..5b7178df 100644
>> --- a/tests/i915/gem_exercise_blt.c
>> +++ b/tests/i915/gem_exercise_blt.c
>> @@ -135,12 +135,9 @@ static void fast_copy_emit(int i915, const intel_ctx_t *ctx,
>>   
>>   	igt_assert(__gem_create_in_memory_regions(i915, &bb, &bb_size, region1) == 0);
>>   
>> -	src = blt_create_object(i915, region1, width, height, bpp, 0,
>> -				T_LINEAR, COMPRESSION_DISABLED, 0);
>> -	mid = blt_create_object(i915, region2, width, height, bpp, 0,
>> -				mid_tiling, COMPRESSION_DISABLED, 0);
>> -	dst = blt_create_object(i915, region1, width, height, bpp, 0,
>> -				T_LINEAR, COMPRESSION_DISABLED, 0);
>> +	src = blt_create_fast_object(i915, region1, width, height, bpp, T_LINEAR);
>> +	mid = blt_create_fast_object(i915, region2, width, height, bpp, mid_tiling);
>> +	dst = blt_create_fast_object(i915, region1, width, height, bpp, T_LINEAR);
>>   	igt_assert(src->size == dst->size);
>>   
>>   	PRINT_SURFACE_INFO("src", src);
>> @@ -195,12 +192,9 @@ static void fast_copy(int i915, const intel_ctx_t *ctx,
>>   
>>   	igt_assert(__gem_create_in_memory_regions(i915, &bb, &bb_size, region1) == 0);
>>   
>> -	src = blt_create_object(i915, region1, width, height, bpp, 0,
>> -				T_LINEAR, COMPRESSION_DISABLED, 0);
>> -	mid = blt_create_object(i915, region2, width, height, bpp, 0,
>> -				mid_tiling, COMPRESSION_DISABLED, 0);
>> -	dst = blt_create_object(i915, region1, width, height, bpp, 0,
>> -				T_LINEAR, COMPRESSION_DISABLED, 0);
>> +	src = blt_create_fast_object(i915, region1, width, height, bpp, T_LINEAR);
>> +	mid = blt_create_fast_object(i915, region2, width, height, bpp, mid_tiling);
>> +	dst = blt_create_fast_object(i915, region1, width, height, bpp, T_LINEAR);
>>   	igt_assert(src->size == dst->size);
>>   
>>   	blt_surface_fill_rect(i915, src, width, height);
>> diff --git a/tests/i915/gem_lmem_swapping.c b/tests/i915/gem_lmem_swapping.c
>> index 55b044ec..3a6308ed 100644
>> --- a/tests/i915/gem_lmem_swapping.c
>> +++ b/tests/i915/gem_lmem_swapping.c
>> @@ -317,9 +317,9 @@ static void __do_evict(int i915,
>>   
>>   		tmp->handle = gem_create_in_memory_regions(i915, params->size.max,
>>   				   INTEL_MEMORY_REGION_ID(I915_SYSTEM_MEMORY, 0));
>> -		blt_set_object(tmp, tmp->handle, params->size.max,
>> -			       INTEL_MEMORY_REGION_ID(I915_SYSTEM_MEMORY, 0),
>> -			       intel_get_uc_mocs(i915), T_LINEAR,
>> +		blt_set_block_object(tmp, tmp->handle, params->size.max,
>> +				     INTEL_MEMORY_REGION_ID(I915_SYSTEM_MEMORY, 0),
>> +				     intel_get_uc_mocs(i915), T_LINEAR,
>>   			       COMPRESSION_DISABLED, COMPRESSION_TYPE_3D);
>>   		blt_set_geom(tmp, stride, 0, 0, width, height, 0, 0);
>>   	}
>> @@ -348,9 +348,10 @@ static void __do_evict(int i915,
>>   
>>   			obj->blt_obj = calloc(1, sizeof(*obj->blt_obj));
>>   			igt_assert(obj->blt_obj);
>> -			blt_set_object(obj->blt_obj, obj->handle, obj->size, region_id,
>> -				       intel_get_uc_mocs(i915), T_LINEAR,
>> -				       COMPRESSION_ENABLED, COMPRESSION_TYPE_3D);
>> +			blt_set_block_object(obj->blt_obj, obj->handle, obj->size,
>> +					     region_id, intel_get_uc_mocs(i915),
>> +					     T_LINEAR, COMPRESSION_ENABLED,
>> +					     COMPRESSION_TYPE_3D);
>>   			blt_set_geom(obj->blt_obj, stride, 0, 0, width, height, 0, 0);
>>   			init_object_ccs(i915, obj, tmp, rand(), blt_ctx,
>>   					region_id, ahnd);
>> -- 
>> 2.25.1
>>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 2/2] lib/i915_blt: Split up blt_copy_object functions
  2023-01-30  8:21     ` Karolina Stolarek
@ 2023-01-30 19:26       ` Zbigniew Kempczyński
  0 siblings, 0 replies; 11+ messages in thread
From: Zbigniew Kempczyński @ 2023-01-30 19:26 UTC (permalink / raw)
  To: Karolina Stolarek; +Cc: igt-dev

On Mon, Jan 30, 2023 at 09:21:09AM +0100, Karolina Stolarek wrote:
> Hi,
> 
> On 26.01.2023 13:13, Zbigniew Kempczyński wrote:
> > On Mon, Jan 23, 2023 at 11:52:43AM +0100, Karolina Stolarek wrote:
> > > Add dedicated functions to set and create blt_copy_object depending on
> > > the copy type. Extract the common path so it can be called both in fast
> > > and block copy setup. Move mocs field in blt_copy_object so it's next
> > > to the compression-specific fields.
> > > 
> > > Signed-off-by: Karolina Stolarek <karolina.stolarek@intel.com>
> > > ---
> > >   lib/i915/i915_blt.c            | 92 ++++++++++++++++++++++++----------
> > >   lib/i915/i915_blt.h            | 29 +++++++----
> > >   tests/i915/gem_ccs.c           | 39 +++++++-------
> > >   tests/i915/gem_exercise_blt.c  | 18 +++----
> > >   tests/i915/gem_lmem_swapping.c | 13 ++---
> > >   5 files changed, 117 insertions(+), 74 deletions(-)
> > > 
> > > diff --git a/lib/i915/i915_blt.c b/lib/i915/i915_blt.c
> > > index 3e64efeb..979c7161 100644
> > > --- a/lib/i915/i915_blt.c
> > > +++ b/lib/i915/i915_blt.c
> > > @@ -1214,12 +1214,29 @@ void blt_set_batch(struct blt_copy_batch *batch,
> > >   	batch->region = region;
> > >   }
> > > -struct blt_copy_object *
> > > -blt_create_object(int i915, uint32_t region,
> > > -		  uint32_t width, uint32_t height, uint32_t bpp, uint8_t mocs,
> > > -		  enum blt_tiling_type tiling,
> > > -		  enum blt_compression compression,
> > > -		  enum blt_compression_type compression_type)
> > > +static void blt_set_object_common(struct blt_copy_object *obj,
> > > +				  uint32_t handle, uint64_t size,
> > > +				  uint32_t region, enum blt_tiling_type tiling)
> > > +{
> > > +	obj->handle = handle;
> > > +	obj->size = size;
> > > +	obj->region = region;
> > > +	obj->tiling = tiling;
> > > +}
> > > +
> > > +static void blt_set_object_compression(struct blt_copy_object *obj, uint8_t mocs,
> > > +				       enum blt_compression compression,
> > > +				       enum blt_compression_type compression_type)
> > > +{
> > > +	obj->mocs = mocs;
> > > +	obj->compression = compression;
> > > +	obj->compression_type = compression_type;
> > > +}
> > > +
> > > +static struct blt_copy_object *
> > > +blt_create_object_common(int i915, uint32_t region, uint32_t width,
> > > +			 uint32_t height, uint32_t bpp,
> > > +			 enum blt_tiling_type tiling)
> > 
> > This should be public. We assume above fields are common to all
> > supported commands we have (block-copy, fast-copy, etc), so user
> > can call this generic function and it should work for all
> > blit instructions. That means that you should fill mocs here even
> > if user didn't explicitly passed this value.
> > 
> > Rename this to blt_create_object(), I don't think _common suffix
> > is really necessary here.
> 
> But this means we'd have blt_create_block_copy and blt_create_object, as it
> wouldn't make sense to also have blt_create_fast_object. Having a special
> treatment of block-copy would make things confusing.

I think we should have smallest universal blt_create_object() which
should take minimal arguments list to cover all blit commands we
support. Internally it can fill additional fields like mocs for
block-copy (it is necessary to do proper blit).  I mean we should
provide some single and simple blit function which internally will
select instruction supported for platform. Currently we have a lot
of conditional code which should be handled by library call, not in
the test itself.

I mean sth like this:

srcobj = blt_create_object(i915, region, w, h, bpp, tiling);
dstobj = blt_create_object(i915, region, w, h, bpp, tiling);

blt_do_blit(i915, srcobj, dstobj);

or

pos = blt_emit_blit(i915, srcobj, dstobj, pos);

Underlying blt_emit_blit() should take care to fill batch with valid
blitter command supported on the platform. Otherwise what we're doing
still will stick to manual command selection with conditional code.

--
Zbigniew

> 
> The best option would be to have blt_create_fast_object and call it inside
> blt_create_block_object. It'd would be fine by the user, maybe slightly
> confusing for people who maintain the lib, but it should be alright.
> 
> I think we should separate the commands, even if they use the same struct
> underneath.
> 
> Thanks,
> Karolina
> > --
> > Zbigniew
> > 
> > >   {
> > >   	struct blt_copy_object *obj;
> > >   	uint64_t size = width * height * bpp / 8;
> > > @@ -1228,20 +1245,58 @@ blt_create_object(int i915, uint32_t region,
> > >   	obj = calloc(1, sizeof(*obj));
> > > -	obj->size = size;
> > >   	igt_assert(__gem_create_in_memory_regions(i915, &handle,
> > >   						  &size, region) == 0);
> > > +	obj->ptr = gem_mmap__device_coherent(i915, handle, 0, size,
> > > +					     PROT_READ | PROT_WRITE);
> > > +	obj->size = size;
> > > -	blt_set_object(obj, handle, size, region, mocs, tiling,
> > > -		       compression, compression_type);
> > > +	blt_set_object_common(obj, handle, size, region, tiling);
> > >   	blt_set_geom(obj, stride, 0, 0, width, height, 0, 0);
> > > -	obj->ptr = gem_mmap__device_coherent(i915, handle, 0, size,
> > > -					     PROT_READ | PROT_WRITE);
> > > +	return obj;
> > > +}
> > > +
> > > +struct blt_copy_object *
> > > +blt_create_block_object(int i915, uint32_t region,
> > > +			uint32_t width, uint32_t height, uint32_t bpp,
> > > +			uint8_t mocs, enum blt_tiling_type tiling,
> > > +			enum blt_compression compression,
> > > +			enum blt_compression_type compression_type)
> > a> +{
> > > +	struct blt_copy_object *obj;
> > > +
> > > +	obj = blt_create_object_common(i915, region, width, height, bpp, tiling);
> > > +	blt_set_object_compression(obj, mocs, compression, compression_type);
> > >   	return obj;
> > >   }
> > > +struct blt_copy_object *
> > > +blt_create_fast_object(int i915, uint32_t region, uint32_t width,
> > > +		       uint32_t height, uint32_t bpp,
> > > +		       enum blt_tiling_type tiling)
> > > +{
> > > +	return blt_create_object_common(i915, region, width, height, bpp, tiling);
> > > +}
> > > +
> > > +void blt_set_block_object(struct blt_copy_object *obj,
> > > +			  uint32_t handle, uint64_t size, uint32_t region,
> > > +			  uint8_t mocs, enum blt_tiling_type tiling,
> > > +			  enum blt_compression compression,
> > > +			  enum blt_compression_type compression_type)
> > > +{
> > > +	blt_set_object_common(obj, handle, size, region, tiling);
> > > +	blt_set_object_compression(obj, mocs, compression, compression_type);
> > > +}
> > > +
> > > +void blt_set_fast_object(struct blt_copy_object *obj,
> > > +			 uint32_t handle, uint64_t size,
> > > +			 uint32_t region, enum blt_tiling_type tiling)
> > > +{
> > > +	blt_set_object_common(obj, handle, size, region, tiling);
> > > +}
> > > +
> > >   void blt_destroy_object(int i915, struct blt_copy_object *obj)
> > >   {
> > >   	if (obj->ptr)
> > > @@ -1251,21 +1306,6 @@ void blt_destroy_object(int i915, struct blt_copy_object *obj)
> > >   	free(obj);
> > >   }
> > > -void blt_set_object(struct blt_copy_object *obj,
> > > -		    uint32_t handle, uint64_t size, uint32_t region,
> > > -		    uint8_t mocs, enum blt_tiling_type tiling,
> > > -		    enum blt_compression compression,
> > > -		    enum blt_compression_type compression_type)
> > > -{
> > > -	obj->handle = handle;
> > > -	obj->size = size;
> > > -	obj->region = region;
> > > -	obj->mocs = mocs;
> > > -	obj->tiling = tiling;
> > > -	obj->compression = compression;
> > > -	obj->compression_type = compression_type;
> > > -}
> > > -
> > >   void blt_set_object_ext(struct blt_block_copy_object_ext *obj,
> > >   			uint8_t compression_format,
> > >   			uint16_t surface_width, uint16_t surface_height,
> > > diff --git a/lib/i915/i915_blt.h b/lib/i915/i915_blt.h
> > > index eaf4cc1f..1bd29c8c 100644
> > > --- a/lib/i915/i915_blt.h
> > > +++ b/lib/i915/i915_blt.h
> > > @@ -75,8 +75,8 @@ struct blt_copy_object {
> > >   	uint32_t handle;
> > >   	uint32_t region;
> > >   	uint64_t size;
> > > -	uint8_t mocs;
> > >   	enum blt_tiling_type tiling;
> > > +	uint8_t mocs; /* BC only */
> > >   	enum blt_compression compression;  /* BC only */
> > >   	enum blt_compression_type compression_type; /* BC only */
> > >   	uint32_t pitch;
> > > @@ -214,17 +214,24 @@ void blt_set_batch(struct blt_copy_batch *batch,
> > >   		   uint32_t handle, uint64_t size, uint32_t region);
> > >   struct blt_copy_object *
> > > -blt_create_object(int i915, uint32_t region,
> > > -		  uint32_t width, uint32_t height, uint32_t bpp, uint8_t mocs,
> > > -		  enum blt_tiling_type tiling,
> > > -		  enum blt_compression compression,
> > > -		  enum blt_compression_type compression_type);
> > > +blt_create_block_object(int i915, uint32_t region,
> > > +			uint32_t width, uint32_t height, uint32_t bpp,
> > > +			uint8_t mocs, enum blt_tiling_type tiling,
> > > +			enum blt_compression compression,
> > > +			enum blt_compression_type compression_type);
> > > +struct blt_copy_object *
> > > +blt_create_fast_object(int i915, uint32_t region,
> > > +		       uint32_t width, uint32_t height, uint32_t bpp,
> > > +		       enum blt_tiling_type tiling);
> > >   void blt_destroy_object(int i915, struct blt_copy_object *obj);
> > > -void blt_set_object(struct blt_copy_object *obj,
> > > -		    uint32_t handle, uint64_t size, uint32_t region,
> > > -		    uint8_t mocs, enum blt_tiling_type tiling,
> > > -		    enum blt_compression compression,
> > > -		    enum blt_compression_type compression_type);
> > > +void blt_set_block_object(struct blt_copy_object *obj,
> > > +			  uint32_t handle, uint64_t size, uint32_t region,
> > > +			  uint8_t mocs, enum blt_tiling_type tiling,
> > > +			  enum blt_compression compression,
> > > +			  enum blt_compression_type compression_type);
> > > +void blt_set_fast_object(struct blt_copy_object *obj,
> > > +			 uint32_t handle, uint64_t size, uint32_t region,
> > > +			 enum blt_tiling_type tiling);
> > >   void blt_set_object_ext(struct blt_block_copy_object_ext *obj,
> > >   			uint8_t compression_format,
> > >   			uint16_t surface_width, uint16_t surface_height,
> > > diff --git a/tests/i915/gem_ccs.c b/tests/i915/gem_ccs.c
> > > index b7a32673..7e16c792 100644
> > > --- a/tests/i915/gem_ccs.c
> > > +++ b/tests/i915/gem_ccs.c
> > > @@ -360,12 +360,12 @@ static void block_copy(int i915,
> > >   	if (!blt_supports_compression(i915) && !IS_METEORLAKE(devid))
> > >   		pext = NULL;
> > > -	src = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
> > > -				T_LINEAR, COMPRESSION_DISABLED, comp_type);
> > > -	mid = blt_create_object(i915, mid_region, width, height, bpp, uc_mocs,
> > > -				mid_tiling, mid_compression, comp_type);
> > > -	dst = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
> > > -				T_LINEAR, COMPRESSION_DISABLED, comp_type);
> > > +	src = blt_create_block_object(i915, region1, width, height, bpp, uc_mocs,
> > > +				      T_LINEAR, COMPRESSION_DISABLED, comp_type);
> > > +	mid = blt_create_block_object(i915, mid_region, width, height, bpp, uc_mocs,
> > > +				      mid_tiling, mid_compression, comp_type);
> > > +	dst = blt_create_block_object(i915, region1, width, height, bpp, uc_mocs,
> > > +				      T_LINEAR, COMPRESSION_DISABLED, comp_type);
> > >   	igt_assert(src->size == dst->size);
> > >   	PRINT_SURFACE_INFO("src", src);
> > >   	PRINT_SURFACE_INFO("mid", mid);
> > > @@ -428,8 +428,9 @@ static void block_copy(int i915,
> > >   	blt_set_object_ext(&ext.src, mid_compression_format, width, height, SURFACE_TYPE_2D);
> > >   	blt_set_object_ext(&ext.dst, 0, width, height, SURFACE_TYPE_2D);
> > >   	if (config->inplace) {
> > > -		blt_set_object(&blt.dst, mid->handle, dst->size, mid->region, 0,
> > > -			       T_LINEAR, COMPRESSION_DISABLED, comp_type);
> > > +		blt_set_block_object(&blt.dst, mid->handle, dst->size,
> > > +				     mid->region, 0, T_LINEAR,
> > > +				     COMPRESSION_DISABLED, comp_type);
> > >   		blt.dst.ptr = mid->ptr;
> > >   	}
> > > @@ -476,14 +477,14 @@ static void block_multicopy(int i915,
> > >   	if (!blt_supports_compression(i915))
> > >   		pext3 = NULL;
> > > -	src = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
> > > -				T_LINEAR, COMPRESSION_DISABLED, comp_type);
> > > -	mid = blt_create_object(i915, mid_region, width, height, bpp, uc_mocs,
> > > -				mid_tiling, mid_compression, comp_type);
> > > -	dst = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
> > > -				mid_tiling, COMPRESSION_DISABLED, comp_type);
> > > -	final = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
> > > -				  T_LINEAR, COMPRESSION_DISABLED, comp_type);
> > > +	src = blt_create_block_object(i915, region1, width, height, bpp, uc_mocs,
> > > +				      T_LINEAR, COMPRESSION_DISABLED, comp_type);
> > > +	mid = blt_create_block_object(i915, mid_region, width, height, bpp,
> > > +				      uc_mocs, mid_tiling, mid_compression, comp_type);
> > > +	dst = blt_create_block_object(i915, region1, width, height, bpp, uc_mocs,
> > > +				      mid_tiling, COMPRESSION_DISABLED, comp_type);
> > > +	final = blt_create_block_object(i915, region1, width, height, bpp, uc_mocs,
> > > +					T_LINEAR, COMPRESSION_DISABLED, comp_type);
> > >   	igt_assert(src->size == dst->size);
> > >   	PRINT_SURFACE_INFO("src", src);
> > >   	PRINT_SURFACE_INFO("mid", mid);
> > > @@ -501,9 +502,9 @@ static void block_multicopy(int i915,
> > >   	blt_set_copy_object(&blt3.final, final);
> > >   	if (config->inplace) {
> > > -		blt_set_object(&blt3.dst, mid->handle, dst->size, mid->region,
> > > -			       mid->mocs, mid_tiling, COMPRESSION_DISABLED,
> > > -			       comp_type);
> > > +		blt_set_block_object(&blt3.dst, mid->handle, dst->size,
> > > +				     mid->region, mid->mocs, mid_tiling,
> > > +				     COMPRESSION_DISABLED, comp_type);
> > >   		blt3.dst.ptr = mid->ptr;
> > >   	}
> > > diff --git a/tests/i915/gem_exercise_blt.c b/tests/i915/gem_exercise_blt.c
> > > index b1123356..5b7178df 100644
> > > --- a/tests/i915/gem_exercise_blt.c
> > > +++ b/tests/i915/gem_exercise_blt.c
> > > @@ -135,12 +135,9 @@ static void fast_copy_emit(int i915, const intel_ctx_t *ctx,
> > >   	igt_assert(__gem_create_in_memory_regions(i915, &bb, &bb_size, region1) == 0);
> > > -	src = blt_create_object(i915, region1, width, height, bpp, 0,
> > > -				T_LINEAR, COMPRESSION_DISABLED, 0);
> > > -	mid = blt_create_object(i915, region2, width, height, bpp, 0,
> > > -				mid_tiling, COMPRESSION_DISABLED, 0);
> > > -	dst = blt_create_object(i915, region1, width, height, bpp, 0,
> > > -				T_LINEAR, COMPRESSION_DISABLED, 0);
> > > +	src = blt_create_fast_object(i915, region1, width, height, bpp, T_LINEAR);
> > > +	mid = blt_create_fast_object(i915, region2, width, height, bpp, mid_tiling);
> > > +	dst = blt_create_fast_object(i915, region1, width, height, bpp, T_LINEAR);
> > >   	igt_assert(src->size == dst->size);
> > >   	PRINT_SURFACE_INFO("src", src);
> > > @@ -195,12 +192,9 @@ static void fast_copy(int i915, const intel_ctx_t *ctx,
> > >   	igt_assert(__gem_create_in_memory_regions(i915, &bb, &bb_size, region1) == 0);
> > > -	src = blt_create_object(i915, region1, width, height, bpp, 0,
> > > -				T_LINEAR, COMPRESSION_DISABLED, 0);
> > > -	mid = blt_create_object(i915, region2, width, height, bpp, 0,
> > > -				mid_tiling, COMPRESSION_DISABLED, 0);
> > > -	dst = blt_create_object(i915, region1, width, height, bpp, 0,
> > > -				T_LINEAR, COMPRESSION_DISABLED, 0);
> > > +	src = blt_create_fast_object(i915, region1, width, height, bpp, T_LINEAR);
> > > +	mid = blt_create_fast_object(i915, region2, width, height, bpp, mid_tiling);
> > > +	dst = blt_create_fast_object(i915, region1, width, height, bpp, T_LINEAR);
> > >   	igt_assert(src->size == dst->size);
> > >   	blt_surface_fill_rect(i915, src, width, height);
> > > diff --git a/tests/i915/gem_lmem_swapping.c b/tests/i915/gem_lmem_swapping.c
> > > index 55b044ec..3a6308ed 100644
> > > --- a/tests/i915/gem_lmem_swapping.c
> > > +++ b/tests/i915/gem_lmem_swapping.c
> > > @@ -317,9 +317,9 @@ static void __do_evict(int i915,
> > >   		tmp->handle = gem_create_in_memory_regions(i915, params->size.max,
> > >   				   INTEL_MEMORY_REGION_ID(I915_SYSTEM_MEMORY, 0));
> > > -		blt_set_object(tmp, tmp->handle, params->size.max,
> > > -			       INTEL_MEMORY_REGION_ID(I915_SYSTEM_MEMORY, 0),
> > > -			       intel_get_uc_mocs(i915), T_LINEAR,
> > > +		blt_set_block_object(tmp, tmp->handle, params->size.max,
> > > +				     INTEL_MEMORY_REGION_ID(I915_SYSTEM_MEMORY, 0),
> > > +				     intel_get_uc_mocs(i915), T_LINEAR,
> > >   			       COMPRESSION_DISABLED, COMPRESSION_TYPE_3D);
> > >   		blt_set_geom(tmp, stride, 0, 0, width, height, 0, 0);
> > >   	}
> > > @@ -348,9 +348,10 @@ static void __do_evict(int i915,
> > >   			obj->blt_obj = calloc(1, sizeof(*obj->blt_obj));
> > >   			igt_assert(obj->blt_obj);
> > > -			blt_set_object(obj->blt_obj, obj->handle, obj->size, region_id,
> > > -				       intel_get_uc_mocs(i915), T_LINEAR,
> > > -				       COMPRESSION_ENABLED, COMPRESSION_TYPE_3D);
> > > +			blt_set_block_object(obj->blt_obj, obj->handle, obj->size,
> > > +					     region_id, intel_get_uc_mocs(i915),
> > > +					     T_LINEAR, COMPRESSION_ENABLED,
> > > +					     COMPRESSION_TYPE_3D);
> > >   			blt_set_geom(obj->blt_obj, stride, 0, 0, width, height, 0, 0);
> > >   			init_object_ccs(i915, obj, tmp, rand(), blt_ctx,
> > >   					region_id, ahnd);
> > > -- 
> > > 2.25.1
> > > 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 1/2] lib/i915_blt: Remove create_mapping flag from blt_create_object
  2023-01-30  8:10     ` Karolina Stolarek
@ 2023-01-30 19:30       ` Zbigniew Kempczyński
  0 siblings, 0 replies; 11+ messages in thread
From: Zbigniew Kempczyński @ 2023-01-30 19:30 UTC (permalink / raw)
  To: Karolina Stolarek; +Cc: igt-dev

On Mon, Jan 30, 2023 at 09:10:10AM +0100, Karolina Stolarek wrote:
> Hi Zbigniew,
> 
> Sorry for my late response, the email got stuck in my inbox.
> 
> On 26.01.2023 13:00, Zbigniew Kempczyński wrote:
> > On Mon, Jan 23, 2023 at 11:52:42AM +0100, Karolina Stolarek wrote:
> > > In the tests we have, we always set create_mapping flag to true, as we
> > > wish to create memory mappings when creating blitter copy objects. As
> > > this is the only use case, we can delete the flag and just create a
> > > mapping.
> > > 
> > > Cc: Zbigniew Kempczynski <zbigniew.kempczynski@intel.com>
> > > Signed-off-by: Karolina Stolarek <karolina.stolarek@intel.com>
> > > ---
> > >   lib/i915/i915_blt.c           |  8 +++-----
> > >   lib/i915/i915_blt.h           |  3 +--
> > >   tests/i915/gem_ccs.c          | 14 +++++++-------
> > >   tests/i915/gem_exercise_blt.c | 12 ++++++------
> > >   4 files changed, 17 insertions(+), 20 deletions(-)
> > > 
> > > diff --git a/lib/i915/i915_blt.c b/lib/i915/i915_blt.c
> > > index bbfb6ffc..3e64efeb 100644
> > > --- a/lib/i915/i915_blt.c
> > > +++ b/lib/i915/i915_blt.c
> > > @@ -1219,8 +1219,7 @@ blt_create_object(int i915, uint32_t region,
> > >   		  uint32_t width, uint32_t height, uint32_t bpp, uint8_t mocs,
> > >   		  enum blt_tiling_type tiling,
> > >   		  enum blt_compression compression,
> > > -		  enum blt_compression_type compression_type,
> > > -		  bool create_mapping)
> > > +		  enum blt_compression_type compression_type)
> > 
> > In this case I would like to keep create_mapping flag. gem_ccs and
> > gem_exercise_blt use this mapping but if you someone would like
> > to reuse blt_create_object() without creation additional mapping
> > lack of this argument enforces creating object in the test.
> 
> Hm, but in the majority of cases we'd like to create a new object. From the
> API point of view, we could introduce another function to do it. The list of
> parameters is already quite long here.

With this number one more doesn't extend it too much. But this additional
argument allows user to avoid create mapping during object creation.
I wouldn't assume client of blitter lib will always require mapping.

--
Zbigniew

> 
> Thanks,
> Karolina
> 
> > 
> > --
> > Zbigniew
> > 
> > >   {
> > >   	struct blt_copy_object *obj;
> > >   	uint64_t size = width * height * bpp / 8;
> > > @@ -1237,9 +1236,8 @@ blt_create_object(int i915, uint32_t region,
> > >   		       compression, compression_type);
> > >   	blt_set_geom(obj, stride, 0, 0, width, height, 0, 0);
> > > -	if (create_mapping)
> > > -		obj->ptr = gem_mmap__device_coherent(i915, handle, 0, size,
> > > -						     PROT_READ | PROT_WRITE);
> > > +	obj->ptr = gem_mmap__device_coherent(i915, handle, 0, size,
> > > +					     PROT_READ | PROT_WRITE);
> > >   	return obj;
> > >   }
> > > diff --git a/lib/i915/i915_blt.h b/lib/i915/i915_blt.h
> > > index 299dff8e..eaf4cc1f 100644
> > > --- a/lib/i915/i915_blt.h
> > > +++ b/lib/i915/i915_blt.h
> > > @@ -218,8 +218,7 @@ blt_create_object(int i915, uint32_t region,
> > >   		  uint32_t width, uint32_t height, uint32_t bpp, uint8_t mocs,
> > >   		  enum blt_tiling_type tiling,
> > >   		  enum blt_compression compression,
> > > -		  enum blt_compression_type compression_type,
> > > -		  bool create_mapping);
> > > +		  enum blt_compression_type compression_type);
> > >   void blt_destroy_object(int i915, struct blt_copy_object *obj);
> > >   void blt_set_object(struct blt_copy_object *obj,
> > >   		    uint32_t handle, uint64_t size, uint32_t region,
> > > diff --git a/tests/i915/gem_ccs.c b/tests/i915/gem_ccs.c
> > > index f629f664..b7a32673 100644
> > > --- a/tests/i915/gem_ccs.c
> > > +++ b/tests/i915/gem_ccs.c
> > > @@ -361,11 +361,11 @@ static void block_copy(int i915,
> > >   		pext = NULL;
> > >   	src = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
> > > -				T_LINEAR, COMPRESSION_DISABLED, comp_type, true);
> > > +				T_LINEAR, COMPRESSION_DISABLED, comp_type);
> > >   	mid = blt_create_object(i915, mid_region, width, height, bpp, uc_mocs,
> > > -				mid_tiling, mid_compression, comp_type, true);
> > > +				mid_tiling, mid_compression, comp_type);
> > >   	dst = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
> > > -				T_LINEAR, COMPRESSION_DISABLED, comp_type, true);
> > > +				T_LINEAR, COMPRESSION_DISABLED, comp_type);
> > >   	igt_assert(src->size == dst->size);
> > >   	PRINT_SURFACE_INFO("src", src);
> > >   	PRINT_SURFACE_INFO("mid", mid);
> > > @@ -477,13 +477,13 @@ static void block_multicopy(int i915,
> > >   		pext3 = NULL;
> > >   	src = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
> > > -				T_LINEAR, COMPRESSION_DISABLED, comp_type, true);
> > > +				T_LINEAR, COMPRESSION_DISABLED, comp_type);
> > >   	mid = blt_create_object(i915, mid_region, width, height, bpp, uc_mocs,
> > > -				mid_tiling, mid_compression, comp_type, true);
> > > +				mid_tiling, mid_compression, comp_type);
> > >   	dst = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
> > > -				mid_tiling, COMPRESSION_DISABLED, comp_type, true);
> > > +				mid_tiling, COMPRESSION_DISABLED, comp_type);
> > >   	final = blt_create_object(i915, region1, width, height, bpp, uc_mocs,
> > > -				  T_LINEAR, COMPRESSION_DISABLED, comp_type, true);
> > > +				  T_LINEAR, COMPRESSION_DISABLED, comp_type);
> > >   	igt_assert(src->size == dst->size);
> > >   	PRINT_SURFACE_INFO("src", src);
> > >   	PRINT_SURFACE_INFO("mid", mid);
> > > diff --git a/tests/i915/gem_exercise_blt.c b/tests/i915/gem_exercise_blt.c
> > > index 02c54f85..b1123356 100644
> > > --- a/tests/i915/gem_exercise_blt.c
> > > +++ b/tests/i915/gem_exercise_blt.c
> > > @@ -136,11 +136,11 @@ static void fast_copy_emit(int i915, const intel_ctx_t *ctx,
> > >   	igt_assert(__gem_create_in_memory_regions(i915, &bb, &bb_size, region1) == 0);
> > >   	src = blt_create_object(i915, region1, width, height, bpp, 0,
> > > -				T_LINEAR, COMPRESSION_DISABLED, 0, true);
> > > +				T_LINEAR, COMPRESSION_DISABLED, 0);
> > >   	mid = blt_create_object(i915, region2, width, height, bpp, 0,
> > > -				mid_tiling, COMPRESSION_DISABLED, 0, true);
> > > +				mid_tiling, COMPRESSION_DISABLED, 0);
> > >   	dst = blt_create_object(i915, region1, width, height, bpp, 0,
> > > -				T_LINEAR, COMPRESSION_DISABLED, 0, true);
> > > +				T_LINEAR, COMPRESSION_DISABLED, 0);
> > >   	igt_assert(src->size == dst->size);
> > >   	PRINT_SURFACE_INFO("src", src);
> > > @@ -196,11 +196,11 @@ static void fast_copy(int i915, const intel_ctx_t *ctx,
> > >   	igt_assert(__gem_create_in_memory_regions(i915, &bb, &bb_size, region1) == 0);
> > >   	src = blt_create_object(i915, region1, width, height, bpp, 0,
> > > -				T_LINEAR, COMPRESSION_DISABLED, 0, true);
> > > +				T_LINEAR, COMPRESSION_DISABLED, 0);
> > >   	mid = blt_create_object(i915, region2, width, height, bpp, 0,
> > > -				mid_tiling, COMPRESSION_DISABLED, 0, true);
> > > +				mid_tiling, COMPRESSION_DISABLED, 0);
> > >   	dst = blt_create_object(i915, region1, width, height, bpp, 0,
> > > -				T_LINEAR, COMPRESSION_DISABLED, 0, true);
> > > +				T_LINEAR, COMPRESSION_DISABLED, 0);
> > >   	igt_assert(src->size == dst->size);
> > >   	blt_surface_fill_rect(i915, src, width, height);
> > > -- 
> > > 2.25.1
> > > 

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2023-01-30 19:30 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-23 10:52 [igt-dev] [PATCH i-g-t 0/2] lib/i915_blt: Minor blt_create_object refactoring Karolina Stolarek
2023-01-23 10:52 ` [igt-dev] [PATCH i-g-t 1/2] lib/i915_blt: Remove create_mapping flag from blt_create_object Karolina Stolarek
2023-01-26 12:00   ` Zbigniew Kempczyński
2023-01-30  8:10     ` Karolina Stolarek
2023-01-30 19:30       ` Zbigniew Kempczyński
2023-01-23 10:52 ` [igt-dev] [PATCH i-g-t 2/2] lib/i915_blt: Split up blt_copy_object functions Karolina Stolarek
2023-01-26 12:13   ` Zbigniew Kempczyński
2023-01-30  8:21     ` Karolina Stolarek
2023-01-30 19:26       ` Zbigniew Kempczyński
2023-01-23 12:52 ` [igt-dev] ✓ Fi.CI.BAT: success for lib/i915_blt: Minor blt_create_object refactoring Patchwork
2023-01-24  1:55 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.