* [igt-dev] [PATCH i-g-t 1/3] lib/i915/i915_blt: Add offset to block and fast copy
2023-03-28 18:30 [igt-dev] [PATCH i-g-t 0/3] switch lib/igt_fb.c to use lib/i915/i915_blt functions for blitter on Intel hw Juha-Pekka Heikkila
@ 2023-03-28 18:30 ` Juha-Pekka Heikkila
2023-04-03 6:03 ` Zbigniew Kempczyński
0 siblings, 1 reply; 10+ messages in thread
From: Juha-Pekka Heikkila @ 2023-03-28 18:30 UTC (permalink / raw)
To: igt-dev
Add offset to src and dst blits, this allow to use i915_blt with multiplane
framebuffers.
Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
---
lib/i915/i915_blt.c | 12 ++++++++----
lib/i915/i915_blt.h | 1 +
2 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/lib/i915/i915_blt.c b/lib/i915/i915_blt.c
index ef67fe26f..ffaa97b42 100644
--- a/lib/i915/i915_blt.c
+++ b/lib/i915/i915_blt.c
@@ -708,8 +708,10 @@ uint64_t emit_blt_block_copy(int i915,
igt_assert_f(blt, "block-copy requires data to do blit\n");
alignment = gem_detect_safe_alignment(i915);
- src_offset = get_offset(ahnd, blt->src.handle, blt->src.size, alignment);
- dst_offset = get_offset(ahnd, blt->dst.handle, blt->dst.size, alignment);
+ src_offset = get_offset(ahnd, blt->src.handle, blt->src.size, alignment)
+ + blt->src.offset;
+ dst_offset = get_offset(ahnd, blt->dst.handle, blt->dst.size, alignment)
+ + blt->dst.offset;
bb_offset = get_offset(ahnd, blt->bb.handle, blt->bb.size, alignment);
fill_data(&data, blt, src_offset, dst_offset, ext);
@@ -1179,8 +1181,10 @@ uint64_t emit_blt_fast_copy(int i915,
data.dw03.dst_x2 = blt->dst.x2;
data.dw03.dst_y2 = blt->dst.y2;
- src_offset = get_offset(ahnd, blt->src.handle, blt->src.size, alignment);
- dst_offset = get_offset(ahnd, blt->dst.handle, blt->dst.size, alignment);
+ src_offset = get_offset(ahnd, blt->src.handle, blt->src.size, alignment)
+ + blt->src.offset;
+ dst_offset = get_offset(ahnd, blt->dst.handle, blt->dst.size, alignment)
+ + blt->dst.offset;
bb_offset = get_offset(ahnd, blt->bb.handle, blt->bb.size, alignment);
data.dw04.dst_address_lo = dst_offset;
diff --git a/lib/i915/i915_blt.h b/lib/i915/i915_blt.h
index a5f0edd15..3e5bec496 100644
--- a/lib/i915/i915_blt.h
+++ b/lib/i915/i915_blt.h
@@ -80,6 +80,7 @@ struct blt_copy_object {
enum blt_compression compression; /* BC only */
enum blt_compression_type compression_type; /* BC only */
uint32_t pitch;
+ uint32_t offset;
uint16_t x_offset, y_offset;
int16_t x1, y1, x2, y2;
--
2.39.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 1/3] lib/i915/i915_blt: Add offset to block and fast copy
2023-03-28 18:30 ` [igt-dev] [PATCH i-g-t 1/3] lib/i915/i915_blt: Add offset to block and fast copy Juha-Pekka Heikkila
@ 2023-04-03 6:03 ` Zbigniew Kempczyński
0 siblings, 0 replies; 10+ messages in thread
From: Zbigniew Kempczyński @ 2023-04-03 6:03 UTC (permalink / raw)
To: Juha-Pekka Heikkila; +Cc: igt-dev
On Tue, Mar 28, 2023 at 09:30:41PM +0300, Juha-Pekka Heikkila wrote:
> Add offset to src and dst blits, this allow to use i915_blt with multiplane
> framebuffers.
>
> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> ---
> lib/i915/i915_blt.c | 12 ++++++++----
> lib/i915/i915_blt.h | 1 +
> 2 files changed, 9 insertions(+), 4 deletions(-)
>
> diff --git a/lib/i915/i915_blt.c b/lib/i915/i915_blt.c
> index ef67fe26f..ffaa97b42 100644
> --- a/lib/i915/i915_blt.c
> +++ b/lib/i915/i915_blt.c
> @@ -708,8 +708,10 @@ uint64_t emit_blt_block_copy(int i915,
> igt_assert_f(blt, "block-copy requires data to do blit\n");
>
> alignment = gem_detect_safe_alignment(i915);
> - src_offset = get_offset(ahnd, blt->src.handle, blt->src.size, alignment);
> - dst_offset = get_offset(ahnd, blt->dst.handle, blt->dst.size, alignment);
> + src_offset = get_offset(ahnd, blt->src.handle, blt->src.size, alignment)
> + + blt->src.offset;
> + dst_offset = get_offset(ahnd, blt->dst.handle, blt->dst.size, alignment)
> + + blt->dst.offset;
> bb_offset = get_offset(ahnd, blt->bb.handle, blt->bb.size, alignment);
>
> fill_data(&data, blt, src_offset, dst_offset, ext);
> @@ -1179,8 +1181,10 @@ uint64_t emit_blt_fast_copy(int i915,
> data.dw03.dst_x2 = blt->dst.x2;
> data.dw03.dst_y2 = blt->dst.y2;
>
> - src_offset = get_offset(ahnd, blt->src.handle, blt->src.size, alignment);
> - dst_offset = get_offset(ahnd, blt->dst.handle, blt->dst.size, alignment);
> + src_offset = get_offset(ahnd, blt->src.handle, blt->src.size, alignment)
> + + blt->src.offset;
> + dst_offset = get_offset(ahnd, blt->dst.handle, blt->dst.size, alignment)
> + + blt->dst.offset;
> bb_offset = get_offset(ahnd, blt->bb.handle, blt->bb.size, alignment);
>
> data.dw04.dst_address_lo = dst_offset;
> diff --git a/lib/i915/i915_blt.h b/lib/i915/i915_blt.h
> index a5f0edd15..3e5bec496 100644
> --- a/lib/i915/i915_blt.h
> +++ b/lib/i915/i915_blt.h
> @@ -80,6 +80,7 @@ struct blt_copy_object {
> enum blt_compression compression; /* BC only */
> enum blt_compression_type compression_type; /* BC only */
> uint32_t pitch;
> + uint32_t offset;
I think renaming to plane_offset and adding to the end of
the structure would be better. Offset is ambiguous (may be
offset on gpu, etc). And add some comment what's for.
With this:
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
--
Zbigniew
> uint16_t x_offset, y_offset;
> int16_t x1, y1, x2, y2;
>
> --
> 2.39.0
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [igt-dev] [PATCH i-g-t 0/3] Try to have one less blitter path.
@ 2023-05-31 19:21 Juha-Pekka Heikkila
2023-05-31 19:21 ` [igt-dev] [PATCH i-g-t 1/3] lib/i915/i915_blt: Add offset to block and fast copy Juha-Pekka Heikkila
` (4 more replies)
0 siblings, 5 replies; 10+ messages in thread
From: Juha-Pekka Heikkila @ 2023-05-31 19:21 UTC (permalink / raw)
To: igt-dev
Here switch blitcopy in igt_fb.c to use lib/i915/i915_blt functions. This allow
start to use blitter path for doing rc ccs comression with new hardware, here
limit is set at having flat ccs since i915_blt functions didn't have aux ccs
support.
For compressing mc ccs still need to use Vebox copy as it seems copy engine
doesn't support destination compression with mc ccs.
/Juha-Pekka
Juha-Pekka Heikkila (3):
lib/i915/i915_blt: Add offset to block and fast copy
lib/igt_fb: switch blitcopy to use lib/i915/i915_blt functions
lib/igt_fb: use blitter for rendercompression on Intel hw with flat
ccs
lib/i915/i915_blt.c | 12 ++-
lib/i915/i915_blt.h | 3 +
lib/igt_fb.c | 254 +++++++++++++++++++++++++++++++++++++-------
3 files changed, 224 insertions(+), 45 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 10+ messages in thread
* [igt-dev] [PATCH i-g-t 1/3] lib/i915/i915_blt: Add offset to block and fast copy
2023-05-31 19:21 [igt-dev] [PATCH i-g-t 0/3] Try to have one less blitter path Juha-Pekka Heikkila
@ 2023-05-31 19:21 ` Juha-Pekka Heikkila
2023-05-31 19:21 ` [igt-dev] [PATCH i-g-t 2/3] lib/igt_fb: switch blitcopy to use lib/i915/i915_blt functions Juha-Pekka Heikkila
` (3 subsequent siblings)
4 siblings, 0 replies; 10+ messages in thread
From: Juha-Pekka Heikkila @ 2023-05-31 19:21 UTC (permalink / raw)
To: igt-dev
Add offset to src and dst blits, this allow to use i915_blt with multiplane
framebuffers.
Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
---
lib/i915/i915_blt.c | 12 ++++++++----
lib/i915/i915_blt.h | 3 +++
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/lib/i915/i915_blt.c b/lib/i915/i915_blt.c
index ef67fe26..f18b6326 100644
--- a/lib/i915/i915_blt.c
+++ b/lib/i915/i915_blt.c
@@ -708,8 +708,10 @@ uint64_t emit_blt_block_copy(int i915,
igt_assert_f(blt, "block-copy requires data to do blit\n");
alignment = gem_detect_safe_alignment(i915);
- src_offset = get_offset(ahnd, blt->src.handle, blt->src.size, alignment);
- dst_offset = get_offset(ahnd, blt->dst.handle, blt->dst.size, alignment);
+ src_offset = get_offset(ahnd, blt->src.handle, blt->src.size, alignment)
+ + blt->src.plane_offset;
+ dst_offset = get_offset(ahnd, blt->dst.handle, blt->dst.size, alignment)
+ + blt->dst.plane_offset;
bb_offset = get_offset(ahnd, blt->bb.handle, blt->bb.size, alignment);
fill_data(&data, blt, src_offset, dst_offset, ext);
@@ -1179,8 +1181,10 @@ uint64_t emit_blt_fast_copy(int i915,
data.dw03.dst_x2 = blt->dst.x2;
data.dw03.dst_y2 = blt->dst.y2;
- src_offset = get_offset(ahnd, blt->src.handle, blt->src.size, alignment);
- dst_offset = get_offset(ahnd, blt->dst.handle, blt->dst.size, alignment);
+ src_offset = get_offset(ahnd, blt->src.handle, blt->src.size, alignment)
+ + blt->src.plane_offset;
+ dst_offset = get_offset(ahnd, blt->dst.handle, blt->dst.size, alignment)
+ + blt->dst.plane_offset;
bb_offset = get_offset(ahnd, blt->bb.handle, blt->bb.size, alignment);
data.dw04.dst_address_lo = dst_offset;
diff --git a/lib/i915/i915_blt.h b/lib/i915/i915_blt.h
index a5f0edd1..05a80ce6 100644
--- a/lib/i915/i915_blt.h
+++ b/lib/i915/i915_blt.h
@@ -85,6 +85,9 @@ struct blt_copy_object {
/* mapping or null */
uint32_t *ptr;
+
+ /* enable to use multiplane framebuffers */
+ uint32_t plane_offset;
};
struct blt_copy_batch {
--
2.25.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [igt-dev] [PATCH i-g-t 2/3] lib/igt_fb: switch blitcopy to use lib/i915/i915_blt functions
2023-05-31 19:21 [igt-dev] [PATCH i-g-t 0/3] Try to have one less blitter path Juha-Pekka Heikkila
2023-05-31 19:21 ` [igt-dev] [PATCH i-g-t 1/3] lib/i915/i915_blt: Add offset to block and fast copy Juha-Pekka Heikkila
@ 2023-05-31 19:21 ` Juha-Pekka Heikkila
2023-06-07 6:47 ` Zbigniew Kempczyński
2023-05-31 19:21 ` [igt-dev] [PATCH i-g-t 3/3] lib/igt_fb: use blitter for rendercompression on Intel hw with flat ccs Juha-Pekka Heikkila
` (2 subsequent siblings)
4 siblings, 1 reply; 10+ messages in thread
From: Juha-Pekka Heikkila @ 2023-05-31 19:21 UTC (permalink / raw)
To: igt-dev
reduce code duplication
Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
---
lib/igt_fb.c | 243 +++++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 205 insertions(+), 38 deletions(-)
diff --git a/lib/igt_fb.c b/lib/igt_fb.c
index 71a199d4..b3fc3766 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -35,6 +35,8 @@
#include "drmtest.h"
#include "i915/gem_create.h"
#include "i915/gem_mman.h"
+#include "i915/i915_blt.h"
+#include "i915/intel_mocs.h"
#include "igt_aux.h"
#include "igt_color_encoding.h"
#include "igt_fb.h"
@@ -2453,21 +2455,30 @@ struct fb_blit_upload {
struct intel_bb *ibb;
};
-static bool fast_blit_ok(const struct igt_fb *fb)
+static enum blt_tiling_type fb_tile_to_blt_tile(uint64_t tile)
{
- int dev_id = intel_get_drm_devid(fb->fd);
- int ver = intel_display_ver(dev_id);
-
- if (ver < 9)
- return false;
-
- if (ver < 12)
- return true;
-
- if (ver >= 13 && !IS_ALDERLAKE_P(dev_id))
- return true;
+ switch (igt_fb_mod_to_tiling(tile)) {
+ case I915_TILING_NONE:
+ return T_LINEAR;
+ case I915_TILING_X:
+ return T_XMAJOR;
+ case I915_TILING_Y:
+ return T_YMAJOR;
+ case I915_TILING_4:
+ return T_TILE4;
+ case I915_TILING_Yf:
+ return T_YFMAJOR;
+ default:
+ igt_assert_f(0, "Unknown tiling!\n");
+ }
+}
- return fb->modifier != I915_FORMAT_MOD_X_TILED;
+static bool fast_blit_ok(const struct igt_fb *fb)
+{
+ return blt_has_fast_copy(fb->fd) &&
+ !is_ccs_modifier(fb->modifier) &&
+ blt_block_copy_supports_tiling(fb->fd,
+ fb_tile_to_blt_tile(fb->modifier));
}
static bool blitter_ok(const struct igt_fb *fb)
@@ -2510,9 +2521,10 @@ static bool use_enginecopy(const struct igt_fb *fb)
return false;
return fb->modifier == I915_FORMAT_MOD_Yf_TILED ||
- is_ccs_modifier(fb->modifier) ||
+ (!HAS_FLATCCS(intel_get_drm_devid(fb->fd)) && is_ccs_modifier(fb->modifier)) ||
(is_xe_device(fb->fd) && fb->modifier == DRM_FORMAT_MOD_LINEAR) ||
- (is_i915_device(fb->fd) && !gem_has_mappable_ggtt(fb->fd));
+ (is_i915_device(fb->fd) && !gem_has_mappable_ggtt(fb->fd)) ||
+ is_gen12_mc_ccs_modifier(fb->modifier);
}
static bool use_blitter(const struct igt_fb *fb)
@@ -2712,12 +2724,115 @@ static void copy_with_engine(struct fb_blit_upload *blit,
fini_buf(src);
}
+static struct blt_copy_object *blt_fb_init(const struct igt_fb *fb,
+ uint32_t plane, uint32_t memregion)
+{
+ uint32_t name, handle;
+ struct blt_copy_object *blt;
+ enum blt_tiling_type blt_tile;
+ uint64_t stride;
+
+ blt = malloc(sizeof(*blt));
+ igt_assert(blt);
+
+ name = gem_flink(fb->fd, fb->gem_handle);
+ handle = gem_open(fb->fd, name);
+
+ blt_tile = fb_tile_to_blt_tile(fb->modifier);
+ stride = blt_tile == T_LINEAR ? fb->strides[plane] : fb->strides[plane] / 4;
+
+ blt_set_object(blt, handle, fb->size, memregion,
+ intel_get_uc_mocs(fb->fd),
+ blt_tile,
+ is_ccs_modifier(fb->modifier) ? COMPRESSION_ENABLED : COMPRESSION_DISABLED,
+ is_gen12_mc_ccs_modifier(fb->modifier) ? COMPRESSION_TYPE_MEDIA : COMPRESSION_TYPE_3D);
+
+ blt_set_geom(blt, stride, 0, 0, fb->width, fb->plane_height[plane], 0, 0);
+
+ blt->plane_offset = fb->offsets[plane];
+
+ blt->ptr = gem_mmap__device_coherent(fb->fd, handle, 0, fb->size,
+ PROT_READ | PROT_WRITE);
+ return blt;
+}
+
+static enum blt_color_depth blt_get_bpp(const struct igt_fb *fb)
+{
+ switch (fb->plane_bpp[0]) {
+ case 8:
+ return CD_8bit;
+ case 16:
+ return CD_16bit;
+ case 32:
+ return CD_32bit;
+ case 64:
+ return CD_64bit;
+ case 96:
+ return CD_96bit;
+ case 128:
+ return CD_128bit;
+ default:
+ igt_assert(0);
+ }
+}
+
+#define BLT_TARGET_RC(x) (x.compression == COMPRESSION_ENABLED && \
+ x.compression_type == COMPRESSION_TYPE_3D)
+
+#define BLT_TARGET_MC(x) (x.compression == COMPRESSION_ENABLED && \
+ x.compression_type == COMPRESSION_TYPE_MEDIA)
+
+static uint32_t blt_compression_format(struct blt_copy_data *blt,
+ const struct igt_fb *fb)
+{
+ if (blt->src.compression == COMPRESSION_DISABLED &&
+ blt->dst.compression == COMPRESSION_DISABLED)
+ return 0;
+
+ if (BLT_TARGET_RC(blt->src) || BLT_TARGET_RC(blt->dst)) {
+ switch (blt->color_depth) {
+ case CD_32bit:
+ return 8;
+ default:
+ igt_assert_f(0, "COMPRESSION_TYPE_3D unknown color depth\n");
+ }
+ } else if (BLT_TARGET_MC(blt->src)) {
+ switch (fb->drm_format) {
+ case DRM_FORMAT_XRGB8888:
+ return 8;
+ case DRM_FORMAT_XYUV8888:
+ return 9;
+ case DRM_FORMAT_NV12:
+ return 9;
+ case DRM_FORMAT_P010:
+ case DRM_FORMAT_P012:
+ case DRM_FORMAT_P016:
+ return 8;
+ default:
+ igt_assert_f(0, "COMPRESSION_TYPE_MEDIA unknown format\n");
+ }
+ } else if (BLT_TARGET_MC(blt->dst)) {
+ igt_assert_f(0, "Destination compression not supported on mc ccs\n");
+ } else {
+ igt_assert_f(0, "unknown compression\n");
+ }
+}
+
static void blitcopy(const struct igt_fb *dst_fb,
const struct igt_fb *src_fb)
{
uint32_t src_tiling, dst_tiling;
uint32_t ctx = 0;
uint64_t ahnd = 0;
+ const intel_ctx_t *ictx = intel_ctx_create_all_physical(src_fb->fd);
+ struct intel_execution_engine2 *e;
+ uint32_t bb;
+ uint64_t bb_size = 4096;
+ struct blt_copy_data blt = {};
+ struct blt_copy_object *src, *dst;
+ struct blt_block_copy_data_ext ext = {}, *pext = NULL;
+ uint32_t mem_region = HAS_FLATCCS(intel_get_drm_devid(src_fb->fd))
+ ? REGION_LMEM(0) : REGION_SMEM;
igt_assert_eq(dst_fb->fd, src_fb->fd);
igt_assert_eq(dst_fb->num_planes, src_fb->num_planes);
@@ -2729,36 +2844,87 @@ static void blitcopy(const struct igt_fb *dst_fb,
igt_require(gem_has_contexts(dst_fb->fd));
ctx = gem_context_create(dst_fb->fd);
ahnd = get_reloc_ahnd(dst_fb->fd, ctx);
+
+ igt_assert(__gem_create_in_memory_regions(src_fb->fd,
+ &bb,
+ &bb_size,
+ mem_region) == 0);
}
for (int i = 0; i < dst_fb->num_planes; i++) {
igt_assert_eq(dst_fb->plane_bpp[i], src_fb->plane_bpp[i]);
igt_assert_eq(dst_fb->plane_width[i], src_fb->plane_width[i]);
igt_assert_eq(dst_fb->plane_height[i], src_fb->plane_height[i]);
- /*
- * On GEN12+ X-tiled format support is removed from the fast
- * blit command, so use the XY_SRC blit command for it
- * instead.
- */
- if (fast_blit_ok(src_fb) && fast_blit_ok(dst_fb)) {
- igt_blitter_fast_copy__raw(dst_fb->fd,
- ahnd, ctx, NULL,
- src_fb->gem_handle,
- src_fb->offsets[i],
- src_fb->strides[i],
- src_tiling,
- 0, 0, /* src_x, src_y */
- src_fb->size,
- dst_fb->plane_width[i],
- dst_fb->plane_height[i],
- dst_fb->plane_bpp[i],
- dst_fb->gem_handle,
- dst_fb->offsets[i],
- dst_fb->strides[i],
- dst_tiling,
- 0, 0 /* dst_x, dst_y */,
- dst_fb->size);
+
+ if (ahnd && fast_blit_ok(src_fb) && fast_blit_ok(dst_fb)) {
+ for_each_ctx_engine(src_fb->fd, ictx, e) {
+ if (e->class == I915_ENGINE_CLASS_COPY)
+ break;
+ }
+ igt_assert_f(e, "No copy engine found!\n");
+
+ memset(&blt, 0, sizeof(blt));
+ blt.color_depth = blt_get_bpp(src_fb);
+
+ src = blt_fb_init(src_fb, i, mem_region);
+ dst = blt_fb_init(dst_fb, i, mem_region);
+
+ blt_set_copy_object(&blt.src, src);
+ blt_set_copy_object(&blt.dst, dst);
+
+ blt_set_batch(&blt.bb, bb, bb_size, mem_region);
+
+ blt_fast_copy(src_fb->fd, ictx, e, ahnd, &blt);
+ gem_sync(src_fb->fd, blt.dst.handle);
+
+ blt_destroy_object(src_fb->fd, src);
+ blt_destroy_object(dst_fb->fd, dst);
+ } else if (ahnd && blt_has_block_copy(src_fb->fd)) {
+ /*
+ * On GEN12+ X-tiled format support is removed from
+ * the fast blit command, so use the block copy blit
+ * command for it instead.
+ */
+ for_each_ctx_engine(src_fb->fd, ictx, e) {
+ if (gem_engine_can_block_copy(src_fb->fd, e))
+ break;
+ }
+ igt_assert_f(e, "No block copy capable engine found!\n");
+
+ src = blt_fb_init(src_fb, i, mem_region);
+ dst = blt_fb_init(dst_fb, i, mem_region);
+
+ memset(&blt, 0, sizeof(blt));
+ blt.color_depth = blt_get_bpp(src_fb);
+ blt_set_copy_object(&blt.src, src);
+ blt_set_copy_object(&blt.dst, dst);
+
+ if (HAS_FLATCCS(intel_get_drm_devid(src_fb->fd))) {
+ blt_set_object_ext(&ext.src,
+ blt_compression_format(&blt, src_fb),
+ src_fb->width, src_fb->height,
+ SURFACE_TYPE_2D);
+
+ blt_set_object_ext(&ext.dst,
+ blt_compression_format(&blt, dst_fb),
+ dst_fb->width, dst_fb->height,
+ SURFACE_TYPE_2D);
+
+ pext = &ext;
+ }
+
+ blt_set_batch(&blt.bb, bb, bb_size, mem_region);
+
+ blt_block_copy(src_fb->fd, ictx, e, ahnd, &blt, pext);
+ gem_sync(src_fb->fd, blt.dst.handle);
+
+ blt_destroy_object(src_fb->fd, src);
+ blt_destroy_object(dst_fb->fd, dst);
} else {
+ /*
+ * If on legacy hardware where relocations are supported
+ * we'll use XY_SRC blit command instead
+ */
igt_blitter_src_copy(dst_fb->fd,
ahnd, ctx, NULL,
src_fb->gem_handle,
@@ -2782,6 +2948,7 @@ static void blitcopy(const struct igt_fb *dst_fb,
if (ctx)
gem_context_destroy(dst_fb->fd, ctx);
put_ahnd(ahnd);
+ intel_ctx_destroy(src_fb->fd, ictx);
}
static void free_linear_mapping(struct fb_blit_upload *blit)
--
2.25.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [igt-dev] [PATCH i-g-t 3/3] lib/igt_fb: use blitter for rendercompression on Intel hw with flat ccs
2023-05-31 19:21 [igt-dev] [PATCH i-g-t 0/3] Try to have one less blitter path Juha-Pekka Heikkila
2023-05-31 19:21 ` [igt-dev] [PATCH i-g-t 1/3] lib/i915/i915_blt: Add offset to block and fast copy Juha-Pekka Heikkila
2023-05-31 19:21 ` [igt-dev] [PATCH i-g-t 2/3] lib/igt_fb: switch blitcopy to use lib/i915/i915_blt functions Juha-Pekka Heikkila
@ 2023-05-31 19:21 ` Juha-Pekka Heikkila
2023-05-31 21:31 ` [igt-dev] ✓ Fi.CI.BAT: success for Try to have one less blitter path Patchwork
2023-06-02 12:52 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
4 siblings, 0 replies; 10+ messages in thread
From: Juha-Pekka Heikkila @ 2023-05-31 19:21 UTC (permalink / raw)
To: igt-dev
When on flat ccs use blitter for doing rc ccs and rc ccs cc instead
of rendercopy
Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
---
lib/igt_fb.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/lib/igt_fb.c b/lib/igt_fb.c
index b3fc3766..fd84ef24 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -2486,7 +2486,9 @@ static bool blitter_ok(const struct igt_fb *fb)
if (!is_i915_device(fb->fd))
return false;
- if (is_ccs_modifier(fb->modifier))
+ if ((is_ccs_modifier(fb->modifier) &&
+ !HAS_FLATCCS(intel_get_drm_devid(fb->fd)))
+ || is_gen12_mc_ccs_modifier(fb->modifier))
return false;
for (int i = 0; i < fb->num_planes; i++) {
@@ -2833,9 +2835,12 @@ static void blitcopy(const struct igt_fb *dst_fb,
struct blt_block_copy_data_ext ext = {}, *pext = NULL;
uint32_t mem_region = HAS_FLATCCS(intel_get_drm_devid(src_fb->fd))
? REGION_LMEM(0) : REGION_SMEM;
+ /* To ignore CC plane */
+ uint32_t src_cc = src_fb->modifier == I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC ? 1 : 0;
+ uint32_t dst_cc = dst_fb->modifier == I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC ? 1 : 0;
igt_assert_eq(dst_fb->fd, src_fb->fd);
- igt_assert_eq(dst_fb->num_planes, src_fb->num_planes);
+ igt_assert_eq(dst_fb->num_planes - dst_cc, src_fb->num_planes - src_cc);
src_tiling = igt_fb_mod_to_tiling(src_fb->modifier);
dst_tiling = igt_fb_mod_to_tiling(dst_fb->modifier);
@@ -2851,7 +2856,7 @@ static void blitcopy(const struct igt_fb *dst_fb,
mem_region) == 0);
}
- for (int i = 0; i < dst_fb->num_planes; i++) {
+ for (int i = 0; i < dst_fb->num_planes - dst_cc; i++) {
igt_assert_eq(dst_fb->plane_bpp[i], src_fb->plane_bpp[i]);
igt_assert_eq(dst_fb->plane_width[i], src_fb->plane_width[i]);
igt_assert_eq(dst_fb->plane_height[i], src_fb->plane_height[i]);
--
2.25.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for Try to have one less blitter path.
2023-05-31 19:21 [igt-dev] [PATCH i-g-t 0/3] Try to have one less blitter path Juha-Pekka Heikkila
` (2 preceding siblings ...)
2023-05-31 19:21 ` [igt-dev] [PATCH i-g-t 3/3] lib/igt_fb: use blitter for rendercompression on Intel hw with flat ccs Juha-Pekka Heikkila
@ 2023-05-31 21:31 ` Patchwork
2023-06-02 12:52 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
4 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2023-05-31 21:31 UTC (permalink / raw)
To: Juha-Pekka Heikkila; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 7829 bytes --]
== Series Details ==
Series: Try to have one less blitter path.
URL : https://patchwork.freedesktop.org/series/118669/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_13209 -> IGTPW_9084
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/index.html
Participating hosts (38 -> 37)
------------------------------
Missing (1): fi-kbl-8809g
Known issues
------------
Here are the changes found in IGTPW_9084 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_pm_backlight@basic-brightness@edp-1:
- bat-rplp-1: NOTRUN -> [ABORT][1] ([i915#7077])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/bat-rplp-1/igt@i915_pm_backlight@basic-brightness@edp-1.html
* igt@i915_selftest@live@gt_pm:
- bat-rpls-2: [PASS][2] -> [DMESG-FAIL][3] ([i915#4258] / [i915#7913])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/bat-rpls-2/igt@i915_selftest@live@gt_pm.html
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/bat-rpls-2/igt@i915_selftest@live@gt_pm.html
* igt@i915_selftest@live@requests:
- bat-rpls-2: [PASS][4] -> [ABORT][5] ([i915#7913] / [i915#7982])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/bat-rpls-2/igt@i915_selftest@live@requests.html
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/bat-rpls-2/igt@i915_selftest@live@requests.html
* igt@i915_selftest@live@slpc:
- bat-rpls-1: NOTRUN -> [DMESG-WARN][6] ([i915#6367])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/bat-rpls-1/igt@i915_selftest@live@slpc.html
* igt@i915_suspend@basic-s3-without-i915:
- bat-rpls-1: NOTRUN -> [ABORT][7] ([i915#6687] / [i915#7978])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/bat-rpls-1/igt@i915_suspend@basic-s3-without-i915.html
* igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence:
- bat-dg2-11: NOTRUN -> [SKIP][8] ([i915#1845] / [i915#5354]) +2 similar issues
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/bat-dg2-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html
* igt@kms_pipe_crc_basic@read-crc:
- bat-adlp-9: NOTRUN -> [SKIP][9] ([i915#3546]) +1 similar issue
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/bat-adlp-9/igt@kms_pipe_crc_basic@read-crc.html
* igt@kms_psr@primary_mmap_gtt:
- bat-rplp-1: NOTRUN -> [SKIP][10] ([i915#1072]) +1 similar issue
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/bat-rplp-1/igt@kms_psr@primary_mmap_gtt.html
* igt@kms_setmode@basic-clone-single-crtc:
- bat-rplp-1: NOTRUN -> [SKIP][11] ([i915#3555] / [i915#4579])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/bat-rplp-1/igt@kms_setmode@basic-clone-single-crtc.html
#### Possible fixes ####
* igt@i915_pm_rpm@basic-pci-d3-state:
- fi-hsw-4770: [SKIP][12] ([fdo#109271]) -> [PASS][13]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/fi-hsw-4770/igt@i915_pm_rpm@basic-pci-d3-state.html
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/fi-hsw-4770/igt@i915_pm_rpm@basic-pci-d3-state.html
* igt@i915_pm_rpm@basic-rte:
- fi-hsw-4770: [FAIL][14] ([i915#7364]) -> [PASS][15]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/fi-hsw-4770/igt@i915_pm_rpm@basic-rte.html
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/fi-hsw-4770/igt@i915_pm_rpm@basic-rte.html
* igt@i915_selftest@live@migrate:
- bat-dg2-11: [DMESG-WARN][16] ([i915#7699]) -> [PASS][17]
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/bat-dg2-11/igt@i915_selftest@live@migrate.html
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/bat-dg2-11/igt@i915_selftest@live@migrate.html
* igt@i915_selftest@live@requests:
- {bat-mtlp-8}: [DMESG-FAIL][18] ([i915#8497]) -> [PASS][19]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/bat-mtlp-8/igt@i915_selftest@live@requests.html
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/bat-mtlp-8/igt@i915_selftest@live@requests.html
- bat-rpls-1: [ABORT][20] ([i915#7911] / [i915#7920] / [i915#7982]) -> [PASS][21]
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/bat-rpls-1/igt@i915_selftest@live@requests.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/bat-rpls-1/igt@i915_selftest@live@requests.html
* igt@i915_selftest@live@slpc:
- {bat-mtlp-6}: [DMESG-WARN][22] ([i915#6367]) -> [PASS][23]
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/bat-mtlp-6/igt@i915_selftest@live@slpc.html
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/bat-mtlp-6/igt@i915_selftest@live@slpc.html
* igt@kms_pipe_crc_basic@nonblocking-crc@pipe-d-dp-1:
- bat-dg2-8: [FAIL][24] ([i915#7932]) -> [PASS][25]
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc@pipe-d-dp-1.html
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc@pipe-d-dp-1.html
#### Warnings ####
* igt@kms_psr@cursor_plane_move:
- bat-rplp-1: [ABORT][26] -> [SKIP][27] ([i915#1072])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/bat-rplp-1/igt@kms_psr@cursor_plane_move.html
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/bat-rplp-1/igt@kms_psr@cursor_plane_move.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
[i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#4258]: https://gitlab.freedesktop.org/drm/intel/issues/4258
[i915#4423]: https://gitlab.freedesktop.org/drm/intel/issues/4423
[i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
[i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
[i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
[i915#6687]: https://gitlab.freedesktop.org/drm/intel/issues/6687
[i915#7059]: https://gitlab.freedesktop.org/drm/intel/issues/7059
[i915#7077]: https://gitlab.freedesktop.org/drm/intel/issues/7077
[i915#7364]: https://gitlab.freedesktop.org/drm/intel/issues/7364
[i915#7699]: https://gitlab.freedesktop.org/drm/intel/issues/7699
[i915#7911]: https://gitlab.freedesktop.org/drm/intel/issues/7911
[i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
[i915#7920]: https://gitlab.freedesktop.org/drm/intel/issues/7920
[i915#7932]: https://gitlab.freedesktop.org/drm/intel/issues/7932
[i915#7978]: https://gitlab.freedesktop.org/drm/intel/issues/7978
[i915#7982]: https://gitlab.freedesktop.org/drm/intel/issues/7982
[i915#8189]: https://gitlab.freedesktop.org/drm/intel/issues/8189
[i915#8497]: https://gitlab.freedesktop.org/drm/intel/issues/8497
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7314 -> IGTPW_9084
CI-20190529: 20190529
CI_DRM_13209: 045f7c1641d711d0cd364db15e760b60bdf85d9e @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_9084: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/index.html
IGT_7314: ab70dfcdecf93a17fcaddb774855f726325fa0dd @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/index.html
[-- Attachment #2: Type: text/html, Size: 8898 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* [igt-dev] ✗ Fi.CI.IGT: failure for Try to have one less blitter path.
2023-05-31 19:21 [igt-dev] [PATCH i-g-t 0/3] Try to have one less blitter path Juha-Pekka Heikkila
` (3 preceding siblings ...)
2023-05-31 21:31 ` [igt-dev] ✓ Fi.CI.BAT: success for Try to have one less blitter path Patchwork
@ 2023-06-02 12:52 ` Patchwork
4 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2023-06-02 12:52 UTC (permalink / raw)
To: Juha-Pekka Heikkila; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 26385 bytes --]
== Series Details ==
Series: Try to have one less blitter path.
URL : https://patchwork.freedesktop.org/series/118669/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_13209_full -> IGTPW_9084_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with IGTPW_9084_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_9084_full, 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_9084/index.html
Participating hosts (8 -> 7)
------------------------------
Missing (1): shard-rkl0
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_9084_full:
### IGT changes ###
#### Possible regressions ####
* igt@kms_async_flips@async-flip-with-page-flip-events@pipe-c-hdmi-a-1-yf:
- shard-glk: NOTRUN -> [FAIL][1] +8 similar issues
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-glk6/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-c-hdmi-a-1-yf.html
* igt@kms_plane@pixel-format-source-clamping@pipe-a-planes:
- shard-apl: NOTRUN -> [FAIL][2] +1 similar issue
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-apl6/igt@kms_plane@pixel-format-source-clamping@pipe-a-planes.html
* igt@kms_plane_scaling@plane-scaler-with-modifiers-unity-scaling@pipe-a-hdmi-a-1:
- shard-glk: [PASS][3] -> [FAIL][4] +100 similar issues
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-glk8/igt@kms_plane_scaling@plane-scaler-with-modifiers-unity-scaling@pipe-a-hdmi-a-1.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-glk5/igt@kms_plane_scaling@plane-scaler-with-modifiers-unity-scaling@pipe-a-hdmi-a-1.html
* igt@kms_plane_scaling@plane-upscale-with-modifiers-20x20@pipe-b-dp-1:
- shard-apl: [PASS][5] -> [FAIL][6] +69 similar issues
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-apl3/igt@kms_plane_scaling@plane-upscale-with-modifiers-20x20@pipe-b-dp-1.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-apl6/igt@kms_plane_scaling@plane-upscale-with-modifiers-20x20@pipe-b-dp-1.html
#### Warnings ####
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling@pipe-a-valid-mode:
- shard-glk: [SKIP][7] ([fdo#109271] / [i915#4579]) -> [FAIL][8] +1 similar issue
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-glk9/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling@pipe-a-valid-mode.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-glk8/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling@pipe-a-valid-mode:
- shard-apl: [SKIP][9] ([fdo#109271] / [i915#4579]) -> [FAIL][10] +1 similar issue
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-apl6/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling@pipe-a-valid-mode.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-apl3/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling@pipe-a-valid-mode.html
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@kms_plane@pixel-format@pipe-b-planes:
- {shard-dg1}: [PASS][11] -> [FAIL][12] +3 similar issues
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-dg1-17/igt@kms_plane@pixel-format@pipe-b-planes.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-dg1-19/igt@kms_plane@pixel-format@pipe-b-planes.html
* igt@kms_plane_multiple@tiling-x@pipe-d-hdmi-a-4:
- {shard-dg1}: NOTRUN -> [FAIL][13] +3 similar issues
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-dg1-17/igt@kms_plane_multiple@tiling-x@pipe-d-hdmi-a-4.html
Known issues
------------
Here are the changes found in IGTPW_9084_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_fair@basic-deadline:
- shard-glk: [PASS][14] -> [FAIL][15] ([i915#2846])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-glk9/igt@gem_exec_fair@basic-deadline.html
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-glk1/igt@gem_exec_fair@basic-deadline.html
* igt@gem_exec_fair@basic-pace@rcs0:
- shard-glk: [PASS][16] -> [FAIL][17] ([i915#2842])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-glk1/igt@gem_exec_fair@basic-pace@rcs0.html
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-glk5/igt@gem_exec_fair@basic-pace@rcs0.html
* igt@gem_lmem_swapping@parallel-random-engines:
- shard-apl: NOTRUN -> [SKIP][18] ([fdo#109271] / [i915#4613])
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-apl2/igt@gem_lmem_swapping@parallel-random-engines.html
* igt@gem_pwrite@basic-exhaustion:
- shard-apl: NOTRUN -> [WARN][19] ([i915#2658])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-apl7/igt@gem_pwrite@basic-exhaustion.html
- shard-snb: NOTRUN -> [WARN][20] ([i915#2658])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-snb4/igt@gem_pwrite@basic-exhaustion.html
* igt@gem_userptr_blits@vma-merge:
- shard-apl: NOTRUN -> [FAIL][21] ([i915#3318])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-apl4/igt@gem_userptr_blits@vma-merge.html
- shard-snb: NOTRUN -> [FAIL][22] ([i915#2724])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-snb2/igt@gem_userptr_blits@vma-merge.html
* igt@i915_selftest@live@gt_heartbeat:
- shard-apl: [PASS][23] -> [DMESG-FAIL][24] ([i915#5334])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-apl7/igt@i915_selftest@live@gt_heartbeat.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-apl7/igt@i915_selftest@live@gt_heartbeat.html
* igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_gen12_mc_ccs:
- shard-glk: NOTRUN -> [SKIP][25] ([fdo#109271] / [i915#3886]) +1 similar issue
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-glk7/igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_gen12_mc_ccs.html
* igt@kms_chamelium_hpd@common-hpd-after-suspend:
- shard-apl: NOTRUN -> [SKIP][26] ([fdo#109271]) +58 similar issues
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-apl4/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
* igt@kms_content_protection@lic@pipe-a-dp-1:
- shard-apl: NOTRUN -> [TIMEOUT][27] ([i915#7173])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-apl3/igt@kms_content_protection@lic@pipe-a-dp-1.html
* igt@kms_cursor_crc@cursor-suspend@pipe-b-vga-1:
- shard-snb: [PASS][28] -> [DMESG-WARN][29] ([i915#5090])
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-snb7/igt@kms_cursor_crc@cursor-suspend@pipe-b-vga-1.html
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-snb2/igt@kms_cursor_crc@cursor-suspend@pipe-b-vga-1.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
- shard-glk: [PASS][30] -> [FAIL][31] ([i915#2346]) +1 similar issue
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-glk6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-glk3/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling@pipe-a-valid-mode:
- shard-glk: NOTRUN -> [SKIP][32] ([fdo#109271] / [i915#4579]) +1 similar issue
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-glk7/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling@pipe-a-valid-mode:
- shard-apl: NOTRUN -> [SKIP][33] ([fdo#109271] / [i915#4579]) +2 similar issues
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-apl6/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling@pipe-a-valid-mode.html
* igt@kms_frontbuffer_tracking@fbcpsr-tiling-linear:
- shard-glk: NOTRUN -> [SKIP][34] ([fdo#109271]) +51 similar issues
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-glk8/igt@kms_frontbuffer_tracking@fbcpsr-tiling-linear.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-wc:
- shard-snb: NOTRUN -> [SKIP][35] ([fdo#109271]) +101 similar issues
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-snb4/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5@pipe-b-vga-1:
- shard-snb: NOTRUN -> [SKIP][36] ([fdo#109271] / [i915#4579]) +15 similar issues
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-snb4/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5@pipe-b-vga-1.html
* igt@kms_psr2_sf@cursor-plane-move-continuous-sf:
- shard-glk: NOTRUN -> [SKIP][37] ([fdo#109271] / [i915#658])
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-glk6/igt@kms_psr2_sf@cursor-plane-move-continuous-sf.html
* igt@kms_psr2_sf@overlay-plane-update-continuous-sf:
- shard-apl: NOTRUN -> [SKIP][38] ([fdo#109271] / [i915#658])
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-apl7/igt@kms_psr2_sf@overlay-plane-update-continuous-sf.html
* igt@kms_rotation_crc@multiplane-rotation-cropping-bottom:
- shard-apl: [PASS][39] -> [DMESG-FAIL][40] ([IGT#6]) +2 similar issues
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-apl4/igt@kms_rotation_crc@multiplane-rotation-cropping-bottom.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-apl3/igt@kms_rotation_crc@multiplane-rotation-cropping-bottom.html
#### Possible fixes ####
* igt@drm_fdinfo@most-busy-idle-check-all@rcs0:
- {shard-rkl}: [FAIL][41] ([i915#7742]) -> [PASS][42]
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-rkl-3/igt@drm_fdinfo@most-busy-idle-check-all@rcs0.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-rkl-2/igt@drm_fdinfo@most-busy-idle-check-all@rcs0.html
* igt@gem_ctx_exec@basic-nohangcheck:
- {shard-tglu}: [FAIL][43] ([i915#6268]) -> [PASS][44]
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-tglu-10/igt@gem_ctx_exec@basic-nohangcheck.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-tglu-8/igt@gem_ctx_exec@basic-nohangcheck.html
* igt@gem_eio@reset-stress:
- {shard-dg1}: [FAIL][45] ([i915#5784]) -> [PASS][46]
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-dg1-16/igt@gem_eio@reset-stress.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-dg1-15/igt@gem_eio@reset-stress.html
* igt@gem_eio@wait-1us:
- {shard-dg1}: [INCOMPLETE][47] -> [PASS][48]
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-dg1-13/igt@gem_eio@wait-1us.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-dg1-18/igt@gem_eio@wait-1us.html
* igt@gem_exec_fair@basic-none-solo@rcs0:
- shard-apl: [FAIL][49] ([i915#2842]) -> [PASS][50]
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-apl4/igt@gem_exec_fair@basic-none-solo@rcs0.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-apl6/igt@gem_exec_fair@basic-none-solo@rcs0.html
* igt@gem_exec_fair@basic-none@bcs0:
- {shard-rkl}: [FAIL][51] ([i915#2842]) -> [PASS][52]
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-rkl-6/igt@gem_exec_fair@basic-none@bcs0.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-rkl-3/igt@gem_exec_fair@basic-none@bcs0.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-glk: [FAIL][53] ([i915#2842]) -> [PASS][54]
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-glk9/igt@gem_exec_fair@basic-pace-share@rcs0.html
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-glk8/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@gem_exec_suspend@basic-s4-devices@smem:
- {shard-tglu}: [ABORT][55] ([i915#7975] / [i915#8213]) -> [PASS][56]
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-tglu-10/igt@gem_exec_suspend@basic-s4-devices@smem.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-tglu-8/igt@gem_exec_suspend@basic-s4-devices@smem.html
* igt@gem_mmap_gtt@fault-concurrent-x:
- shard-snb: [ABORT][57] ([i915#5161]) -> [PASS][58]
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-snb2/igt@gem_mmap_gtt@fault-concurrent-x.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-snb5/igt@gem_mmap_gtt@fault-concurrent-x.html
* igt@gen9_exec_parse@allowed-single:
- shard-apl: [ABORT][59] ([i915#5566]) -> [PASS][60]
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-apl4/igt@gen9_exec_parse@allowed-single.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-apl4/igt@gen9_exec_parse@allowed-single.html
* igt@i915_module_load@reload-with-fault-injection:
- shard-snb: [ABORT][61] ([i915#4528]) -> [PASS][62]
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-snb6/igt@i915_module_load@reload-with-fault-injection.html
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-snb7/igt@i915_module_load@reload-with-fault-injection.html
* igt@i915_pm_rc6_residency@rc6-idle@rcs0:
- {shard-tglu}: [WARN][63] ([i915#2681]) -> [PASS][64]
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-tglu-7/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-tglu-4/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html
* igt@i915_pm_rpm@dpms-mode-unset-non-lpsp:
- {shard-rkl}: [SKIP][65] ([i915#1397]) -> [PASS][66] +2 similar issues
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-rkl-7/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-rkl-6/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html
* igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-async-flip:
- {shard-rkl}: [FAIL][67] ([i915#3743]) -> [PASS][68]
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-rkl-7/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-rkl-3/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
* igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic:
- shard-glk: [FAIL][69] ([i915#72]) -> [PASS][70]
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-glk5/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-glk8/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
- shard-apl: [FAIL][71] ([i915#2346]) -> [PASS][72]
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-apl4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-apl4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
#### Warnings ####
* igt@i915_pm_dc@dc9-dpms:
- shard-apl: [FAIL][73] ([i915#4275]) -> [SKIP][74] ([fdo#109271])
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-apl6/igt@i915_pm_dc@dc9-dpms.html
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-apl6/igt@i915_pm_dc@dc9-dpms.html
* igt@kms_hdmi_inject@inject-audio:
- shard-snb: [FAIL][75] ([IGT#3]) -> [SKIP][76] ([fdo#109271])
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13209/shard-snb5/igt@kms_hdmi_inject@inject-audio.html
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/shard-snb7/igt@kms_hdmi_inject@inject-audio.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
[IGT#3]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/3
[IGT#6]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/6
[fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
[fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
[fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
[fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
[fdo#109300]: https://bugs.freedesktop.org/show_bug.cgi?id=109300
[fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
[fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
[fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
[fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
[fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[fdo#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#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
[i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
[i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
[i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
[i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658
[i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
[i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
[i915#2724]: https://gitlab.freedesktop.org/drm/intel/issues/2724
[i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
[i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
[i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
[i915#3023]: https://gitlab.freedesktop.org/drm/intel/issues/3023
[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#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
[i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#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#3743]: https://gitlab.freedesktop.org/drm/intel/issues/3743
[i915#3804]: https://gitlab.freedesktop.org/drm/intel/issues/3804
[i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
[i915#3936]: https://gitlab.freedesktop.org/drm/intel/issues/3936
[i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
[i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
[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#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
[i915#4275]: https://gitlab.freedesktop.org/drm/intel/issues/4275
[i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
[i915#4387]: https://gitlab.freedesktop.org/drm/intel/issues/4387
[i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528
[i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
[i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
[i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
[i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
[i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
[i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
[i915#4879]: https://gitlab.freedesktop.org/drm/intel/issues/4879
[i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880
[i915#4881]: https://gitlab.freedesktop.org/drm/intel/issues/4881
[i915#5090]: https://gitlab.freedesktop.org/drm/intel/issues/5090
[i915#5161]: https://gitlab.freedesktop.org/drm/intel/issues/5161
[i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
[i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
[i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
[i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
[i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
[i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
[i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
[i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
[i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
[i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
[i915#5852]: https://gitlab.freedesktop.org/drm/intel/issues/5852
[i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
[i915#6230]: https://gitlab.freedesktop.org/drm/intel/issues/6230
[i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
[i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301
[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#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768
[i915#6786]: https://gitlab.freedesktop.org/drm/intel/issues/6786
[i915#6806]: https://gitlab.freedesktop.org/drm/intel/issues/6806
[i915#6953]: https://gitlab.freedesktop.org/drm/intel/issues/6953
[i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
[i915#7173]: https://gitlab.freedesktop.org/drm/intel/issues/7173
[i915#7178]: https://gitlab.freedesktop.org/drm/intel/issues/7178
[i915#72]: https://gitlab.freedesktop.org/drm/intel/issues/72
[i915#7479]: https://gitlab.freedesktop.org/drm/intel/issues/7479
[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#7707]: https://gitlab.freedesktop.org/drm/intel/issues/7707
[i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
[i915#7742]: https://gitlab.freedesktop.org/drm/intel/issues/7742
[i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
[i915#7975]: https://gitlab.freedesktop.org/drm/intel/issues/7975
[i915#8151]: https://gitlab.freedesktop.org/drm/intel/issues/8151
[i915#8213]: https://gitlab.freedesktop.org/drm/intel/issues/8213
[i915#8228]: https://gitlab.freedesktop.org/drm/intel/issues/8228
[i915#8247]: https://gitlab.freedesktop.org/drm/intel/issues/8247
[i915#8292]: https://gitlab.freedesktop.org/drm/intel/issues/8292
[i915#8304]: https://gitlab.freedesktop.org/drm/intel/issues/8304
[i915#8381]: https://gitlab.freedesktop.org/drm/intel/issues/8381
[i915#8414]: https://gitlab.freedesktop.org/drm/intel/issues/8414
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7314 -> IGTPW_9084
* Piglit: piglit_4509 -> None
CI-20190529: 20190529
CI_DRM_13209: 045f7c1641d711d0cd364db15e760b60bdf85d9e @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_9084: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/index.html
IGT_7314: ab70dfcdecf93a17fcaddb774855f726325fa0dd @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9084/index.html
[-- Attachment #2: Type: text/html, Size: 23040 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/3] lib/igt_fb: switch blitcopy to use lib/i915/i915_blt functions
2023-05-31 19:21 ` [igt-dev] [PATCH i-g-t 2/3] lib/igt_fb: switch blitcopy to use lib/i915/i915_blt functions Juha-Pekka Heikkila
@ 2023-06-07 6:47 ` Zbigniew Kempczyński
0 siblings, 0 replies; 10+ messages in thread
From: Zbigniew Kempczyński @ 2023-06-07 6:47 UTC (permalink / raw)
To: Juha-Pekka Heikkila; +Cc: igt-dev
On Wed, May 31, 2023 at 10:21:03PM +0300, Juha-Pekka Heikkila wrote:
> reduce code duplication
>
> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> ---
> lib/igt_fb.c | 243 +++++++++++++++++++++++++++++++++++++++++++--------
> 1 file changed, 205 insertions(+), 38 deletions(-)
>
> diff --git a/lib/igt_fb.c b/lib/igt_fb.c
> index 71a199d4..b3fc3766 100644
> --- a/lib/igt_fb.c
> +++ b/lib/igt_fb.c
> @@ -35,6 +35,8 @@
> #include "drmtest.h"
> #include "i915/gem_create.h"
> #include "i915/gem_mman.h"
> +#include "i915/i915_blt.h"
> +#include "i915/intel_mocs.h"
> #include "igt_aux.h"
> #include "igt_color_encoding.h"
> #include "igt_fb.h"
> @@ -2453,21 +2455,30 @@ struct fb_blit_upload {
> struct intel_bb *ibb;
> };
>
> -static bool fast_blit_ok(const struct igt_fb *fb)
> +static enum blt_tiling_type fb_tile_to_blt_tile(uint64_t tile)
> {
> - int dev_id = intel_get_drm_devid(fb->fd);
> - int ver = intel_display_ver(dev_id);
> -
> - if (ver < 9)
> - return false;
> -
> - if (ver < 12)
> - return true;
> -
> - if (ver >= 13 && !IS_ALDERLAKE_P(dev_id))
> - return true;
> + switch (igt_fb_mod_to_tiling(tile)) {
> + case I915_TILING_NONE:
> + return T_LINEAR;
> + case I915_TILING_X:
> + return T_XMAJOR;
> + case I915_TILING_Y:
> + return T_YMAJOR;
> + case I915_TILING_4:
> + return T_TILE4;
> + case I915_TILING_Yf:
> + return T_YFMAJOR;
> + default:
> + igt_assert_f(0, "Unknown tiling!\n");
> + }
> +}
>
> - return fb->modifier != I915_FORMAT_MOD_X_TILED;
> +static bool fast_blit_ok(const struct igt_fb *fb)
> +{
> + return blt_has_fast_copy(fb->fd) &&
> + !is_ccs_modifier(fb->modifier) &&
> + blt_block_copy_supports_tiling(fb->fd,
> + fb_tile_to_blt_tile(fb->modifier));
Shouldn't be blt_fast_copy_supports_tiling() here?
> }
>
> static bool blitter_ok(const struct igt_fb *fb)
> @@ -2510,9 +2521,10 @@ static bool use_enginecopy(const struct igt_fb *fb)
> return false;
>
> return fb->modifier == I915_FORMAT_MOD_Yf_TILED ||
> - is_ccs_modifier(fb->modifier) ||
> + (!HAS_FLATCCS(intel_get_drm_devid(fb->fd)) && is_ccs_modifier(fb->modifier)) ||
> (is_xe_device(fb->fd) && fb->modifier == DRM_FORMAT_MOD_LINEAR) ||
> - (is_i915_device(fb->fd) && !gem_has_mappable_ggtt(fb->fd));
> + (is_i915_device(fb->fd) && !gem_has_mappable_ggtt(fb->fd)) ||
> + is_gen12_mc_ccs_modifier(fb->modifier);
> }
>
> static bool use_blitter(const struct igt_fb *fb)
> @@ -2712,12 +2724,115 @@ static void copy_with_engine(struct fb_blit_upload *blit,
> fini_buf(src);
> }
>
> +static struct blt_copy_object *blt_fb_init(const struct igt_fb *fb,
> + uint32_t plane, uint32_t memregion)
> +{
> + uint32_t name, handle;
> + struct blt_copy_object *blt;
> + enum blt_tiling_type blt_tile;
> + uint64_t stride;
> +
> + blt = malloc(sizeof(*blt));
> + igt_assert(blt);
> +
> + name = gem_flink(fb->fd, fb->gem_handle);
> + handle = gem_open(fb->fd, name);
> +
> + blt_tile = fb_tile_to_blt_tile(fb->modifier);
> + stride = blt_tile == T_LINEAR ? fb->strides[plane] : fb->strides[plane] / 4;
> +
> + blt_set_object(blt, handle, fb->size, memregion,
> + intel_get_uc_mocs(fb->fd),
> + blt_tile,
> + is_ccs_modifier(fb->modifier) ? COMPRESSION_ENABLED : COMPRESSION_DISABLED,
> + is_gen12_mc_ccs_modifier(fb->modifier) ? COMPRESSION_TYPE_MEDIA : COMPRESSION_TYPE_3D);
> +
> + blt_set_geom(blt, stride, 0, 0, fb->width, fb->plane_height[plane], 0, 0);
> +
> + blt->plane_offset = fb->offsets[plane];
> +
> + blt->ptr = gem_mmap__device_coherent(fb->fd, handle, 0, fb->size,
> + PROT_READ | PROT_WRITE);
> + return blt;
> +}
> +
> +static enum blt_color_depth blt_get_bpp(const struct igt_fb *fb)
> +{
> + switch (fb->plane_bpp[0]) {
> + case 8:
> + return CD_8bit;
> + case 16:
> + return CD_16bit;
> + case 32:
> + return CD_32bit;
> + case 64:
> + return CD_64bit;
> + case 96:
> + return CD_96bit;
> + case 128:
> + return CD_128bit;
> + default:
> + igt_assert(0);
> + }
> +}
> +
> +#define BLT_TARGET_RC(x) (x.compression == COMPRESSION_ENABLED && \
> + x.compression_type == COMPRESSION_TYPE_3D)
> +
> +#define BLT_TARGET_MC(x) (x.compression == COMPRESSION_ENABLED && \
> + x.compression_type == COMPRESSION_TYPE_MEDIA)
> +
> +static uint32_t blt_compression_format(struct blt_copy_data *blt,
> + const struct igt_fb *fb)
> +{
> + if (blt->src.compression == COMPRESSION_DISABLED &&
> + blt->dst.compression == COMPRESSION_DISABLED)
> + return 0;
> +
> + if (BLT_TARGET_RC(blt->src) || BLT_TARGET_RC(blt->dst)) {
> + switch (blt->color_depth) {
> + case CD_32bit:
> + return 8;
> + default:
> + igt_assert_f(0, "COMPRESSION_TYPE_3D unknown color depth\n");
> + }
> + } else if (BLT_TARGET_MC(blt->src)) {
> + switch (fb->drm_format) {
> + case DRM_FORMAT_XRGB8888:
> + return 8;
> + case DRM_FORMAT_XYUV8888:
> + return 9;
> + case DRM_FORMAT_NV12:
> + return 9;
> + case DRM_FORMAT_P010:
> + case DRM_FORMAT_P012:
> + case DRM_FORMAT_P016:
> + return 8;
> + default:
> + igt_assert_f(0, "COMPRESSION_TYPE_MEDIA unknown format\n");
> + }
> + } else if (BLT_TARGET_MC(blt->dst)) {
> + igt_assert_f(0, "Destination compression not supported on mc ccs\n");
> + } else {
> + igt_assert_f(0, "unknown compression\n");
> + }
> +}
> +
> static void blitcopy(const struct igt_fb *dst_fb,
> const struct igt_fb *src_fb)
> {
> uint32_t src_tiling, dst_tiling;
> uint32_t ctx = 0;
> uint64_t ahnd = 0;
> + const intel_ctx_t *ictx = intel_ctx_create_all_physical(src_fb->fd);
> + struct intel_execution_engine2 *e;
> + uint32_t bb;
> + uint64_t bb_size = 4096;
> + struct blt_copy_data blt = {};
> + struct blt_copy_object *src, *dst;
> + struct blt_block_copy_data_ext ext = {}, *pext = NULL;
> + uint32_t mem_region = HAS_FLATCCS(intel_get_drm_devid(src_fb->fd))
> + ? REGION_LMEM(0) : REGION_SMEM;
>
> igt_assert_eq(dst_fb->fd, src_fb->fd);
> igt_assert_eq(dst_fb->num_planes, src_fb->num_planes);
> @@ -2729,36 +2844,87 @@ static void blitcopy(const struct igt_fb *dst_fb,
> igt_require(gem_has_contexts(dst_fb->fd));
> ctx = gem_context_create(dst_fb->fd);
> ahnd = get_reloc_ahnd(dst_fb->fd, ctx);
> +
> + igt_assert(__gem_create_in_memory_regions(src_fb->fd,
> + &bb,
> + &bb_size,
> + mem_region) == 0);
> }
>
> for (int i = 0; i < dst_fb->num_planes; i++) {
> igt_assert_eq(dst_fb->plane_bpp[i], src_fb->plane_bpp[i]);
> igt_assert_eq(dst_fb->plane_width[i], src_fb->plane_width[i]);
> igt_assert_eq(dst_fb->plane_height[i], src_fb->plane_height[i]);
> - /*
> - * On GEN12+ X-tiled format support is removed from the fast
> - * blit command, so use the XY_SRC blit command for it
> - * instead.
> - */
> - if (fast_blit_ok(src_fb) && fast_blit_ok(dst_fb)) {
> - igt_blitter_fast_copy__raw(dst_fb->fd,
> - ahnd, ctx, NULL,
> - src_fb->gem_handle,
> - src_fb->offsets[i],
> - src_fb->strides[i],
> - src_tiling,
> - 0, 0, /* src_x, src_y */
> - src_fb->size,
> - dst_fb->plane_width[i],
> - dst_fb->plane_height[i],
> - dst_fb->plane_bpp[i],
> - dst_fb->gem_handle,
> - dst_fb->offsets[i],
> - dst_fb->strides[i],
> - dst_tiling,
> - 0, 0 /* dst_x, dst_y */,
> - dst_fb->size);
> +
> + if (ahnd && fast_blit_ok(src_fb) && fast_blit_ok(dst_fb)) {
> + for_each_ctx_engine(src_fb->fd, ictx, e) {
> + if (e->class == I915_ENGINE_CLASS_COPY)
> + break;
> + }
> + igt_assert_f(e, "No copy engine found!\n");
> +
> + memset(&blt, 0, sizeof(blt));
> + blt.color_depth = blt_get_bpp(src_fb);
> +
> + src = blt_fb_init(src_fb, i, mem_region);
> + dst = blt_fb_init(dst_fb, i, mem_region);
> +
> + blt_set_copy_object(&blt.src, src);
> + blt_set_copy_object(&blt.dst, dst);
> +
> + blt_set_batch(&blt.bb, bb, bb_size, mem_region);
> +
> + blt_fast_copy(src_fb->fd, ictx, e, ahnd, &blt);
> + gem_sync(src_fb->fd, blt.dst.handle);
> +
> + blt_destroy_object(src_fb->fd, src);
> + blt_destroy_object(dst_fb->fd, dst);
> + } else if (ahnd && blt_has_block_copy(src_fb->fd)) {
> + /*
> + * On GEN12+ X-tiled format support is removed from
> + * the fast blit command, so use the block copy blit
> + * command for it instead.
> + */
I think this comment is inadequate to DG2 and beyond as X-tiling is back
there.
Apart of that I haven't spotted other issues here:
With above nit addressed:
Acked-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
--
Zbigniew
> + for_each_ctx_engine(src_fb->fd, ictx, e) {
> + if (gem_engine_can_block_copy(src_fb->fd, e))
> + break;
> + }
> + igt_assert_f(e, "No block copy capable engine found!\n");
> +
> + src = blt_fb_init(src_fb, i, mem_region);
> + dst = blt_fb_init(dst_fb, i, mem_region);
> +
> + memset(&blt, 0, sizeof(blt));
> + blt.color_depth = blt_get_bpp(src_fb);
> + blt_set_copy_object(&blt.src, src);
> + blt_set_copy_object(&blt.dst, dst);
> +
> + if (HAS_FLATCCS(intel_get_drm_devid(src_fb->fd))) {
> + blt_set_object_ext(&ext.src,
> + blt_compression_format(&blt, src_fb),
> + src_fb->width, src_fb->height,
> + SURFACE_TYPE_2D);
> +
> + blt_set_object_ext(&ext.dst,
> + blt_compression_format(&blt, dst_fb),
> + dst_fb->width, dst_fb->height,
> + SURFACE_TYPE_2D);
> +
> + pext = &ext;
> + }
> +
> + blt_set_batch(&blt.bb, bb, bb_size, mem_region);
> +
> + blt_block_copy(src_fb->fd, ictx, e, ahnd, &blt, pext);
> + gem_sync(src_fb->fd, blt.dst.handle);
> +
> + blt_destroy_object(src_fb->fd, src);
> + blt_destroy_object(dst_fb->fd, dst);
> } else {
> + /*
> + * If on legacy hardware where relocations are supported
> + * we'll use XY_SRC blit command instead
> + */
> igt_blitter_src_copy(dst_fb->fd,
> ahnd, ctx, NULL,
> src_fb->gem_handle,
> @@ -2782,6 +2948,7 @@ static void blitcopy(const struct igt_fb *dst_fb,
> if (ctx)
> gem_context_destroy(dst_fb->fd, ctx);
> put_ahnd(ahnd);
> + intel_ctx_destroy(src_fb->fd, ictx);
> }
>
> static void free_linear_mapping(struct fb_blit_upload *blit)
> --
> 2.25.1
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [igt-dev] [PATCH i-g-t 1/3] lib/i915/i915_blt: Add offset to block and fast copy
2023-06-13 16:21 [igt-dev] [PATCH i-g-t 0/3] Include i915_blt funtions to blitter path for igt_fb.c Juha-Pekka Heikkila
@ 2023-06-13 16:21 ` Juha-Pekka Heikkila
0 siblings, 0 replies; 10+ messages in thread
From: Juha-Pekka Heikkila @ 2023-06-13 16:21 UTC (permalink / raw)
To: igt-dev
Add offset to src and dst blits, this allow to use i915_blt with multiplane
framebuffers.
Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
---
lib/i915/i915_blt.c | 12 ++++++++----
lib/i915/i915_blt.h | 3 +++
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/lib/i915/i915_blt.c b/lib/i915/i915_blt.c
index ef67fe26..f18b6326 100644
--- a/lib/i915/i915_blt.c
+++ b/lib/i915/i915_blt.c
@@ -708,8 +708,10 @@ uint64_t emit_blt_block_copy(int i915,
igt_assert_f(blt, "block-copy requires data to do blit\n");
alignment = gem_detect_safe_alignment(i915);
- src_offset = get_offset(ahnd, blt->src.handle, blt->src.size, alignment);
- dst_offset = get_offset(ahnd, blt->dst.handle, blt->dst.size, alignment);
+ src_offset = get_offset(ahnd, blt->src.handle, blt->src.size, alignment)
+ + blt->src.plane_offset;
+ dst_offset = get_offset(ahnd, blt->dst.handle, blt->dst.size, alignment)
+ + blt->dst.plane_offset;
bb_offset = get_offset(ahnd, blt->bb.handle, blt->bb.size, alignment);
fill_data(&data, blt, src_offset, dst_offset, ext);
@@ -1179,8 +1181,10 @@ uint64_t emit_blt_fast_copy(int i915,
data.dw03.dst_x2 = blt->dst.x2;
data.dw03.dst_y2 = blt->dst.y2;
- src_offset = get_offset(ahnd, blt->src.handle, blt->src.size, alignment);
- dst_offset = get_offset(ahnd, blt->dst.handle, blt->dst.size, alignment);
+ src_offset = get_offset(ahnd, blt->src.handle, blt->src.size, alignment)
+ + blt->src.plane_offset;
+ dst_offset = get_offset(ahnd, blt->dst.handle, blt->dst.size, alignment)
+ + blt->dst.plane_offset;
bb_offset = get_offset(ahnd, blt->bb.handle, blt->bb.size, alignment);
data.dw04.dst_address_lo = dst_offset;
diff --git a/lib/i915/i915_blt.h b/lib/i915/i915_blt.h
index a5f0edd1..05a80ce6 100644
--- a/lib/i915/i915_blt.h
+++ b/lib/i915/i915_blt.h
@@ -85,6 +85,9 @@ struct blt_copy_object {
/* mapping or null */
uint32_t *ptr;
+
+ /* enable to use multiplane framebuffers */
+ uint32_t plane_offset;
};
struct blt_copy_batch {
--
2.25.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
end of thread, other threads:[~2023-06-13 16:21 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-31 19:21 [igt-dev] [PATCH i-g-t 0/3] Try to have one less blitter path Juha-Pekka Heikkila
2023-05-31 19:21 ` [igt-dev] [PATCH i-g-t 1/3] lib/i915/i915_blt: Add offset to block and fast copy Juha-Pekka Heikkila
2023-05-31 19:21 ` [igt-dev] [PATCH i-g-t 2/3] lib/igt_fb: switch blitcopy to use lib/i915/i915_blt functions Juha-Pekka Heikkila
2023-06-07 6:47 ` Zbigniew Kempczyński
2023-05-31 19:21 ` [igt-dev] [PATCH i-g-t 3/3] lib/igt_fb: use blitter for rendercompression on Intel hw with flat ccs Juha-Pekka Heikkila
2023-05-31 21:31 ` [igt-dev] ✓ Fi.CI.BAT: success for Try to have one less blitter path Patchwork
2023-06-02 12:52 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
-- strict thread matches above, loose matches on Subject: below --
2023-06-13 16:21 [igt-dev] [PATCH i-g-t 0/3] Include i915_blt funtions to blitter path for igt_fb.c Juha-Pekka Heikkila
2023-06-13 16:21 ` [igt-dev] [PATCH i-g-t 1/3] lib/i915/i915_blt: Add offset to block and fast copy Juha-Pekka Heikkila
2023-03-28 18:30 [igt-dev] [PATCH i-g-t 0/3] switch lib/igt_fb.c to use lib/i915/i915_blt functions for blitter on Intel hw Juha-Pekka Heikkila
2023-03-28 18:30 ` [igt-dev] [PATCH i-g-t 1/3] lib/i915/i915_blt: Add offset to block and fast copy Juha-Pekka Heikkila
2023-04-03 6:03 ` Zbigniew Kempczyński
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox