[PATCH i-g-t 1/6] tests/gem_render_copy: Make subtest parameters more explicit

Imre Deak imre.deak at intel.com
Fri Nov 29 01:50:29 UTC 2019


Signed-off-by: Imre Deak <imre.deak at intel.com>
---
 lib/intel_batchbuffer.h      |   5 ++
 tests/i915/gem_render_copy.c | 129 ++++++++++++++++++++++++-----------
 2 files changed, 93 insertions(+), 41 deletions(-)

diff --git a/lib/intel_batchbuffer.h b/lib/intel_batchbuffer.h
index e5f6e6d0..402e68bc 100644
--- a/lib/intel_batchbuffer.h
+++ b/lib/intel_batchbuffer.h
@@ -210,6 +210,11 @@ void intel_copy_bo(struct intel_batchbuffer *batch,
 #define I915_TILING_Yf	3
 #define I915_TILING_Ys	4
 
+enum i915_compression {
+	I915_COMPRESSION_NONE,
+	I915_COMPRESSION_RENDER,
+};
+
 /**
  * igt_buf:
  * @bo: underlying libdrm buffer object
diff --git a/tests/i915/gem_render_copy.c b/tests/i915/gem_render_copy.c
index 67be079c..cc8af1e1 100644
--- a/tests/i915/gem_render_copy.c
+++ b/tests/i915/gem_render_copy.c
@@ -413,7 +413,8 @@ scratch_buf_copy(data_t *data,
 
 static void scratch_buf_init(data_t *data, struct igt_buf *buf,
 			     int width, int height,
-			     uint32_t req_tiling, bool ccs)
+			     uint32_t req_tiling,
+			     enum i915_compression compression)
 {
 	uint32_t tiling = req_tiling;
 	unsigned long pitch;
@@ -421,7 +422,7 @@ static void scratch_buf_init(data_t *data, struct igt_buf *buf,
 
 	memset(buf, 0, sizeof(*buf));
 
-	if (ccs) {
+	if (compression != I915_COMPRESSION_NONE) {
 		int aux_width, aux_height;
 		int size;
 
@@ -572,10 +573,11 @@ static void scratch_buf_aux_check(data_t *data,
 		     "Aux surface indicates that nothing was compressed\n");
 }
 
-#define SRC_COMPRESSED	1
-#define DST_COMPRESSED	2
+#define SOURCE_MIXED_TILED	1
 
 static void test(data_t *data, uint32_t src_tiling, uint32_t dst_tiling,
+		 enum i915_compression src_compression,
+		 enum i915_compression dst_compression,
 		 int flags)
 {
 	struct igt_buf dst, src_ccs, dst_ccs, ref;
@@ -608,14 +610,15 @@ static void test(data_t *data, uint32_t src_tiling, uint32_t dst_tiling,
 	};
 	int opt_dump_aub = igt_aub_dump_enabled();
 	int num_src = ARRAY_SIZE(src);
-	bool src_compressed = flags & SRC_COMPRESSED;
-	bool dst_compressed = flags & DST_COMPRESSED;
+	const bool src_mixed_tiled = flags & SOURCE_MIXED_TILED;
+	const bool src_compressed = src_compression != I915_COMPRESSION_NONE;
+	const bool dst_compressed = dst_compression != I915_COMPRESSION_NONE;
 
 	/*
-	 * The tiling for uncompressed source buffers is determined by the
-	 * tiling of the src[] buffers above.
+	 * The source tilings for mixed source tiling test cases are determined
+	 * by the tiling of the src[] buffers above.
 	 */
-	igt_assert(!src_tiling || src_compressed);
+	igt_assert(src_tiling == I915_TILING_NONE || !src_mixed_tiled);
 
 	/* no Yf before gen9 */
 	if (intel_gen(data->devid) < 9)
@@ -626,15 +629,18 @@ static void test(data_t *data, uint32_t src_tiling, uint32_t dst_tiling,
 		igt_require(intel_gen(data->devid) >= 9);
 
 	for (int i = 0; i < num_src; i++)
-		scratch_buf_init(data, &src[i].buf, WIDTH, HEIGHT, src[i].tiling, false);
-	scratch_buf_init(data, &dst, WIDTH, HEIGHT, dst_tiling, false);
+		scratch_buf_init(data, &src[i].buf, WIDTH, HEIGHT, src[i].tiling,
+				 I915_COMPRESSION_NONE);
+	scratch_buf_init(data, &dst, WIDTH, HEIGHT, dst_tiling,
+			 I915_COMPRESSION_NONE);
 	if (src_compressed)
 		scratch_buf_init(data, &src_ccs, WIDTH, HEIGHT,
-				 src_tiling, true);
+				 src_tiling, src_compression);
 	if (dst_compressed)
 		scratch_buf_init(data, &dst_ccs, WIDTH, HEIGHT,
-				 dst_tiling, true);
-	scratch_buf_init(data, &ref, WIDTH, HEIGHT, I915_TILING_NONE, false);
+				 dst_tiling, dst_compression);
+	scratch_buf_init(data, &ref, WIDTH, HEIGHT, I915_TILING_NONE,
+			 I915_COMPRESSION_NONE);
 
 	for (int i = 0; i < num_src; i++)
 		scratch_buf_draw_pattern(data, &src[i].buf,
@@ -765,7 +771,8 @@ const char *help_str =
 	"  -a\tCheck all pixels\n"
 	;
 
-static const char *buf_mode_str(uint32_t tiling, bool compressed)
+static const char *buf_mode_str(uint32_t tiling,
+				enum i915_compression compression)
 {
 	switch (tiling) {
 	default:
@@ -774,9 +781,11 @@ static const char *buf_mode_str(uint32_t tiling, bool compressed)
 	case I915_TILING_X:
 		return "x-tiled";
 	case I915_TILING_Y:
-		return compressed ? "y-tiled-ccs" : "y-tiled";
+		return compression == I915_COMPRESSION_RENDER ? "y-tiled-ccs" :
+								"y-tiled";
 	case I915_TILING_Yf:
-		return compressed ? "yf-tiled-ccs" : "yf-tiled";
+		return compression == I915_COMPRESSION_RENDER ? "yf-tiled-ccs" :
+								"yf-tiled";
 	}
 }
 
@@ -785,27 +794,61 @@ igt_main_args("da", NULL, help_str, opt_handler, NULL)
 	static const struct test_desc {
 		int src_tiling;
 		int dst_tiling;
+		enum i915_compression src_compression;
+		enum i915_compression dst_compression;
 		int flags;
 	} tests[] = {
-		{ I915_TILING_NONE, I915_TILING_NONE, 0 },
-		{ I915_TILING_NONE, I915_TILING_X,    0 },
-		{ I915_TILING_NONE, I915_TILING_Y,    0 },
-		{ I915_TILING_NONE, I915_TILING_Yf,   0 },
-
-		{ I915_TILING_Y,    I915_TILING_NONE, SRC_COMPRESSED },
-		{ I915_TILING_Y,    I915_TILING_X,    SRC_COMPRESSED },
-		{ I915_TILING_Y,    I915_TILING_Y,    SRC_COMPRESSED },
-		{ I915_TILING_Y,    I915_TILING_Yf,   SRC_COMPRESSED },
-
-		{ I915_TILING_Yf,   I915_TILING_NONE, SRC_COMPRESSED },
-		{ I915_TILING_Yf,   I915_TILING_X,    SRC_COMPRESSED },
-		{ I915_TILING_Yf,   I915_TILING_Y,    SRC_COMPRESSED },
-		{ I915_TILING_Yf,   I915_TILING_Yf,   SRC_COMPRESSED },
-
-		{ I915_TILING_Y,    I915_TILING_Y,    SRC_COMPRESSED | DST_COMPRESSED },
-		{ I915_TILING_Yf,   I915_TILING_Yf,   SRC_COMPRESSED | DST_COMPRESSED },
-		{ I915_TILING_Y,    I915_TILING_Yf,   SRC_COMPRESSED | DST_COMPRESSED },
-		{ I915_TILING_Yf,   I915_TILING_Y,    SRC_COMPRESSED | DST_COMPRESSED },
+		{ I915_TILING_NONE,		I915_TILING_NONE,
+		  I915_COMPRESSION_NONE,	I915_COMPRESSION_NONE,
+		  SOURCE_MIXED_TILED, },
+		{ I915_TILING_NONE,		I915_TILING_X,
+		  I915_COMPRESSION_NONE,	I915_COMPRESSION_NONE,
+		  SOURCE_MIXED_TILED, },
+		{ I915_TILING_NONE,		I915_TILING_Y,
+		  I915_COMPRESSION_NONE,	I915_COMPRESSION_NONE,
+		  SOURCE_MIXED_TILED, },
+		{ I915_TILING_NONE,		I915_TILING_Yf,
+		  I915_COMPRESSION_NONE,	I915_COMPRESSION_NONE,
+		  SOURCE_MIXED_TILED, },
+
+		{ I915_TILING_Y,		I915_TILING_NONE,
+		  I915_COMPRESSION_RENDER,	I915_COMPRESSION_NONE,
+		  0, },
+		{ I915_TILING_Y,		I915_TILING_X,
+		  I915_COMPRESSION_RENDER,	I915_COMPRESSION_NONE,
+		  0, },
+		{ I915_TILING_Y,		I915_TILING_Y,
+		  I915_COMPRESSION_RENDER,	I915_COMPRESSION_NONE,
+		  0, },
+		{ I915_TILING_Y,		I915_TILING_Yf,
+		  I915_COMPRESSION_RENDER,	I915_COMPRESSION_NONE,
+		  0, },
+
+		{ I915_TILING_Yf,		I915_TILING_NONE,
+		  I915_COMPRESSION_RENDER,	I915_COMPRESSION_NONE,
+		  0, },
+		{ I915_TILING_Yf,		I915_TILING_X,
+		  I915_COMPRESSION_RENDER,	I915_COMPRESSION_NONE,
+		  0, },
+		{ I915_TILING_Yf,		I915_TILING_Y,
+		  I915_COMPRESSION_RENDER,	I915_COMPRESSION_NONE,
+		  0, },
+		{ I915_TILING_Yf,		I915_TILING_Yf,
+		  I915_COMPRESSION_RENDER,	I915_COMPRESSION_NONE,
+		  0, },
+
+		{ I915_TILING_Y,		I915_TILING_Y,
+		  I915_COMPRESSION_RENDER,	I915_COMPRESSION_RENDER,
+		  0, },
+		{ I915_TILING_Yf,		I915_TILING_Yf,
+		  I915_COMPRESSION_RENDER,	I915_COMPRESSION_RENDER,
+		  0, },
+		{ I915_TILING_Y,		I915_TILING_Yf,
+		  I915_COMPRESSION_RENDER,	I915_COMPRESSION_RENDER,
+		  0, },
+		{ I915_TILING_Yf,		I915_TILING_Y,
+		  I915_COMPRESSION_RENDER,	I915_COMPRESSION_RENDER,
+		  0, },
 	};
 	int i;
 
@@ -832,18 +875,22 @@ igt_main_args("da", NULL, help_str, opt_handler, NULL)
 	for (i = 0; i < ARRAY_SIZE(tests); i++) {
 		const struct test_desc *t = &tests[i];
 		const char *src_mode = buf_mode_str(t->src_tiling,
-						    t->flags & SRC_COMPRESSED);
+						    t->src_compression);
 		const char *dst_mode = buf_mode_str(t->dst_tiling,
-						    t->flags & DST_COMPRESSED);
+						    t->dst_compression);
+		const bool src_mixed_tiled = t->flags & SOURCE_MIXED_TILED;
 
 		igt_describe_f("Test render_copy() from a %s to a %s buffer.",
 			       src_mode, dst_mode);
 
 		igt_subtest_f("%s%s%s",
-			      t->flags ? src_mode : "",
-			      t->flags ? "-to-" : "",
+			      src_mixed_tiled ? "" : src_mode,
+			      src_mixed_tiled ? "" : "-to-",
 			      dst_mode)
-			test(&data, t->src_tiling, t->dst_tiling, t->flags);
+			test(&data,
+			     t->src_tiling, t->dst_tiling,
+			     t->src_compression, t->dst_compression,
+			     t->flags);
 	}
 
 	igt_fixture {
-- 
2.17.1



More information about the Intel-gfx-trybot mailing list