* [igt-dev] [PATCH i-g-t 0/4] tests/i915: Enable XY_FAST_COPY_BLT for gen12+
@ 2023-04-04 6:54 Vikas Srivastava
2023-04-04 6:54 ` [igt-dev] [PATCH i-g-t 1/4 v3] tests/i915/gem_linear_blits: Enable XY_FAST_COPY_BLT copy instruction Vikas Srivastava
` (6 more replies)
0 siblings, 7 replies; 10+ messages in thread
From: Vikas Srivastava @ 2023-04-04 6:54 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):
tests/i915/gem_caching: Enable XY_FAST_COPY_BLT for MTL
lib/intel_batchbuffer: Enable XY_FAST_COPY_BLT support for
api_intel_bb
tests/i915/gem_userptr_blits: Enable XY_FAST_COPY_BLT command for
gen12+
lib/intel_batchbuffer.c | 57 +++++++++++-------
tests/i915/gem_caching.c | 25 +++++---
tests/i915/gem_linear_blits.c | 68 ++++++++++++++--------
tests/i915/gem_userptr_blits.c | 102 ++++++++++++++++++++-------------
4 files changed, 162 insertions(+), 90 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 10+ messages in thread* [igt-dev] [PATCH i-g-t 1/4 v3] tests/i915/gem_linear_blits: Enable XY_FAST_COPY_BLT copy instruction 2023-04-04 6:54 [igt-dev] [PATCH i-g-t 0/4] tests/i915: Enable XY_FAST_COPY_BLT for gen12+ Vikas Srivastava @ 2023-04-04 6:54 ` Vikas Srivastava 2023-04-04 6:54 ` [igt-dev] [PATCH i-g-t 2/4 v3] tests/i915/gem_caching: Enable XY_FAST_COPY_BLT for MTL Vikas Srivastava ` (5 subsequent siblings) 6 siblings, 0 replies; 10+ messages in thread From: Vikas Srivastava @ 2023-04-04 6:54 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 | 68 +++++++++++++++++++++++------------ 1 file changed, 45 insertions(+), 23 deletions(-) diff --git a/tests/i915/gem_linear_blits.c b/tests/i915/gem_linear_blits.c index fac25095f5..17fbbd3710 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,49 @@ 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_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 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 { + 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] 10+ messages in thread
* [igt-dev] [PATCH i-g-t 2/4 v3] tests/i915/gem_caching: Enable XY_FAST_COPY_BLT for MTL 2023-04-04 6:54 [igt-dev] [PATCH i-g-t 0/4] tests/i915: Enable XY_FAST_COPY_BLT for gen12+ Vikas Srivastava 2023-04-04 6:54 ` [igt-dev] [PATCH i-g-t 1/4 v3] tests/i915/gem_linear_blits: Enable XY_FAST_COPY_BLT copy instruction Vikas Srivastava @ 2023-04-04 6:54 ` Vikas Srivastava 2023-04-04 6:54 ` [igt-dev] [PATCH i-g-t 3/4 v3] lib/intel_batchbuffer: Enable XY_FAST_COPY_BLT support for api_intel_bb Vikas Srivastava ` (4 subsequent siblings) 6 siblings, 0 replies; 10+ messages in thread From: Vikas Srivastava @ 2023-04-04 6:54 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 | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/tests/i915/gem_caching.c b/tests/i915/gem_caching.c index eb0170abca..3783dc2b33 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."); @@ -82,15 +83,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); - 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)); + 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 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 { + igt_assert_f(0, "No supported blit command found\n"); + } - 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] 10+ messages in thread
* [igt-dev] [PATCH i-g-t 3/4 v3] lib/intel_batchbuffer: Enable XY_FAST_COPY_BLT support for api_intel_bb 2023-04-04 6:54 [igt-dev] [PATCH i-g-t 0/4] tests/i915: Enable XY_FAST_COPY_BLT for gen12+ Vikas Srivastava 2023-04-04 6:54 ` [igt-dev] [PATCH i-g-t 1/4 v3] tests/i915/gem_linear_blits: Enable XY_FAST_COPY_BLT copy instruction Vikas Srivastava 2023-04-04 6:54 ` [igt-dev] [PATCH i-g-t 2/4 v3] tests/i915/gem_caching: Enable XY_FAST_COPY_BLT for MTL Vikas Srivastava @ 2023-04-04 6:54 ` Vikas Srivastava 2023-04-04 6:54 ` [igt-dev] [PATCH i-g-t 4/4 v3] tests/i915/gem_userptr_blits: Enable XY_FAST_COPY_BLT command for gen12+ Vikas Srivastava ` (3 subsequent siblings) 6 siblings, 0 replies; 10+ messages in thread From: Vikas Srivastava @ 2023-04-04 6:54 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..a4eb4c2bbc 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_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 if (blt_has_fast_copy(ibb->i915)) + intel_bb_out(ibb, XY_FAST_COPY_BLT | flags); + 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_xy_src_copy(ibb->i915)) + cmd_bits |= XY_SRC_COPY_BLT_SRC_TILED; + else if (blt_has_fast_copy(ibb->i915)) + cmd_bits |= fast_copy_dword0(src->tiling, dst->tiling); + 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_xy_src_copy(ibb->i915)) + cmd_bits |= XY_SRC_COPY_BLT_DST_TILED; + else + cmd_bits |= fast_copy_dword0(src->tiling, dst->tiling); } 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] 10+ messages in thread
* [igt-dev] [PATCH i-g-t 4/4 v3] tests/i915/gem_userptr_blits: Enable XY_FAST_COPY_BLT command for gen12+ 2023-04-04 6:54 [igt-dev] [PATCH i-g-t 0/4] tests/i915: Enable XY_FAST_COPY_BLT for gen12+ Vikas Srivastava ` (2 preceding siblings ...) 2023-04-04 6:54 ` [igt-dev] [PATCH i-g-t 3/4 v3] lib/intel_batchbuffer: Enable XY_FAST_COPY_BLT support for api_intel_bb Vikas Srivastava @ 2023-04-04 6:54 ` Vikas Srivastava 2023-04-04 9:44 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/i915: Enable XY_FAST_COPY_BLT " Patchwork ` (2 subsequent siblings) 6 siblings, 0 replies; 10+ messages in thread From: Vikas Srivastava @ 2023-04-04 6:54 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 | 102 ++++++++++++++++++++------------- 1 file changed, 63 insertions(+), 39 deletions(-) diff --git a/tests/i915/gem_userptr_blits.c b/tests/i915/gem_userptr_blits.c index 07a453229a..3a1a81e456 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_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 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 { + 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,7 @@ 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)) { - 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; @@ -277,19 +286,34 @@ 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 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 { + 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] 10+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for tests/i915: Enable XY_FAST_COPY_BLT for gen12+ 2023-04-04 6:54 [igt-dev] [PATCH i-g-t 0/4] tests/i915: Enable XY_FAST_COPY_BLT for gen12+ Vikas Srivastava ` (3 preceding siblings ...) 2023-04-04 6:54 ` [igt-dev] [PATCH i-g-t 4/4 v3] tests/i915/gem_userptr_blits: Enable XY_FAST_COPY_BLT command for gen12+ Vikas Srivastava @ 2023-04-04 9:44 ` Patchwork 2023-04-04 12:02 ` [igt-dev] [PATCH i-g-t 0/4] " Karolina Stolarek 2023-04-04 15:20 ` [igt-dev] ✓ Fi.CI.IGT: success for " Patchwork 6 siblings, 0 replies; 10+ messages in thread From: Patchwork @ 2023-04-04 9:44 UTC (permalink / raw) To: Vikas Srivastava; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 4815 bytes --] == Series Details == Series: tests/i915: Enable XY_FAST_COPY_BLT for gen12+ URL : https://patchwork.freedesktop.org/series/116067/ State : success == Summary == CI Bug Log - changes from IGT_7234 -> IGTPW_8746 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/index.html Participating hosts (37 -> 35) ------------------------------ Additional (1): fi-kbl-soraka Missing (3): bat-rpls-2 fi-kbl-x1275 fi-snb-2520m Known issues ------------ Here are the changes found in IGTPW_8746 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_8746/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_8746/fi-kbl-soraka/igt@gem_lmem_swapping@basic.html * igt@i915_pm_rps@basic-api: - bat-dg2-11: [PASS][3] -> [FAIL][4] ([i915#8308]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7234/bat-dg2-11/igt@i915_pm_rps@basic-api.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/bat-dg2-11/igt@i915_pm_rps@basic-api.html * igt@i915_selftest@live@gt_pm: - fi-kbl-soraka: NOTRUN -> [DMESG-FAIL][5] ([i915#1886]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html * igt@i915_selftest@live@mman: - bat-rpls-1: [PASS][6] -> [TIMEOUT][7] ([i915#6794]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7234/bat-rpls-1/igt@i915_selftest@live@mman.html [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/bat-rpls-1/igt@i915_selftest@live@mman.html * igt@kms_chamelium_frames@hdmi-crc-fast: - fi-kbl-soraka: NOTRUN -> [SKIP][8] ([fdo#109271]) +16 similar issues [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/fi-kbl-soraka/igt@kms_chamelium_frames@hdmi-crc-fast.html * igt@kms_chamelium_hpd@common-hpd-after-suspend: - bat-adln-1: NOTRUN -> [SKIP][9] ([i915#7828]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/bat-adln-1/igt@kms_chamelium_hpd@common-hpd-after-suspend.html #### Possible fixes #### * igt@dmabuf@all-tests@dma_fence: - bat-adln-1: [DMESG-FAIL][10] ([i915#8143]) -> [PASS][11] [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7234/bat-adln-1/igt@dmabuf@all-tests@dma_fence.html [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/bat-adln-1/igt@dmabuf@all-tests@dma_fence.html * igt@dmabuf@all-tests@sanitycheck: - bat-adln-1: [ABORT][12] ([i915#8058] / [i915#8144]) -> [PASS][13] [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7234/bat-adln-1/igt@dmabuf@all-tests@sanitycheck.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/bat-adln-1/igt@dmabuf@all-tests@sanitycheck.html * igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-c-dp-1: - bat-dg2-8: [FAIL][14] ([i915#7932]) -> [PASS][15] +1 similar issue [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7234/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-c-dp-1.html [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-c-dp-1.html [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#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#6794]: https://gitlab.freedesktop.org/drm/intel/issues/6794 [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828 [i915#7932]: https://gitlab.freedesktop.org/drm/intel/issues/7932 [i915#8058]: https://gitlab.freedesktop.org/drm/intel/issues/8058 [i915#8143]: https://gitlab.freedesktop.org/drm/intel/issues/8143 [i915#8144]: https://gitlab.freedesktop.org/drm/intel/issues/8144 [i915#8308]: https://gitlab.freedesktop.org/drm/intel/issues/8308 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_7234 -> IGTPW_8746 CI-20190529: 20190529 CI_DRM_12963: 9ce564e0e7b78a777aade183f3deed30b5b83336 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_8746: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/index.html IGT_7234: 70802fb59c65164f3587e71376ebed1ed5e91fd1 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/index.html [-- Attachment #2: Type: text/html, Size: 5790 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 0/4] tests/i915: Enable XY_FAST_COPY_BLT for gen12+ 2023-04-04 6:54 [igt-dev] [PATCH i-g-t 0/4] tests/i915: Enable XY_FAST_COPY_BLT for gen12+ Vikas Srivastava ` (4 preceding siblings ...) 2023-04-04 9:44 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/i915: Enable XY_FAST_COPY_BLT " Patchwork @ 2023-04-04 12:02 ` Karolina Stolarek 2023-04-04 15:20 ` [igt-dev] ✓ Fi.CI.IGT: success for " Patchwork 6 siblings, 0 replies; 10+ messages in thread From: Karolina Stolarek @ 2023-04-04 12:02 UTC (permalink / raw) To: Vikas Srivastava; +Cc: igt-dev On 4.04.2023 08:54, Vikas Srivastava wrote: > 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. > I'm surprised to see that there are no r-b's on the patches I already reviewed. Once you have good results from the FULL run, please add the tag to each of the patches: Reviewed-by: Karolina Stolarek <karolina.stolarek@intel.com> Thanks, Karolina > Arjun Melkaveri (1): > tests/i915/gem_linear_blits: Enable XY_FAST_COPY_BLT copy instruction > > Vikas Srivastava (3): > tests/i915/gem_caching: Enable XY_FAST_COPY_BLT for MTL > lib/intel_batchbuffer: Enable XY_FAST_COPY_BLT support for > api_intel_bb > tests/i915/gem_userptr_blits: Enable XY_FAST_COPY_BLT command for > gen12+ > > lib/intel_batchbuffer.c | 57 +++++++++++------- > tests/i915/gem_caching.c | 25 +++++--- > tests/i915/gem_linear_blits.c | 68 ++++++++++++++-------- > tests/i915/gem_userptr_blits.c | 102 ++++++++++++++++++++------------- > 4 files changed, 162 insertions(+), 90 deletions(-) > ^ permalink raw reply [flat|nested] 10+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for tests/i915: Enable XY_FAST_COPY_BLT for gen12+ 2023-04-04 6:54 [igt-dev] [PATCH i-g-t 0/4] tests/i915: Enable XY_FAST_COPY_BLT for gen12+ Vikas Srivastava ` (5 preceding siblings ...) 2023-04-04 12:02 ` [igt-dev] [PATCH i-g-t 0/4] " Karolina Stolarek @ 2023-04-04 15:20 ` Patchwork 6 siblings, 0 replies; 10+ messages in thread From: Patchwork @ 2023-04-04 15:20 UTC (permalink / raw) To: Vikas Srivastava; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 15191 bytes --] == Series Details == Series: tests/i915: Enable XY_FAST_COPY_BLT for gen12+ URL : https://patchwork.freedesktop.org/series/116067/ State : success == Summary == CI Bug Log - changes from IGT_7234_full -> IGTPW_8746_full ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/index.html Participating hosts (7 -> 8) ------------------------------ Additional (1): shard-rkl0 Known issues ------------ Here are the changes found in IGTPW_8746_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_lmem_swapping@heavy-verify-random-ccs: - shard-apl: NOTRUN -> [SKIP][1] ([fdo#109271] / [i915#4613]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/shard-apl7/igt@gem_lmem_swapping@heavy-verify-random-ccs.html * igt@i915_pm_sseu@full-enable: - shard-apl: [PASS][2] -> [FAIL][3] ([i915#3524]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7234/shard-apl4/igt@i915_pm_sseu@full-enable.html [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/shard-apl2/igt@i915_pm_sseu@full-enable.html * igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs: - shard-apl: NOTRUN -> [SKIP][4] ([fdo#109271] / [i915#3886]) +3 similar issues [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/shard-apl7/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs.html * igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_ccs: - shard-apl: NOTRUN -> [SKIP][5] ([fdo#109271]) +46 similar issues [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/shard-apl1/igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_ccs.html * igt@kms_content_protection@atomic@pipe-a-dp-1: - shard-apl: NOTRUN -> [TIMEOUT][6] ([i915#7173]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/shard-apl2/igt@kms_content_protection@atomic@pipe-a-dp-1.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions: - shard-glk: [PASS][7] -> [FAIL][8] ([i915#2346]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7234/shard-glk6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/shard-glk2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html * igt@kms_flip@2x-flip-vs-expired-vblank@ab-hdmi-a1-hdmi-a2: - shard-glk: [PASS][9] -> [FAIL][10] ([i915#2122]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7234/shard-glk2/igt@kms_flip@2x-flip-vs-expired-vblank@ab-hdmi-a1-hdmi-a2.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/shard-glk4/igt@kms_flip@2x-flip-vs-expired-vblank@ab-hdmi-a1-hdmi-a2.html * igt@kms_flip@2x-modeset-vs-vblank-race@ab-hdmi-a1-hdmi-a2: - shard-glk: [PASS][11] -> [FAIL][12] ([i915#407]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7234/shard-glk9/igt@kms_flip@2x-modeset-vs-vblank-race@ab-hdmi-a1-hdmi-a2.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/shard-glk3/igt@kms_flip@2x-modeset-vs-vblank-race@ab-hdmi-a1-hdmi-a2.html * igt@perf@stress-open-close@0-rcs0: - shard-glk: [PASS][13] -> [ABORT][14] ([i915#5213]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7234/shard-glk8/igt@perf@stress-open-close@0-rcs0.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/shard-glk3/igt@perf@stress-open-close@0-rcs0.html - shard-apl: [PASS][15] -> [ABORT][16] ([i915#5213]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7234/shard-apl6/igt@perf@stress-open-close@0-rcs0.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/shard-apl3/igt@perf@stress-open-close@0-rcs0.html #### Possible fixes #### * igt@gem_exec_fair@basic-pace-share@rcs0: - shard-glk: [FAIL][17] ([i915#2842]) -> [PASS][18] +2 similar issues [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7234/shard-glk7/igt@gem_exec_fair@basic-pace-share@rcs0.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/shard-glk3/igt@gem_exec_fair@basic-pace-share@rcs0.html - {shard-tglu}: [FAIL][19] ([i915#2842]) -> [PASS][20] [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7234/shard-tglu-8/igt@gem_exec_fair@basic-pace-share@rcs0.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/shard-tglu-8/igt@gem_exec_fair@basic-pace-share@rcs0.html * igt@gem_exec_fair@basic-pace-solo@rcs0: - shard-apl: [FAIL][21] ([i915#2842]) -> [PASS][22] [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7234/shard-apl4/igt@gem_exec_fair@basic-pace-solo@rcs0.html [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/shard-apl6/igt@gem_exec_fair@basic-pace-solo@rcs0.html * igt@gem_exec_suspend@basic-s4-devices@smem: - {shard-tglu}: [ABORT][23] ([i915#7975]) -> [PASS][24] [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7234/shard-tglu-10/igt@gem_exec_suspend@basic-s4-devices@smem.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/shard-tglu-3/igt@gem_exec_suspend@basic-s4-devices@smem.html * igt@i915_pm_dc@dc9-dpms: - shard-apl: [SKIP][25] ([fdo#109271]) -> [PASS][26] [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7234/shard-apl3/igt@i915_pm_dc@dc9-dpms.html [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/shard-apl7/igt@i915_pm_dc@dc9-dpms.html * igt@kms_cursor_legacy@single-move@pipe-b: - {shard-rkl}: [INCOMPLETE][27] ([i915#8011]) -> [PASS][28] +1 similar issue [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7234/shard-rkl-7/igt@kms_cursor_legacy@single-move@pipe-b.html [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/shard-rkl-1/igt@kms_cursor_legacy@single-move@pipe-b.html * igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@bc-hdmi-a1-hdmi-a2: - shard-glk: [FAIL][29] ([i915#2122]) -> [PASS][30] [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7234/shard-glk5/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@bc-hdmi-a1-hdmi-a2.html [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/shard-glk6/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@bc-hdmi-a1-hdmi-a2.html * igt@perf_pmu@idle@rcs0: - {shard-rkl}: [FAIL][31] ([i915#4349]) -> [PASS][32] [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7234/shard-rkl-7/igt@perf_pmu@idle@rcs0.html [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/shard-rkl-7/igt@perf_pmu@idle@rcs0.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#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274 [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#109302]: https://bugs.freedesktop.org/show_bug.cgi?id=109302 [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315 [fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506 [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#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#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397 [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825 [i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839 [i915#1937]: https://gitlab.freedesktop.org/drm/intel/issues/1937 [i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122 [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346 [i915#2433]: https://gitlab.freedesktop.org/drm/intel/issues/2433 [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527 [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575 [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587 [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#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856 [i915#3023]: https://gitlab.freedesktop.org/drm/intel/issues/3023 [i915#315]: https://gitlab.freedesktop.org/drm/intel/issues/315 [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281 [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282 [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297 [i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299 [i915#3318]: https://gitlab.freedesktop.org/drm/intel/issues/3318 [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359 [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458 [i915#3469]: https://gitlab.freedesktop.org/drm/intel/issues/3469 [i915#3524]: https://gitlab.freedesktop.org/drm/intel/issues/3524 [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591 [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#3938]: https://gitlab.freedesktop.org/drm/intel/issues/3938 [i915#3952]: https://gitlab.freedesktop.org/drm/intel/issues/3952 [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955 [i915#4036]: https://gitlab.freedesktop.org/drm/intel/issues/4036 [i915#407]: https://gitlab.freedesktop.org/drm/intel/issues/407 [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077 [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078 [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079 [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#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349 [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538 [i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565 [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [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#4859]: https://gitlab.freedesktop.org/drm/intel/issues/4859 [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860 [i915#4879]: https://gitlab.freedesktop.org/drm/intel/issues/4879 [i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880 [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176 [i915#5213]: https://gitlab.freedesktop.org/drm/intel/issues/5213 [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#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354 [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#6245]: https://gitlab.freedesktop.org/drm/intel/issues/6245 [i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433 [i915#6493]: https://gitlab.freedesktop.org/drm/intel/issues/6493 [i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524 [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658 [i915#6590]: https://gitlab.freedesktop.org/drm/intel/issues/6590 [i915#6755]: https://gitlab.freedesktop.org/drm/intel/issues/6755 [i915#6946]: https://gitlab.freedesktop.org/drm/intel/issues/6946 [i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116 [i915#7173]: https://gitlab.freedesktop.org/drm/intel/issues/7173 [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561 [i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697 [i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701 [i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711 [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828 [i915#7975]: https://gitlab.freedesktop.org/drm/intel/issues/7975 [i915#8011]: https://gitlab.freedesktop.org/drm/intel/issues/8011 [i915#8150]: https://gitlab.freedesktop.org/drm/intel/issues/8150 [i915#8155]: https://gitlab.freedesktop.org/drm/intel/issues/8155 [i915#8211]: https://gitlab.freedesktop.org/drm/intel/issues/8211 [i915#8308]: https://gitlab.freedesktop.org/drm/intel/issues/8308 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_7234 -> IGTPW_8746 CI-20190529: 20190529 CI_DRM_12963: 9ce564e0e7b78a777aade183f3deed30b5b83336 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_8746: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/index.html IGT_7234: 70802fb59c65164f3587e71376ebed1ed5e91fd1 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8746/index.html [-- Attachment #2: Type: text/html, Size: 9635 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* [igt-dev] [PATCH i-g-t 0/4] tests/i915: Enable XY_FAST_COPY_BLT for gen12+
@ 2023-04-05 6:07 Vikas Srivastava
2023-04-05 6:07 ` [igt-dev] [PATCH i-g-t 4/4 v3] tests/i915/gem_userptr_blits: Enable XY_FAST_COPY_BLT command " Vikas Srivastava
0 siblings, 1 reply; 10+ messages in thread
From: Vikas Srivastava @ 2023-04-05 6:07 UTC (permalink / raw)
To: igt-dev
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>
Reviewed-by: Karolina Stolarek <karolina.stolarek@intel.com>
Arjun Melkaveri (1):
tests/i915/gem_linear_blits: Enable XY_FAST_COPY_BLT copy instruction
Vikas Srivastava (3):
tests/i915/gem_caching: Enable XY_FAST_COPY_BLT for MTL
lib/intel_batchbuffer: Enable XY_FAST_COPY_BLT support for
api_intel_bb
tests/i915/gem_userptr_blits: Enable XY_FAST_COPY_BLT command for
gen12+
lib/intel_batchbuffer.c | 57 +++++++++++-------
tests/i915/gem_caching.c | 25 +++++---
tests/i915/gem_linear_blits.c | 68 ++++++++++++++--------
tests/i915/gem_userptr_blits.c | 102 ++++++++++++++++++++-------------
4 files changed, 162 insertions(+), 90 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 10+ messages in thread* [igt-dev] [PATCH i-g-t 4/4 v3] tests/i915/gem_userptr_blits: Enable XY_FAST_COPY_BLT command for gen12+ 2023-04-05 6:07 [igt-dev] [PATCH i-g-t 0/4] " Vikas Srivastava @ 2023-04-05 6:07 ` Vikas Srivastava 0 siblings, 0 replies; 10+ messages in thread From: Vikas Srivastava @ 2023-04-05 6:07 UTC (permalink / raw) To: igt-dev 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> Reviewed-by: Karolina Stolarek <karolina.stolarek@intel.com> --- tests/i915/gem_userptr_blits.c | 102 ++++++++++++++++++++------------- 1 file changed, 63 insertions(+), 39 deletions(-) diff --git a/tests/i915/gem_userptr_blits.c b/tests/i915/gem_userptr_blits.c index 07a453229a..3a1a81e456 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_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 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 { + 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,7 @@ 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)) { - 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; @@ -277,19 +286,34 @@ 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 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 { + 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] 10+ messages in thread
* [igt-dev] [PATCH i-g-t 0/4] tests/i915: Enable XY_FAST_COPY_BLT for gen12+
@ 2023-04-03 10:57 Vikas Srivastava
2023-04-03 10:57 ` [igt-dev] [PATCH i-g-t 4/4 v3] tests/i915/gem_userptr_blits: Enable XY_FAST_COPY_BLT command " Vikas Srivastava
0 siblings, 1 reply; 10+ messages in thread
From: Vikas Srivastava @ 2023-04-03 10:57 UTC (permalink / raw)
To: igt-dev
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):
tests/i915/gem_caching: Enable XY_FAST_COPY_BLT for MTL
lib/intel_batchbuffer: Enable XY_FAST_COPY_BLT support for
api_intel_bb
tests/i915/gem_userptr_blits: Enable XY_FAST_COPY_BLT command for
gen12+
lib/intel_batchbuffer.c | 57 +++++++++++-------
tests/i915/gem_caching.c | 25 +++++---
tests/i915/gem_linear_blits.c | 68 ++++++++++++++--------
tests/i915/gem_userptr_blits.c | 102 ++++++++++++++++++++-------------
4 files changed, 162 insertions(+), 90 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 10+ messages in thread* [igt-dev] [PATCH i-g-t 4/4 v3] tests/i915/gem_userptr_blits: Enable XY_FAST_COPY_BLT command for gen12+ 2023-04-03 10:57 [igt-dev] [PATCH i-g-t 0/4] tests/i915: Enable XY_FAST_COPY_BLT " Vikas Srivastava @ 2023-04-03 10:57 ` Vikas Srivastava 0 siblings, 0 replies; 10+ messages in thread From: Vikas Srivastava @ 2023-04-03 10:57 UTC (permalink / raw) To: igt-dev 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 | 102 ++++++++++++++++++++------------- 1 file changed, 63 insertions(+), 39 deletions(-) diff --git a/tests/i915/gem_userptr_blits.c b/tests/i915/gem_userptr_blits.c index 07a453229a..3a1a81e456 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_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 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 { + 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,7 @@ 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)) { - 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; @@ -277,19 +286,34 @@ 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 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 { + 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] 10+ messages in thread
end of thread, other threads:[~2023-04-05 6:10 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-04-04 6:54 [igt-dev] [PATCH i-g-t 0/4] tests/i915: Enable XY_FAST_COPY_BLT for gen12+ Vikas Srivastava 2023-04-04 6:54 ` [igt-dev] [PATCH i-g-t 1/4 v3] tests/i915/gem_linear_blits: Enable XY_FAST_COPY_BLT copy instruction Vikas Srivastava 2023-04-04 6:54 ` [igt-dev] [PATCH i-g-t 2/4 v3] tests/i915/gem_caching: Enable XY_FAST_COPY_BLT for MTL Vikas Srivastava 2023-04-04 6:54 ` [igt-dev] [PATCH i-g-t 3/4 v3] lib/intel_batchbuffer: Enable XY_FAST_COPY_BLT support for api_intel_bb Vikas Srivastava 2023-04-04 6:54 ` [igt-dev] [PATCH i-g-t 4/4 v3] tests/i915/gem_userptr_blits: Enable XY_FAST_COPY_BLT command for gen12+ Vikas Srivastava 2023-04-04 9:44 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/i915: Enable XY_FAST_COPY_BLT " Patchwork 2023-04-04 12:02 ` [igt-dev] [PATCH i-g-t 0/4] " Karolina Stolarek 2023-04-04 15:20 ` [igt-dev] ✓ Fi.CI.IGT: success for " Patchwork -- strict thread matches above, loose matches on Subject: below -- 2023-04-05 6:07 [igt-dev] [PATCH i-g-t 0/4] " Vikas Srivastava 2023-04-05 6:07 ` [igt-dev] [PATCH i-g-t 4/4 v3] tests/i915/gem_userptr_blits: Enable XY_FAST_COPY_BLT command " Vikas Srivastava 2023-04-03 10:57 [igt-dev] [PATCH i-g-t 0/4] tests/i915: Enable XY_FAST_COPY_BLT " Vikas Srivastava 2023-04-03 10:57 ` [igt-dev] [PATCH i-g-t 4/4 v3] tests/i915/gem_userptr_blits: Enable XY_FAST_COPY_BLT command " Vikas Srivastava
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox