* [igt-dev] [PATCH i-g-t 0/4 v2] tests/i915: Enable XY_FAST_COPY_BLT for gen12+
@ 2023-03-31 10:25 Vikas Srivastava
2023-03-31 10:25 ` [igt-dev] [PATCH i-g-t 1/4 v2] lib/intel_batchbuffer: Enable XY_FAST_COPY_BLT support for api_intel_bb Vikas Srivastava
` (4 more replies)
0 siblings, 5 replies; 7+ messages in thread
From: Vikas Srivastava @ 2023-03-31 10:25 UTC (permalink / raw)
To: igt-dev, karolina.stolarek
Test case uses legacy command XY_SRC_COPY_BLT_CMD which
is not supported on newer platforms. Modify test
to use XY_FAST_COPY_BLT.
Arjun Melkaveri (1):
tests/i915/gem_linear_blits: Enable XY_FAST_COPY_BLT copy instruction
Vikas Srivastava (3):
lib/intel_batchbuffer: Enable XY_FAST_COPY_BLT support for
api_intel_bb
tests/i915/gem_caching: Enable XY_FAST_COPY_BLT for MTL
tests/i915/gem_userptr_blits: Enable XY_FAST_COPY_BLT Command for
gen12+
lib/intel_batchbuffer.c | 57 ++++++++++++++---------
tests/i915/gem_caching.c | 26 +++++++----
tests/i915/gem_linear_blits.c | 67 +++++++++++++++++----------
tests/i915/gem_userptr_blits.c | 82 ++++++++++++++++++++++------------
4 files changed, 151 insertions(+), 81 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [igt-dev] [PATCH i-g-t 1/4 v2] lib/intel_batchbuffer: Enable XY_FAST_COPY_BLT support for api_intel_bb
2023-03-31 10:25 [igt-dev] [PATCH i-g-t 0/4 v2] tests/i915: Enable XY_FAST_COPY_BLT for gen12+ Vikas Srivastava
@ 2023-03-31 10:25 ` Vikas Srivastava
2023-03-31 11:37 ` Dandamudi, Priyanka
2023-03-31 10:25 ` [igt-dev] [PATCH i-g-t 2/4 v2] tests/i915/gem_caching: Enable XY_FAST_COPY_BLT for MTL Vikas Srivastava
` (3 subsequent siblings)
4 siblings, 1 reply; 7+ messages in thread
From: Vikas Srivastava @ 2023-03-31 10:25 UTC (permalink / raw)
To: igt-dev, karolina.stolarek
Test case uses legacy command XY_SRC_COPY_BLT_CMD which is
not supported on newer platforms. Modify test to use
XY_FAST_COPY_BLT.
Signed-off-by: Vikas Srivastava <vikas.srivastava@intel.com>
Cc: Karolina Stolarek <karolina.stolarek@intel.com>
---
lib/intel_batchbuffer.c | 57 ++++++++++++++++++++++++++---------------
1 file changed, 37 insertions(+), 20 deletions(-)
diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c
index 40e444ad9b..a4cc6c958e 100644
--- a/lib/intel_batchbuffer.c
+++ b/lib/intel_batchbuffer.c
@@ -2409,11 +2409,16 @@ uint32_t intel_bb_copy_data(struct intel_bb *ibb,
*/
void intel_bb_blit_start(struct intel_bb *ibb, uint32_t flags)
{
- intel_bb_out(ibb, XY_SRC_COPY_BLT_CMD |
- XY_SRC_COPY_BLT_WRITE_ALPHA |
- XY_SRC_COPY_BLT_WRITE_RGB |
- flags |
- (6 + 2 * (ibb->gen >= 8)));
+ if (blt_has_fast_copy(ibb->i915))
+ intel_bb_out(ibb, XY_FAST_COPY_BLT | flags);
+ else if (blt_has_xy_src_copy(ibb->i915))
+ intel_bb_out(ibb, XY_SRC_COPY_BLT_CMD |
+ XY_SRC_COPY_BLT_WRITE_ALPHA |
+ XY_SRC_COPY_BLT_WRITE_RGB |
+ flags |
+ (6 + 2 * (ibb->gen >= 8)));
+ else
+ igt_assert_f(0, "No supported blit command found\n");
}
/*
@@ -2451,12 +2456,20 @@ void intel_bb_emit_blt_copy(struct intel_bb *ibb,
if (gen >= 4 && src->tiling != I915_TILING_NONE) {
src_pitch /= 4;
- cmd_bits |= XY_SRC_COPY_BLT_SRC_TILED;
+ if (blt_has_fast_copy(ibb->i915))
+ cmd_bits |= fast_copy_dword0(src->tiling, dst->tiling);
+ else if (blt_has_xy_src_copy(ibb->i915))
+ cmd_bits |= XY_SRC_COPY_BLT_SRC_TILED;
+ else
+ igt_assert_f(0, "No supported blit command found\n");
}
if (gen >= 4 && dst->tiling != I915_TILING_NONE) {
dst_pitch /= 4;
- cmd_bits |= XY_SRC_COPY_BLT_DST_TILED;
+ if (blt_has_fast_copy(ibb->i915))
+ cmd_bits |= fast_copy_dword0(src->tiling, dst->tiling);
+ else
+ cmd_bits |= XY_SRC_COPY_BLT_DST_TILED;
}
CHECK_RANGE(src_x1); CHECK_RANGE(src_y1);
@@ -2467,19 +2480,23 @@ void intel_bb_emit_blt_copy(struct intel_bb *ibb,
CHECK_RANGE(src_pitch); CHECK_RANGE(dst_pitch);
br13_bits = 0;
- switch (bpp) {
- case 8:
- break;
- case 16: /* supporting only RGB565, not ARGB1555 */
- br13_bits |= 1 << 24;
- break;
- case 32:
- br13_bits |= 3 << 24;
- cmd_bits |= (XY_SRC_COPY_BLT_WRITE_ALPHA |
- XY_SRC_COPY_BLT_WRITE_RGB);
- break;
- default:
- igt_fail(IGT_EXIT_FAILURE);
+ if (blt_has_xy_src_copy(ibb->i915)) {
+ switch (bpp) {
+ case 8:
+ break;
+ case 16: /* supporting only RGB565, not ARGB1555 */
+ br13_bits |= 1 << 24;
+ break;
+ case 32:
+ br13_bits |= 3 << 24;
+ cmd_bits |= (XY_SRC_COPY_BLT_WRITE_ALPHA |
+ XY_SRC_COPY_BLT_WRITE_RGB);
+ break;
+ default:
+ igt_fail(IGT_EXIT_FAILURE);
+ }
+ } else {
+ br13_bits = fast_copy_dword1(ibb->i915, src->tiling, dst->tiling, bpp);
}
if ((src->tiling | dst->tiling) >= I915_TILING_Y) {
--
2.25.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [igt-dev] [PATCH i-g-t 2/4 v2] tests/i915/gem_caching: Enable XY_FAST_COPY_BLT for MTL
2023-03-31 10:25 [igt-dev] [PATCH i-g-t 0/4 v2] tests/i915: Enable XY_FAST_COPY_BLT for gen12+ Vikas Srivastava
2023-03-31 10:25 ` [igt-dev] [PATCH i-g-t 1/4 v2] lib/intel_batchbuffer: Enable XY_FAST_COPY_BLT support for api_intel_bb Vikas Srivastava
@ 2023-03-31 10:25 ` Vikas Srivastava
2023-03-31 10:25 ` [igt-dev] [PATCH i-g-t 3/4 v2] tests/i915/gem_userptr_blits: Enable XY_FAST_COPY_BLT Command for gen12+ Vikas Srivastava
` (2 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Vikas Srivastava @ 2023-03-31 10:25 UTC (permalink / raw)
To: igt-dev, karolina.stolarek
Test case uses legacy command XY_SRC_COPY_BLT_CMD which
is not supported on newer platforms. Modify test to
use XY_FAST_COPY_BLT.
Signed-off-by: Vikas Srivastava <vikas.srivastava@intel.com>
Cc: Karolina Stolarek <karolina.stolarek@intel.com>
---
tests/i915/gem_caching.c | 26 +++++++++++++++++---------
1 file changed, 17 insertions(+), 9 deletions(-)
diff --git a/tests/i915/gem_caching.c b/tests/i915/gem_caching.c
index eb0170abca..8d1e738002 100644
--- a/tests/i915/gem_caching.c
+++ b/tests/i915/gem_caching.c
@@ -39,6 +39,7 @@
#include "i915/gem.h"
#include "igt.h"
+#include "i915/i915_blt.h"
IGT_TEST_DESCRIPTION("Test snoop consistency when touching partial"
" cachelines.");
@@ -81,16 +82,23 @@ copy_bo(struct intel_bb *ibb, struct intel_buf *src, struct intel_buf *dst)
intel_bb_add_intel_buf(ibb, src, false);
intel_bb_add_intel_buf(ibb, dst, true);
+ if (blt_has_fast_copy(ibb->i915)) {
+ intel_bb_out(ibb, XY_FAST_COPY_BLT);
+ intel_bb_out(ibb, XY_FAST_COPY_COLOR_DEPTH_32 | 4096);
+ } else if (blt_has_xy_src_copy(ibb->i915)) {
+ intel_bb_out(ibb,
+ XY_SRC_COPY_BLT_CMD |
+ XY_SRC_COPY_BLT_WRITE_ALPHA |
+ XY_SRC_COPY_BLT_WRITE_RGB |
+ (6 + 2 * has_64b_reloc));
+
+ intel_bb_out(ibb, (3 << 24) | /* 32 bits */
+ (0xcc << 16) | /* copy ROP */
+ 4096);
+ } else {
+ igt_assert_f(0, "No supported blit command found\n");
+ }
- intel_bb_out(ibb,
- XY_SRC_COPY_BLT_CMD |
- XY_SRC_COPY_BLT_WRITE_ALPHA |
- XY_SRC_COPY_BLT_WRITE_RGB |
- (6 + 2 * has_64b_reloc));
-
- intel_bb_out(ibb, (3 << 24) | /* 32 bits */
- (0xcc << 16) | /* copy ROP */
- 4096);
intel_bb_out(ibb, 0 << 16 | 0);
intel_bb_out(ibb, (BO_SIZE/4096) << 16 | 1024);
intel_bb_emit_reloc_fenced(ibb, dst->handle,
--
2.25.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [igt-dev] [PATCH i-g-t 3/4 v2] tests/i915/gem_userptr_blits: Enable XY_FAST_COPY_BLT Command for gen12+
2023-03-31 10:25 [igt-dev] [PATCH i-g-t 0/4 v2] tests/i915: Enable XY_FAST_COPY_BLT for gen12+ Vikas Srivastava
2023-03-31 10:25 ` [igt-dev] [PATCH i-g-t 1/4 v2] lib/intel_batchbuffer: Enable XY_FAST_COPY_BLT support for api_intel_bb Vikas Srivastava
2023-03-31 10:25 ` [igt-dev] [PATCH i-g-t 2/4 v2] tests/i915/gem_caching: Enable XY_FAST_COPY_BLT for MTL Vikas Srivastava
@ 2023-03-31 10:25 ` Vikas Srivastava
2023-03-31 10:25 ` [igt-dev] [PATCH i-g-t 4/4 v2] tests/i915/gem_linear_blits: Enable XY_FAST_COPY_BLT copy instruction Vikas Srivastava
2023-03-31 11:22 ` [igt-dev] ✗ Fi.CI.BAT: failure for tests/i915: Enable XY_FAST_COPY_BLT for gen12+ (rev2) Patchwork
4 siblings, 0 replies; 7+ messages in thread
From: Vikas Srivastava @ 2023-03-31 10:25 UTC (permalink / raw)
To: igt-dev, karolina.stolarek
Test case uses legacy command XY_SRC_COPY_BLT_CMD which is
not supported on newer platforms. Modify test
to use XY_FAST_COPY_BLT.
Signed-off-by: Vikas Srivastava <vikas.srivastava@intel.com>
Cc: Karolina Stolarek <karolina.stolarek@intel.com>
---
tests/i915/gem_userptr_blits.c | 82 ++++++++++++++++++++++------------
1 file changed, 53 insertions(+), 29 deletions(-)
diff --git a/tests/i915/gem_userptr_blits.c b/tests/i915/gem_userptr_blits.c
index 07a453229a..7ab7c41ab2 100644
--- a/tests/i915/gem_userptr_blits.c
+++ b/tests/i915/gem_userptr_blits.c
@@ -66,6 +66,7 @@
#include "sw_sync.h"
#include "eviction_common.c"
+#include "i915/i915_blt.h"
#ifndef PAGE_SIZE
#define PAGE_SIZE 4096
@@ -99,6 +100,7 @@ static int copy(int fd, uint32_t dst, uint32_t src)
struct drm_i915_gem_relocation_entry reloc[2];
struct drm_i915_gem_exec_object2 obj[3];
struct drm_i915_gem_execbuffer2 exec;
+ static uint32_t devid;
uint32_t handle;
int ret, i=0;
uint64_t dst_offset, src_offset, bb_offset;
@@ -108,29 +110,49 @@ static int copy(int fd, uint32_t dst, uint32_t src)
dst_offset = bb_offset + 4096;
src_offset = dst_offset + WIDTH * HEIGHT * sizeof(uint32_t) * (src != dst);
- batch[i++] = XY_SRC_COPY_BLT_CMD |
- XY_SRC_COPY_BLT_WRITE_ALPHA |
- XY_SRC_COPY_BLT_WRITE_RGB;
- if (intel_gen(intel_get_drm_devid(fd)) >= 8)
- batch[i - 1] |= 8;
- else
- batch[i - 1] |= 6;
-
- batch[i++] = (3 << 24) | /* 32 bits */
- (0xcc << 16) | /* copy ROP */
- WIDTH*4;
- batch[i++] = 0; /* dst x1,y1 */
- batch[i++] = (HEIGHT << 16) | WIDTH; /* dst x2,y2 */
- batch[i++] = dst_offset; /* dst reloc */
- if (intel_gen(intel_get_drm_devid(fd)) >= 8)
- batch[i++] = dst_offset >> 32;
- batch[i++] = 0; /* src x1,y1 */
- batch[i++] = WIDTH*4;
- batch[i++] = src_offset; /* src reloc */
- if (intel_gen(intel_get_drm_devid(fd)) >= 8)
- batch[i++] = src_offset >> 32;
- batch[i++] = MI_BATCH_BUFFER_END;
- batch[i++] = MI_NOOP;
+ devid = intel_get_drm_devid(fd);
+
+ if (blt_has_fast_copy(fd)) {
+ batch[i++] = XY_FAST_COPY_BLT;
+ batch[i++] = XY_FAST_COPY_COLOR_DEPTH_32 | WIDTH * 4;
+ batch[i++] = 0;/* dst x1,y1 */
+ batch[i++] = (HEIGHT << 16) | WIDTH;/* dst x2,y2 */
+ batch[i++] = lower_32_bits(dst_offset); /* dst address */
+ batch[i++] = upper_32_bits(CANONICAL(dst_offset));
+ batch[i++] = 0;/* src x1,y1 */
+ batch[i++] = WIDTH * 4;/* src pitch */
+ batch[i++] = lower_32_bits(src_offset); /* src address */
+ batch[i++] = upper_32_bits(CANONICAL(src_offset));
+ batch[i++] = MI_BATCH_BUFFER_END;
+ batch[i++] = MI_NOOP;
+ } else if (blt_has_xy_src_copy(fd)) {
+ batch[i++] = XY_SRC_COPY_BLT_CMD |
+ XY_SRC_COPY_BLT_WRITE_ALPHA |
+ XY_SRC_COPY_BLT_WRITE_RGB;
+
+ if (intel_gen(devid) >= 8)
+ batch[i - 1] |= 8;
+ else
+ batch[i - 1] |= 6;
+
+ batch[i++] = (3 << 24) | /* 32 bits */
+ (0xcc << 16) | /* copy ROP */
+ WIDTH * 4;
+ batch[i++] = 0; /* dst x1,y1 */
+ batch[i++] = (HEIGHT << 16) | WIDTH; /* dst x2,y2 */
+ batch[i++] = lower_32_bits(dst_offset); /* dst reloc*/
+ if (intel_gen(devid) >= 8)
+ batch[i++] = upper_32_bits(CANONICAL(dst_offset));
+ batch[i++] = 0; /* src x1,y1 */
+ batch[i++] = WIDTH * 4;
+ batch[i++] = lower_32_bits(src_offset); /* src reloc */
+ if (intel_gen(devid) >= 8)
+ batch[i++] = upper_32_bits(CANONICAL(src_offset));
+ batch[i++] = MI_BATCH_BUFFER_END;
+ batch[i++] = MI_NOOP;
+ } else {
+ igt_assert_f(0, "No supported blit command found\n");
+ }
handle = gem_create(fd, 4096);
gem_write(fd, handle, 0, batch, sizeof(batch));
@@ -254,20 +276,20 @@ blit(int fd, uint32_t dst, uint32_t src, uint32_t *all_bo, int n_bo)
reloc[1].read_domains = I915_GEM_DOMAIN_RENDER;
reloc[1].write_domain = 0;
- if (intel_graphics_ver(devid) >= IP_VER(12, 60)) {
+ if (blt_has_fast_copy(fd)) {
batch[i++] = XY_FAST_COPY_BLT;
- batch[i++] = XY_FAST_COPY_COLOR_DEPTH_32 | WIDTH*4;
+ batch[i++] = XY_FAST_COPY_COLOR_DEPTH_32 | WIDTH * 4;
batch[i++] = 0; /* dst x1,y1 */
batch[i++] = (HEIGHT << 16) | WIDTH; /* dst x2,y2 */
batch[i++] = lower_32_bits(dst_offset); /* dst address */
batch[i++] = upper_32_bits(CANONICAL(dst_offset));
batch[i++] = 0; /* src x1,y1 */
- batch[i++] = WIDTH*4; /* src pitch */
+ batch[i++] = WIDTH * 4; /* src pitch */
batch[i++] = lower_32_bits(src_offset); /* src address */
batch[i++] = upper_32_bits(CANONICAL(src_offset));
batch[i++] = MI_BATCH_BUFFER_END;
batch[i++] = MI_NOOP;
- } else {
+ } else if (blt_has_xy_src_copy(fd)) {
batch[i++] = XY_SRC_COPY_BLT_CMD |
XY_SRC_COPY_BLT_WRITE_ALPHA |
XY_SRC_COPY_BLT_WRITE_RGB;
@@ -277,19 +299,21 @@ blit(int fd, uint32_t dst, uint32_t src, uint32_t *all_bo, int n_bo)
batch[i - 1] |= 6;
batch[i++] = (3 << 24) | /* 32 bits */
(0xcc << 16) | /* copy ROP */
- WIDTH*4;
+ WIDTH * 4;
batch[i++] = 0; /* dst x1,y1 */
batch[i++] = (HEIGHT << 16) | WIDTH; /* dst x2,y2 */
batch[i++] = lower_32_bits(dst_offset);
if (intel_gen(devid) >= 8)
batch[i++] = upper_32_bits(CANONICAL(dst_offset));
batch[i++] = 0; /* src x1,y1 */
- batch[i++] = WIDTH*4;
+ batch[i++] = WIDTH * 4;
batch[i++] = lower_32_bits(src_offset);
if (intel_gen(devid) >= 8)
batch[i++] = upper_32_bits(CANONICAL(src_offset));
batch[i++] = MI_BATCH_BUFFER_END;
batch[i++] = MI_NOOP;
+ } else {
+ igt_assert_f(0, "No supported blit command found\n");
}
gem_write(fd, handle, 0, batch, sizeof(batch));
--
2.25.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [igt-dev] [PATCH i-g-t 4/4 v2] tests/i915/gem_linear_blits: Enable XY_FAST_COPY_BLT copy instruction
2023-03-31 10:25 [igt-dev] [PATCH i-g-t 0/4 v2] tests/i915: Enable XY_FAST_COPY_BLT for gen12+ Vikas Srivastava
` (2 preceding siblings ...)
2023-03-31 10:25 ` [igt-dev] [PATCH i-g-t 3/4 v2] tests/i915/gem_userptr_blits: Enable XY_FAST_COPY_BLT Command for gen12+ Vikas Srivastava
@ 2023-03-31 10:25 ` Vikas Srivastava
2023-03-31 11:22 ` [igt-dev] ✗ Fi.CI.BAT: failure for tests/i915: Enable XY_FAST_COPY_BLT for gen12+ (rev2) Patchwork
4 siblings, 0 replies; 7+ messages in thread
From: Vikas Srivastava @ 2023-03-31 10:25 UTC (permalink / raw)
To: igt-dev, karolina.stolarek
From: Arjun Melkaveri <arjun.melkaveri@intel.com>
Test case uses legacy command XY_SRC_COPY_BLT_CMD which is
not supported on newer platforms. Modify test to
use XY_FAST_COPY_BLT.
Signed-off-by: Arjun Melkaveri <arjun.melkaveri@intel.com>
Co-developed-by: Vikas Srivastava <vikas.srivastava@intel.com>
Signed-off-by: Vikas Srivastava <vikas.srivastava@intel.com>
Cc: Karolina Stolarek <karolina.stolarek@intel.com>
---
tests/i915/gem_linear_blits.c | 67 +++++++++++++++++++++++------------
1 file changed, 44 insertions(+), 23 deletions(-)
diff --git a/tests/i915/gem_linear_blits.c b/tests/i915/gem_linear_blits.c
index fac25095f5..24f1499d79 100644
--- a/tests/i915/gem_linear_blits.c
+++ b/tests/i915/gem_linear_blits.c
@@ -48,6 +48,7 @@
#include "i915/gem_create.h"
#include "igt.h"
#include "igt_types.h"
+#include "i915/i915_blt.h"
IGT_TEST_DESCRIPTION("Test doing many blits with a working set larger than the"
" aperture size.");
@@ -67,6 +68,7 @@ static void copy(int fd, uint64_t ahnd, uint32_t dst, uint32_t src,
struct drm_i915_gem_relocation_entry reloc[2];
struct drm_i915_gem_exec_object2 obj[3];
struct drm_i915_gem_execbuffer2 exec;
+ static uint32_t devid;
int i = 0;
memset(obj, 0, sizeof(obj));
@@ -83,29 +85,48 @@ static void copy(int fd, uint64_t ahnd, uint32_t dst, uint32_t src,
obj[2].offset = CANONICAL(obj[2].offset);
obj[2].flags = EXEC_OBJECT_SUPPORTS_48B_ADDRESS;
- batch[i++] = XY_SRC_COPY_BLT_CMD |
- XY_SRC_COPY_BLT_WRITE_ALPHA |
- XY_SRC_COPY_BLT_WRITE_RGB;
- if (intel_gen(intel_get_drm_devid(fd)) >= 8)
- batch[i - 1] |= 8;
- else
- batch[i - 1] |= 6;
-
- batch[i++] = (3 << 24) | /* 32 bits */
- (0xcc << 16) | /* copy ROP */
- WIDTH*4;
- batch[i++] = 0; /* dst x1,y1 */
- batch[i++] = (HEIGHT << 16) | WIDTH; /* dst x2,y2 */
- batch[i++] = obj[0].offset;
- if (intel_gen(intel_get_drm_devid(fd)) >= 8)
- batch[i++] = obj[0].offset >> 32;
- batch[i++] = 0; /* src x1,y1 */
- batch[i++] = WIDTH*4;
- batch[i++] = obj[1].offset;
- if (intel_gen(intel_get_drm_devid(fd)) >= 8)
- batch[i++] = obj[1].offset >> 32;
- batch[i++] = MI_BATCH_BUFFER_END;
- batch[i++] = MI_NOOP;
+ devid = intel_get_drm_devid(fd);
+
+ if (blt_has_fast_copy(fd)) {
+ batch[i++] = XY_FAST_COPY_BLT;
+ batch[i++] = XY_FAST_COPY_COLOR_DEPTH_32 | WIDTH * 4;
+ batch[i++] = 0; /* dst x1,y1 */
+ batch[i++] = (HEIGHT << 16) | WIDTH; /* dst x2,y2 */
+ batch[i++] = obj[0].offset; /* dst address lower bits */
+ batch[i++] = obj[0].offset >> 32; /* dst address upper bits */
+ batch[i++] = 0; /* src x1,y1 */
+ batch[i++] = WIDTH * 4; /* src pitch */
+ batch[i++] = obj[1].offset; /* src address lower bits */
+ batch[i++] = obj[1].offset >> 32; /* src address upper bits */
+ batch[i++] = MI_BATCH_BUFFER_END;
+ batch[i++] = MI_NOOP;
+ } else if (blt_has_xy_src_copy(fd)) {
+ batch[i++] = XY_SRC_COPY_BLT_CMD |
+ XY_SRC_COPY_BLT_WRITE_ALPHA |
+ XY_SRC_COPY_BLT_WRITE_RGB;
+ if (intel_gen(intel_get_drm_devid(fd)) >= 8)
+ batch[i - 1] |= 8;
+ else
+ batch[i - 1] |= 6;
+
+ batch[i++] = (3 << 24) | /* 32 bits */
+ (0xcc << 16) | /* copy ROP */
+ WIDTH * 4;
+ batch[i++] = 0; /* dst x1,y1 */
+ batch[i++] = (HEIGHT << 16) | WIDTH; /* dst x2,y2 */
+ batch[i++] = obj[0].offset;
+ if (intel_gen(devid) >= 8)
+ batch[i++] = obj[0].offset >> 32;
+ batch[i++] = 0; /* src x1,y1 */
+ batch[i++] = WIDTH * 4;
+ batch[i++] = obj[1].offset;
+ if (intel_gen(devid) >= 8)
+ batch[i++] = obj[1].offset >> 32;
+ batch[i++] = MI_BATCH_BUFFER_END;
+ batch[i++] = MI_NOOP;
+ } else {
+ igt_assert_f(0, "No supported blit command found\n");
+ }
gem_write(fd, obj[2].handle, 0, batch, i * sizeof(batch[0]));
--
2.25.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [igt-dev] ✗ Fi.CI.BAT: failure for tests/i915: Enable XY_FAST_COPY_BLT for gen12+ (rev2)
2023-03-31 10:25 [igt-dev] [PATCH i-g-t 0/4 v2] tests/i915: Enable XY_FAST_COPY_BLT for gen12+ Vikas Srivastava
` (3 preceding siblings ...)
2023-03-31 10:25 ` [igt-dev] [PATCH i-g-t 4/4 v2] tests/i915/gem_linear_blits: Enable XY_FAST_COPY_BLT copy instruction Vikas Srivastava
@ 2023-03-31 11:22 ` Patchwork
4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2023-03-31 11:22 UTC (permalink / raw)
To: Vikas Srivastava; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 10104 bytes --]
== Series Details ==
Series: tests/i915: Enable XY_FAST_COPY_BLT for gen12+ (rev2)
URL : https://patchwork.freedesktop.org/series/115602/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_12950 -> IGTPW_8727
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with IGTPW_8727 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_8727, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/index.html
Participating hosts (37 -> 36)
------------------------------
Missing (1): fi-snb-2520m
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_8727:
### IGT changes ###
#### Possible regressions ####
* igt@gem_tiled_blits@basic:
- fi-kbl-guc: [PASS][1] -> [FAIL][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12950/fi-kbl-guc/igt@gem_tiled_blits@basic.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/fi-kbl-guc/igt@gem_tiled_blits@basic.html
- bat-jsl-1: [PASS][3] -> [FAIL][4]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12950/bat-jsl-1/igt@gem_tiled_blits@basic.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/bat-jsl-1/igt@gem_tiled_blits@basic.html
- fi-tgl-1115g4: [PASS][5] -> [FAIL][6]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12950/fi-tgl-1115g4/igt@gem_tiled_blits@basic.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/fi-tgl-1115g4/igt@gem_tiled_blits@basic.html
- bat-rpls-1: [PASS][7] -> [FAIL][8]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12950/bat-rpls-1/igt@gem_tiled_blits@basic.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/bat-rpls-1/igt@gem_tiled_blits@basic.html
- fi-cfl-guc: [PASS][9] -> [FAIL][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12950/fi-cfl-guc/igt@gem_tiled_blits@basic.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/fi-cfl-guc/igt@gem_tiled_blits@basic.html
- fi-skl-6600u: [PASS][11] -> [FAIL][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12950/fi-skl-6600u/igt@gem_tiled_blits@basic.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/fi-skl-6600u/igt@gem_tiled_blits@basic.html
- bat-rpls-2: [PASS][13] -> [FAIL][14]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12950/bat-rpls-2/igt@gem_tiled_blits@basic.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/bat-rpls-2/igt@gem_tiled_blits@basic.html
- fi-glk-j4005: [PASS][15] -> [FAIL][16]
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12950/fi-glk-j4005/igt@gem_tiled_blits@basic.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/fi-glk-j4005/igt@gem_tiled_blits@basic.html
- bat-adlp-9: [PASS][17] -> [FAIL][18]
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12950/bat-adlp-9/igt@gem_tiled_blits@basic.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/bat-adlp-9/igt@gem_tiled_blits@basic.html
- fi-skl-guc: [PASS][19] -> [FAIL][20]
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12950/fi-skl-guc/igt@gem_tiled_blits@basic.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/fi-skl-guc/igt@gem_tiled_blits@basic.html
- fi-cfl-8700k: [PASS][21] -> [FAIL][22]
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12950/fi-cfl-8700k/igt@gem_tiled_blits@basic.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/fi-cfl-8700k/igt@gem_tiled_blits@basic.html
- bat-rplp-1: [PASS][23] -> [FAIL][24]
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12950/bat-rplp-1/igt@gem_tiled_blits@basic.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/bat-rplp-1/igt@gem_tiled_blits@basic.html
- fi-rkl-11600: [PASS][25] -> [FAIL][26]
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12950/fi-rkl-11600/igt@gem_tiled_blits@basic.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/fi-rkl-11600/igt@gem_tiled_blits@basic.html
- bat-adls-5: [PASS][27] -> [FAIL][28]
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12950/bat-adls-5/igt@gem_tiled_blits@basic.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/bat-adls-5/igt@gem_tiled_blits@basic.html
- fi-apl-guc: [PASS][29] -> [FAIL][30]
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12950/fi-apl-guc/igt@gem_tiled_blits@basic.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/fi-apl-guc/igt@gem_tiled_blits@basic.html
- bat-jsl-3: [PASS][31] -> [FAIL][32]
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12950/bat-jsl-3/igt@gem_tiled_blits@basic.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/bat-jsl-3/igt@gem_tiled_blits@basic.html
- fi-kbl-x1275: [PASS][33] -> [FAIL][34]
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12950/fi-kbl-x1275/igt@gem_tiled_blits@basic.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/fi-kbl-x1275/igt@gem_tiled_blits@basic.html
- fi-cfl-8109u: [PASS][35] -> [FAIL][36]
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12950/fi-cfl-8109u/igt@gem_tiled_blits@basic.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/fi-cfl-8109u/igt@gem_tiled_blits@basic.html
- fi-kbl-7567u: [PASS][37] -> [FAIL][38]
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12950/fi-kbl-7567u/igt@gem_tiled_blits@basic.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/fi-kbl-7567u/igt@gem_tiled_blits@basic.html
- bat-adln-1: [PASS][39] -> [FAIL][40]
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12950/bat-adln-1/igt@gem_tiled_blits@basic.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/bat-adln-1/igt@gem_tiled_blits@basic.html
- fi-kbl-8809g: [PASS][41] -> [FAIL][42]
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12950/fi-kbl-8809g/igt@gem_tiled_blits@basic.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/fi-kbl-8809g/igt@gem_tiled_blits@basic.html
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@gem_tiled_blits@basic:
- {bat-kbl-2}: [PASS][43] -> [FAIL][44]
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12950/bat-kbl-2/igt@gem_tiled_blits@basic.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/bat-kbl-2/igt@gem_tiled_blits@basic.html
Known issues
------------
Here are the changes found in IGTPW_8727 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_selftest@live@requests:
- bat-rpls-2: [PASS][45] -> [ABORT][46] ([i915#4983] / [i915#7913])
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12950/bat-rpls-2/igt@i915_selftest@live@requests.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/bat-rpls-2/igt@i915_selftest@live@requests.html
* igt@kms_chamelium_hpd@common-hpd-after-suspend:
- bat-rpls-1: NOTRUN -> [SKIP][47] ([i915#7828])
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/bat-rpls-1/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
* igt@kms_pipe_crc_basic@read-crc:
- bat-dg2-11: NOTRUN -> [SKIP][48] ([i915#5354]) +1 similar issue
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/bat-dg2-11/igt@kms_pipe_crc_basic@read-crc.html
* igt@kms_pipe_crc_basic@suspend-read-crc:
- bat-rpls-1: NOTRUN -> [SKIP][49] ([i915#1845])
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/bat-rpls-1/igt@kms_pipe_crc_basic@suspend-read-crc.html
#### Possible fixes ####
* igt@gem_exec_suspend@basic-s3@smem:
- bat-rpls-1: [ABORT][50] ([i915#6687] / [i915#7978]) -> [PASS][51]
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12950/bat-rpls-1/igt@gem_exec_suspend@basic-s3@smem.html
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/bat-rpls-1/igt@gem_exec_suspend@basic-s3@smem.html
* igt@kms_pipe_crc_basic@nonblocking-crc@pipe-d-dp-1:
- bat-dg2-8: [FAIL][52] ([i915#7932]) -> [PASS][53] +1 similar issue
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12950/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc@pipe-d-dp-1.html
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc@pipe-d-dp-1.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
[i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
[i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
[i915#6687]: https://gitlab.freedesktop.org/drm/intel/issues/6687
[i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
[i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
[i915#7932]: https://gitlab.freedesktop.org/drm/intel/issues/7932
[i915#7978]: https://gitlab.freedesktop.org/drm/intel/issues/7978
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7230 -> IGTPW_8727
CI-20190529: 20190529
CI_DRM_12950: 47c4ceabb0ff38d88aed06b1c3ca5196b6659189 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_8727: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/index.html
IGT_7230: f0485204004305dd3ee8f8bbbb9c552e53a4e050 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Testlist changes
----------------
-igt@xe_create@create-invalid-size
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8727/index.html
[-- Attachment #2: Type: text/html, Size: 11197 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 1/4 v2] lib/intel_batchbuffer: Enable XY_FAST_COPY_BLT support for api_intel_bb
2023-03-31 10:25 ` [igt-dev] [PATCH i-g-t 1/4 v2] lib/intel_batchbuffer: Enable XY_FAST_COPY_BLT support for api_intel_bb Vikas Srivastava
@ 2023-03-31 11:37 ` Dandamudi, Priyanka
0 siblings, 0 replies; 7+ messages in thread
From: Dandamudi, Priyanka @ 2023-03-31 11:37 UTC (permalink / raw)
To: Srivastava, Vikas, igt-dev@lists.freedesktop.org,
Stolarek, Karolina
> -----Original Message-----
> From: igt-dev <igt-dev-bounces@lists.freedesktop.org> On Behalf Of Vikas
> Srivastava
> Sent: 31 March 2023 03:55 PM
> To: igt-dev@lists.freedesktop.org; Stolarek, Karolina
> <karolina.stolarek@intel.com>
> Subject: [igt-dev] [PATCH i-g-t 1/4 v2] lib/intel_batchbuffer: Enable
> XY_FAST_COPY_BLT support for api_intel_bb
>
> Test case uses legacy command XY_SRC_COPY_BLT_CMD which is not
> supported on newer platforms. Modify test to use XY_FAST_COPY_BLT.
>
> Signed-off-by: Vikas Srivastava <vikas.srivastava@intel.com>
> Cc: Karolina Stolarek <karolina.stolarek@intel.com>
> ---
> lib/intel_batchbuffer.c | 57 ++++++++++++++++++++++++++---------------
> 1 file changed, 37 insertions(+), 20 deletions(-)
>
> diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c index
> 40e444ad9b..a4cc6c958e 100644
> --- a/lib/intel_batchbuffer.c
> +++ b/lib/intel_batchbuffer.c
> @@ -2409,11 +2409,16 @@ uint32_t intel_bb_copy_data(struct intel_bb
> *ibb,
> */
> void intel_bb_blit_start(struct intel_bb *ibb, uint32_t flags) {
> - intel_bb_out(ibb, XY_SRC_COPY_BLT_CMD |
> - XY_SRC_COPY_BLT_WRITE_ALPHA |
> - XY_SRC_COPY_BLT_WRITE_RGB |
> - flags |
> - (6 + 2 * (ibb->gen >= 8)));
> + if (blt_has_fast_copy(ibb->i915))
> + intel_bb_out(ibb, XY_FAST_COPY_BLT | flags);
> + else if (blt_has_xy_src_copy(ibb->i915))
> + intel_bb_out(ibb, XY_SRC_COPY_BLT_CMD |
> + XY_SRC_COPY_BLT_WRITE_ALPHA |
> + XY_SRC_COPY_BLT_WRITE_RGB |
> + flags |
> + (6 + 2 * (ibb->gen >= 8)));
> + else
> + igt_assert_f(0, "No supported blit command found\n");
> }
>
> /*
> @@ -2451,12 +2456,20 @@ void intel_bb_emit_blt_copy(struct intel_bb
> *ibb,
>
> if (gen >= 4 && src->tiling != I915_TILING_NONE) {
> src_pitch /= 4;
> - cmd_bits |= XY_SRC_COPY_BLT_SRC_TILED;
> + if (blt_has_fast_copy(ibb->i915))
> + cmd_bits |= fast_copy_dword0(src->tiling, dst-
> >tiling);
> + else if (blt_has_xy_src_copy(ibb->i915))
> + cmd_bits |= XY_SRC_COPY_BLT_SRC_TILED;
> + else
> + igt_assert_f(0, "No supported blit command
> found\n");
> }
>
> if (gen >= 4 && dst->tiling != I915_TILING_NONE) {
> dst_pitch /= 4;
> - cmd_bits |= XY_SRC_COPY_BLT_DST_TILED;
> + if (blt_has_fast_copy(ibb->i915))
> + cmd_bits |= fast_copy_dword0(src->tiling, dst-
> >tiling);
> + else
> + cmd_bits |= XY_SRC_COPY_BLT_DST_TILED;
> }
>
> CHECK_RANGE(src_x1); CHECK_RANGE(src_y1); @@ -2467,19
> +2480,23 @@ void intel_bb_emit_blt_copy(struct intel_bb *ibb,
> CHECK_RANGE(src_pitch); CHECK_RANGE(dst_pitch);
>
> br13_bits = 0;
> - switch (bpp) {
> - case 8:
> - break;
> - case 16: /* supporting only RGB565, not ARGB1555 */
> - br13_bits |= 1 << 24;
> - break;
> - case 32:
> - br13_bits |= 3 << 24;
> - cmd_bits |= (XY_SRC_COPY_BLT_WRITE_ALPHA |
> - XY_SRC_COPY_BLT_WRITE_RGB);
> - break;
> - default:
> - igt_fail(IGT_EXIT_FAILURE);
> + if (blt_has_xy_src_copy(ibb->i915)) {
> + switch (bpp) {
> + case 8:
> + break;
> + case 16: /* supporting only RGB565, not
> ARGB1555 */
> + br13_bits |= 1 << 24;
> + break;
> + case 32:
> + br13_bits |= 3 << 24;
> + cmd_bits |= (XY_SRC_COPY_BLT_WRITE_ALPHA |
> + XY_SRC_COPY_BLT_WRITE_RGB);
> + break;
> + default:
> + igt_fail(IGT_EXIT_FAILURE);
> + }
> + } else {
> + br13_bits = fast_copy_dword1(ibb->i915, src->tiling, dst-
> >tiling,
> +bpp);
> }
>
> if ((src->tiling | dst->tiling) >= I915_TILING_Y) {
> --
LGTM
Reviewed-by: Priyanka Dandamudi <priyanka.dandamudi@intel.com>
> 2.25.1
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2023-03-31 11:37 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-31 10:25 [igt-dev] [PATCH i-g-t 0/4 v2] tests/i915: Enable XY_FAST_COPY_BLT for gen12+ Vikas Srivastava
2023-03-31 10:25 ` [igt-dev] [PATCH i-g-t 1/4 v2] lib/intel_batchbuffer: Enable XY_FAST_COPY_BLT support for api_intel_bb Vikas Srivastava
2023-03-31 11:37 ` Dandamudi, Priyanka
2023-03-31 10:25 ` [igt-dev] [PATCH i-g-t 2/4 v2] tests/i915/gem_caching: Enable XY_FAST_COPY_BLT for MTL Vikas Srivastava
2023-03-31 10:25 ` [igt-dev] [PATCH i-g-t 3/4 v2] tests/i915/gem_userptr_blits: Enable XY_FAST_COPY_BLT Command for gen12+ Vikas Srivastava
2023-03-31 10:25 ` [igt-dev] [PATCH i-g-t 4/4 v2] tests/i915/gem_linear_blits: Enable XY_FAST_COPY_BLT copy instruction Vikas Srivastava
2023-03-31 11:22 ` [igt-dev] ✗ Fi.CI.BAT: failure for tests/i915: Enable XY_FAST_COPY_BLT for gen12+ (rev2) Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox