[igt-dev] [PATCH i-g-t v2 6/7] tests/i915/gem_blits: Add XY_FAST_COPY_BLT support for gem_blits

Karolina Stolarek karolina.stolarek at intel.com
Wed Mar 8 11:21:01 UTC 2023


From: Arjun Melkaveri <arjun.melkaveri at intel.com>

Test case uses legacy command XY_SRC_COPY_BLT_CMD which is not supported
on newer generations. Modify test to use XY_FAST_COPY_BLT.

Signed-off-by: Arjun Melkaveri <arjun.melkaveri at intel.com>
Signed-off-by: Vikas Srivastava <vikas.srivastava at intel.com>
Signed-off-by: Karolina Stolarek <karolina.stolarek at intel.com>
Cc: Nirmoy Das <nirmoy.das at intel.com>
Cc: Andi Shyti <andi.shyti at linux.intel.com>
---
 tests/i915/gem_blits.c | 21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/tests/i915/gem_blits.c b/tests/i915/gem_blits.c
index f704dbdd..eb16b567 100644
--- a/tests/i915/gem_blits.c
+++ b/tests/i915/gem_blits.c
@@ -218,7 +218,12 @@ static void buffer_set_tiling(const struct device *device,
 
 	if (!blt_has_xy_src_copy(device->fd)) {
 		batch[i++] = fast_copy_dword0(buffer->tiling, tiling);
-		dword1 = fast_copy_dword1(buffer->tiling, tiling, 32);
+		/* Post ATS-M platforms require tile4 bit to be set for YMAJOR mode */
+		dword1 = fast_copy_dword1(buffer->tiling ?
+					  I915_TILING_Yf : I915_TILING_NONE,
+					  tiling ?
+					  I915_TILING_Yf : I915_TILING_NONE,
+					  32);
 		batch[i++] = dword1 | pitch;
 	} else {
 		batch[i] = (XY_SRC_COPY_BLT_CMD |
@@ -363,8 +368,11 @@ static bool blit_to_linear(const struct device *device,
 	}
 
 	if (!blt_has_xy_src_copy(device->fd)) {
-		batch[i++] = fast_copy_dword0(buffer->tiling, I915_TILING_NONE);
-		dword1 = fast_copy_dword1(buffer->tiling, I915_TILING_NONE, 32);
+		batch[i++] = fast_copy_dword0(buffer->tiling, 0);
+		/* Post ATS-M platforms require tile4 bit to be set for YMAJOR mode */
+		dword1 = fast_copy_dword1(buffer->tiling ?
+					  I915_TILING_Yf : I915_TILING_NONE,
+					  0, 32);
 		batch[i++] = dword1 | buffer->stride;
 	} else {
 		batch[i] = (XY_SRC_COPY_BLT_CMD |
@@ -707,7 +715,12 @@ blit(const struct device *device,
 
 	if (!blt_has_xy_src_copy(device->fd)) {
 		batch[i++] = fast_copy_dword0(src->tiling, dst->tiling);
-		dword1 = fast_copy_dword1(src->tiling, dst->tiling, 32);
+		/* Post ATS-M platforms require tile4 bit to be set for YMAJOR mode */
+		dword1 = fast_copy_dword1(src->tiling ?
+					  I915_TILING_Yf : I915_TILING_NONE,
+					  dst->tiling ?
+					  I915_TILING_Yf : I915_TILING_NONE,
+					  32);
 		batch[i++] = dword1 | pitch;
 	} else {
 		batch[i] = (XY_SRC_COPY_BLT_CMD |
-- 
2.25.1



More information about the igt-dev mailing list