Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t 1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw
@ 2023-12-07 17:11 Ville Syrjala
  2023-12-07 17:11 ` [PATCH i-g-t 2/2] lib/intel_bufops: Don't memcpy() simple structs Ville Syrjala
                   ` (8 more replies)
  0 siblings, 9 replies; 14+ messages in thread
From: Ville Syrjala @ 2023-12-07 17:11 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Go back to using igt_draw mmap stuff to do the mid-test
rendering in the CRC subtest to make it faster. Going
via all the cairo machinery is very very slow, but we'll
leave that codepath in place for non-Intel hw. This makes
the test pass on a DG2 here as we can now produce enough
frames to have some confidence in the results.

Note that some extra care is apparently needed with the order
in which things are done. If we pin the buffers to the display
first the mmap is likely to fail (due to the FB getting pinned
outside the reach of the small BAR presumably). Curiosuly the
mmap itself succeeds but we get a SIGBUS when trying to acccess
the buffer contents. If we touch the FBs first via mmap and only
then pin them to the display everything works correctly.

Cc: Melissa Wen <mwen@igalia.com>
Cc: Alex Hung <alex.hung@amd.com>
Cc: André Almeida <andrealmeid@igalia.com>
Fixes: 8ba806e7e196 ("tests/kms_async_flips: Support more vendors")
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_async_flips.c | 66 +++++++++++++++++++++++++++++------------
 1 file changed, 47 insertions(+), 19 deletions(-)

diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
index 6fddad093913..f7f9add89548 100644
--- a/tests/kms_async_flips.c
+++ b/tests/kms_async_flips.c
@@ -100,6 +100,7 @@ typedef struct {
 	enum pipe pipe;
 	bool alternate_sync_async;
 	bool allow_fail;
+	struct buf_ops *bops;
 } data_t;
 
 static void flip_handler(int fd_, unsigned int sequence, unsigned int tv_sec,
@@ -230,8 +231,6 @@ static void test_init_fbs(data_t *data)
 
 	igt_plane_set_fb(data->plane, &data->bufs[0]);
 	igt_plane_set_size(data->plane, width, height);
-
-	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
 }
 
 static void test_async_flip(data_t *data)
@@ -240,6 +239,8 @@ static void test_async_flip(data_t *data)
 	long long int fps;
 	struct timeval start, end, diff;
 
+	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
+
 	gettimeofday(&start, NULL);
 	frame = 1;
 	do {
@@ -336,6 +337,8 @@ static void test_timestamp(data_t *data)
 	unsigned int seq, seq1;
 	int ret;
 
+	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
+
 	/*
 	 * In older platforms(<= gen10), async address update bit is double buffered.
 	 * So flip timestamp can be verified only from the second flip.
@@ -381,6 +384,8 @@ static void test_cursor(data_t *data)
 	struct igt_fb cursor_fb;
 	struct drm_mode_cursor cur;
 
+	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
+
 	/*
 	 * Intel's PSR2 selective fetch adds other planes to state when
 	 * necessary, causing the async flip to fail because async flip is not
@@ -429,6 +434,8 @@ static void test_invalid(data_t *data)
 	struct igt_fb fb;
 	drmModeModeInfo *mode;
 
+	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
+
 	mode = igt_output_get_mode(data->output);
 	width = mode->hdisplay;
 	height = mode->vdisplay;
@@ -525,28 +532,48 @@ static unsigned int clock_ms(void)
 	return ts.tv_sec * 1000 + ts.tv_nsec / 1000000;
 }
 
+static void paint_fb(data_t *data, struct igt_fb *fb,
+		     int width, int height,
+		     uint32_t color)
+{
+	if (is_intel_device(data->drm_fd)) {
+		igt_draw_rect_fb(data->drm_fd, data->bops, 0, fb,
+				 gem_has_mappable_ggtt(data->drm_fd) ?
+				 IGT_DRAW_MMAP_GTT : IGT_DRAW_MMAP_WC,
+				 0, 0, width, height, color);
+	} else {
+		cairo_t *cr;
+
+		cr = igt_get_cairo_ctx(data->drm_fd, fb);
+		igt_paint_color(cr, 0, 0, width, height,
+				((color & 0xff0000) >> 16) / 255.0,
+				((color & 0xff00) >> 8) / 255.0,
+				((color & 0xff) >> 9) / 255.0);
+		igt_put_cairo_ctx(cr);
+	}
+}
+
 static void test_crc(data_t *data)
 {
 	unsigned int frame = 0;
 	unsigned int start;
-	cairo_t *cr;
-	int ret;
+	int ret, width, height;
+	drmModeModeInfoPtr mode;
+
+	/* make things faster by using a smallish mode */
+	mode = &data->output->config.connector->modes[0];
+	width = mode->hdisplay;
+	height = mode->vdisplay;
 
 	data->flip_count = 0;
 	data->frame_count = 0;
 	data->flip_pending = false;
 
-	cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
-	igt_paint_color(cr, 0, 0, data->bufs[frame].width, data->bufs[frame].height, 1.0, 0.0, 0.0);
-	igt_put_cairo_ctx(cr);
-
-	cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[!frame]);
-	igt_paint_color(cr, 0, 0, data->bufs[!frame].width, data->bufs[!frame].height, 1.0, 0.0, 0.0);
-	igt_put_cairo_ctx(cr);
+	paint_fb(data, &data->bufs[frame], width, height, 0xff0000ff);
+	paint_fb(data, &data->bufs[!frame], width, height, 0xff0000ff);
 
 	ret = drmModeSetCrtc(data->drm_fd, data->crtc_id, data->bufs[frame].fb_id, 0, 0,
-			     &data->output->config.connector->connector_id, 1,
-			     &data->output->config.connector->modes[0]);
+			     &data->output->config.connector->connector_id, 1, mode);
 	igt_assert_eq(ret, 0);
 
 	data->pipe_crc = igt_pipe_crc_new(data->drm_fd,
@@ -562,9 +589,7 @@ static void test_crc(data_t *data)
 
 	while (clock_ms() - start < 2000) {
 		/* fill the next fb with the expected color */
-		cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
-		igt_paint_color(cr, 0, 0, 1, data->bufs[frame].height, 1.0, 0.0, 0.0);
-		igt_put_cairo_ctx(cr);
+		paint_fb(data, &data->bufs[frame], 1, height, 0xff0000ff);
 
 		data->flip_pending = true;
 		ret = drmModePageFlip(data->drm_fd, data->crtc_id, data->bufs[frame].fb_id,
@@ -575,9 +600,7 @@ static void test_crc(data_t *data)
 
 		/* clobber the previous fb which should no longer be scanned out */
 		frame = !frame;
-		cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
-		igt_paint_color_rand(cr, 0, 0, 1, data->bufs[frame].height);
-		igt_put_cairo_ctx(cr);
+		paint_fb(data, &data->bufs[frame], 1, height, rand());
 	}
 
 	igt_pipe_crc_stop(data->pipe_crc);
@@ -644,6 +667,9 @@ igt_main
 
 		igt_require_f(igt_has_drm_cap(data.drm_fd, DRM_CAP_ASYNC_PAGE_FLIP),
 			      "Async Flip is not supported\n");
+
+		if (is_intel_device(data.drm_fd))
+			data.bops = buf_ops_create(data.drm_fd);
 	}
 
 	igt_describe("Verify the async flip functionality and the fps during async flips");
@@ -704,6 +730,8 @@ igt_main
 		for (i = 0; i < NUM_FBS; i++)
 			igt_remove_fb(data.drm_fd, &data.bufs[i]);
 
+		if (is_intel_device(data.drm_fd))
+			buf_ops_destroy(data.bops);
 		igt_display_reset(&data.display);
 		igt_display_commit(&data.display);
 		igt_display_fini(&data.display);
-- 
2.41.0

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH i-g-t 2/2] lib/intel_bufops: Don't memcpy() simple structs
  2023-12-07 17:11 [PATCH i-g-t 1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw Ville Syrjala
@ 2023-12-07 17:11 ` Ville Syrjala
  2023-12-07 20:49 ` ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw Patchwork
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 14+ messages in thread
From: Ville Syrjala @ 2023-12-07 17:11 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Just use a regular assignment when possible instead of
complicating things with memcpy().

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 lib/intel_bufops.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/intel_bufops.c b/lib/intel_bufops.c
index 46eba3fb43a2..6ceea55caa81 100644
--- a/lib/intel_bufops.c
+++ b/lib/intel_bufops.c
@@ -1498,7 +1498,7 @@ static struct buf_ops *__buf_ops_create(int fd, bool check_idempotency)
 	for (int i = 0; i < ARRAY_SIZE(buf_ops_arr); i++) {
 		if (generation >= buf_ops_arr[i].gen_start &&
 		    generation <= buf_ops_arr[i].gen_end) {
-			memcpy(bops, &buf_ops_arr[i], sizeof(*bops));
+			*bops = buf_ops_arr[i];
 			break;
 		}
 	}
-- 
2.41.0

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw
  2023-12-07 17:11 [PATCH i-g-t 1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw Ville Syrjala
  2023-12-07 17:11 ` [PATCH i-g-t 2/2] lib/intel_bufops: Don't memcpy() simple structs Ville Syrjala
@ 2023-12-07 20:49 ` Patchwork
  2023-12-07 23:09 ` ✓ CI.xeBAT: " Patchwork
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2023-12-07 20:49 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 2312 bytes --]

== Series Details ==

Series: series starting with [i-g-t,1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw
URL   : https://patchwork.freedesktop.org/series/127516/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_13995 -> IGTPW_10370
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/index.html

Participating hosts (34 -> 32)
------------------------------

  Missing    (2): bat-adlp-11 fi-snb-2520m 

Known issues
------------

  Here are the changes found in IGTPW_10370 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence:
    - bat-adlp-9:         NOTRUN -> [SKIP][1] ([i915#9826]) +3 other tests skip
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/bat-adlp-9/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html

  * igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1:
    - bat-rplp-1:         [PASS][2] -> [ABORT][3] ([i915#8668])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/bat-rplp-1/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/bat-rplp-1/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [i915#7359]: https://gitlab.freedesktop.org/drm/intel/issues/7359
  [i915#8668]: https://gitlab.freedesktop.org/drm/intel/issues/8668
  [i915#8981]: https://gitlab.freedesktop.org/drm/intel/issues/8981
  [i915#9826]: https://gitlab.freedesktop.org/drm/intel/issues/9826


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_7628 -> IGTPW_10370

  CI-20190529: 20190529
  CI_DRM_13995: 3cc95cce53f9379460ae504a1481a80faf02b33d @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_10370: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/index.html
  IGT_7628: 431c2d2dd5828b25fcbe1c82afbac865f4771aee @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/index.html

[-- Attachment #2: Type: text/html, Size: 2810 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* ✓ CI.xeBAT: success for series starting with [i-g-t,1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw
  2023-12-07 17:11 [PATCH i-g-t 1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw Ville Syrjala
  2023-12-07 17:11 ` [PATCH i-g-t 2/2] lib/intel_bufops: Don't memcpy() simple structs Ville Syrjala
  2023-12-07 20:49 ` ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw Patchwork
@ 2023-12-07 23:09 ` Patchwork
  2023-12-08  5:01 ` [PATCH i-g-t 1/2] " Modem, Bhanuprakash
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2023-12-07 23:09 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 2185 bytes --]

== Series Details ==

Series: series starting with [i-g-t,1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw
URL   : https://patchwork.freedesktop.org/series/127516/
State : success

== Summary ==

CI Bug Log - changes from XEIGT_7628_BAT -> XEIGTPW_10370_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (4 -> 4)
------------------------------

  No changes in participating hosts

Known issues
------------

  Here are the changes found in XEIGTPW_10370_BAT that come from known issues:

### IGT changes ###

#### Possible fixes ####

  * igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size:
    - bat-adlp-7:         [FAIL][1] ([i915#2346]) -> [PASS][2]
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7628/bat-adlp-7/igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10370/bat-adlp-7/igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size.html

  * igt@kms_flip@basic-flip-vs-wf_vblank:
    - bat-adlp-7:         [FAIL][3] ([Intel XE#480]) -> [PASS][4] +1 other test pass
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7628/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank.html
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10370/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank.html

  
  [Intel XE#480]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/480
  [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346


Build changes
-------------

  * IGT: IGT_7628 -> IGTPW_10370
  * Linux: xe-558-2a7dcf14d4abe82a88d846a3bf875e0611d83b04 -> xe-560-ca0510637dca8ce9658a2797626a2a558025ec3c

  IGTPW_10370: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/index.html
  IGT_7628: 431c2d2dd5828b25fcbe1c82afbac865f4771aee @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-558-2a7dcf14d4abe82a88d846a3bf875e0611d83b04: 2a7dcf14d4abe82a88d846a3bf875e0611d83b04
  xe-560-ca0510637dca8ce9658a2797626a2a558025ec3c: ca0510637dca8ce9658a2797626a2a558025ec3c

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10370/index.html

[-- Attachment #2: Type: text/html, Size: 2800 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH i-g-t 1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw
  2023-12-07 17:11 [PATCH i-g-t 1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw Ville Syrjala
                   ` (2 preceding siblings ...)
  2023-12-07 23:09 ` ✓ CI.xeBAT: " Patchwork
@ 2023-12-08  5:01 ` Modem, Bhanuprakash
  2023-12-08 18:29   ` Ville Syrjälä
  2023-12-08  6:56 ` ✓ Fi.CI.IGT: success for series starting with [i-g-t,1/2] " Patchwork
                   ` (4 subsequent siblings)
  8 siblings, 1 reply; 14+ messages in thread
From: Modem, Bhanuprakash @ 2023-12-08  5:01 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev


On 07-12-2023 10:41 pm, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Go back to using igt_draw mmap stuff to do the mid-test
> rendering in the CRC subtest to make it faster. Going
> via all the cairo machinery is very very slow, but we'll
> leave that codepath in place for non-Intel hw. This makes
> the test pass on a DG2 here as we can now produce enough
> frames to have some confidence in the results.
> 
> Note that some extra care is apparently needed with the order
> in which things are done. If we pin the buffers to the display
> first the mmap is likely to fail (due to the FB getting pinned
> outside the reach of the small BAR presumably). Curiosuly the
> mmap itself succeeds but we get a SIGBUS when trying to acccess
> the buffer contents. If we touch the FBs first via mmap and only
> then pin them to the display everything works correctly.
> 
> Cc: Melissa Wen <mwen@igalia.com>
> Cc: Alex Hung <alex.hung@amd.com>
> Cc: André Almeida <andrealmeid@igalia.com>
> Fixes: 8ba806e7e196 ("tests/kms_async_flips: Support more vendors")
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>   tests/kms_async_flips.c | 66 +++++++++++++++++++++++++++++------------
>   1 file changed, 47 insertions(+), 19 deletions(-)
> 
> diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
> index 6fddad093913..f7f9add89548 100644
> --- a/tests/kms_async_flips.c
> +++ b/tests/kms_async_flips.c
> @@ -100,6 +100,7 @@ typedef struct {
>   	enum pipe pipe;
>   	bool alternate_sync_async;
>   	bool allow_fail;
> +	struct buf_ops *bops;
>   } data_t;
>   
>   static void flip_handler(int fd_, unsigned int sequence, unsigned int tv_sec,
> @@ -230,8 +231,6 @@ static void test_init_fbs(data_t *data)
>   
>   	igt_plane_set_fb(data->plane, &data->bufs[0]);
>   	igt_plane_set_size(data->plane, width, height);
> -
> -	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
>   }
>   
>   static void test_async_flip(data_t *data)
> @@ -240,6 +239,8 @@ static void test_async_flip(data_t *data)
>   	long long int fps;
>   	struct timeval start, end, diff;
>   
> +	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> +
>   	gettimeofday(&start, NULL);
>   	frame = 1;
>   	do {
> @@ -336,6 +337,8 @@ static void test_timestamp(data_t *data)
>   	unsigned int seq, seq1;
>   	int ret;
>   
> +	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> +
>   	/*
>   	 * In older platforms(<= gen10), async address update bit is double buffered.
>   	 * So flip timestamp can be verified only from the second flip.
> @@ -381,6 +384,8 @@ static void test_cursor(data_t *data)
>   	struct igt_fb cursor_fb;
>   	struct drm_mode_cursor cur;
>   
> +	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> +
>   	/*
>   	 * Intel's PSR2 selective fetch adds other planes to state when
>   	 * necessary, causing the async flip to fail because async flip is not
> @@ -429,6 +434,8 @@ static void test_invalid(data_t *data)
>   	struct igt_fb fb;
>   	drmModeModeInfo *mode;
>   
> +	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> +
>   	mode = igt_output_get_mode(data->output);
>   	width = mode->hdisplay;
>   	height = mode->vdisplay;
> @@ -525,28 +532,48 @@ static unsigned int clock_ms(void)
>   	return ts.tv_sec * 1000 + ts.tv_nsec / 1000000;
>   }
>   
> +static void paint_fb(data_t *data, struct igt_fb *fb,
> +		     int width, int height,
> +		     uint32_t color)
> +{
> +	if (is_intel_device(data->drm_fd)) {
> +		igt_draw_rect_fb(data->drm_fd, data->bops, 0, fb,
> +				 gem_has_mappable_ggtt(data->drm_fd) ?
---------------------------------^
This is i915 specific, and expected to fail on XE.

Instead, we could use igt_draw_supports_method() here.

- Bhanu

> +				 IGT_DRAW_MMAP_GTT : IGT_DRAW_MMAP_WC,
> +				 0, 0, width, height, color);
> +	} else {
> +		cairo_t *cr;
> +
> +		cr = igt_get_cairo_ctx(data->drm_fd, fb);
> +		igt_paint_color(cr, 0, 0, width, height,
> +				((color & 0xff0000) >> 16) / 255.0,
> +				((color & 0xff00) >> 8) / 255.0,
> +				((color & 0xff) >> 9) / 255.0);
> +		igt_put_cairo_ctx(cr);
> +	}
> +}
> +
>   static void test_crc(data_t *data)
>   {
>   	unsigned int frame = 0;
>   	unsigned int start;
> -	cairo_t *cr;
> -	int ret;
> +	int ret, width, height;
> +	drmModeModeInfoPtr mode;
> +
> +	/* make things faster by using a smallish mode */
> +	mode = &data->output->config.connector->modes[0];
> +	width = mode->hdisplay;
> +	height = mode->vdisplay;
>   
>   	data->flip_count = 0;
>   	data->frame_count = 0;
>   	data->flip_pending = false;
>   
> -	cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
> -	igt_paint_color(cr, 0, 0, data->bufs[frame].width, data->bufs[frame].height, 1.0, 0.0, 0.0);
> -	igt_put_cairo_ctx(cr);
> -
> -	cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[!frame]);
> -	igt_paint_color(cr, 0, 0, data->bufs[!frame].width, data->bufs[!frame].height, 1.0, 0.0, 0.0);
> -	igt_put_cairo_ctx(cr);
> +	paint_fb(data, &data->bufs[frame], width, height, 0xff0000ff);
> +	paint_fb(data, &data->bufs[!frame], width, height, 0xff0000ff);
>   
>   	ret = drmModeSetCrtc(data->drm_fd, data->crtc_id, data->bufs[frame].fb_id, 0, 0,
> -			     &data->output->config.connector->connector_id, 1,
> -			     &data->output->config.connector->modes[0]);
> +			     &data->output->config.connector->connector_id, 1, mode);
>   	igt_assert_eq(ret, 0);
>   
>   	data->pipe_crc = igt_pipe_crc_new(data->drm_fd,
> @@ -562,9 +589,7 @@ static void test_crc(data_t *data)
>   
>   	while (clock_ms() - start < 2000) {
>   		/* fill the next fb with the expected color */
> -		cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
> -		igt_paint_color(cr, 0, 0, 1, data->bufs[frame].height, 1.0, 0.0, 0.0);
> -		igt_put_cairo_ctx(cr);
> +		paint_fb(data, &data->bufs[frame], 1, height, 0xff0000ff);
>   
>   		data->flip_pending = true;
>   		ret = drmModePageFlip(data->drm_fd, data->crtc_id, data->bufs[frame].fb_id,
> @@ -575,9 +600,7 @@ static void test_crc(data_t *data)
>   
>   		/* clobber the previous fb which should no longer be scanned out */
>   		frame = !frame;
> -		cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
> -		igt_paint_color_rand(cr, 0, 0, 1, data->bufs[frame].height);
> -		igt_put_cairo_ctx(cr);
> +		paint_fb(data, &data->bufs[frame], 1, height, rand());
>   	}
>   
>   	igt_pipe_crc_stop(data->pipe_crc);
> @@ -644,6 +667,9 @@ igt_main
>   
>   		igt_require_f(igt_has_drm_cap(data.drm_fd, DRM_CAP_ASYNC_PAGE_FLIP),
>   			      "Async Flip is not supported\n");
> +
> +		if (is_intel_device(data.drm_fd))
> +			data.bops = buf_ops_create(data.drm_fd);
>   	}
>   
>   	igt_describe("Verify the async flip functionality and the fps during async flips");
> @@ -704,6 +730,8 @@ igt_main
>   		for (i = 0; i < NUM_FBS; i++)
>   			igt_remove_fb(data.drm_fd, &data.bufs[i]);
>   
> +		if (is_intel_device(data.drm_fd))
> +			buf_ops_destroy(data.bops);
>   		igt_display_reset(&data.display);
>   		igt_display_commit(&data.display);
>   		igt_display_fini(&data.display);

^ permalink raw reply	[flat|nested] 14+ messages in thread

* ✓ Fi.CI.IGT: success for series starting with [i-g-t,1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw
  2023-12-07 17:11 [PATCH i-g-t 1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw Ville Syrjala
                   ` (3 preceding siblings ...)
  2023-12-08  5:01 ` [PATCH i-g-t 1/2] " Modem, Bhanuprakash
@ 2023-12-08  6:56 ` Patchwork
  2023-12-11 11:09 ` [PATCH i-g-t 1/2] " Karthik B S
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2023-12-08  6:56 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 74285 bytes --]

== Series Details ==

Series: series starting with [i-g-t,1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw
URL   : https://patchwork.freedesktop.org/series/127516/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_13995_full -> IGTPW_10370_full
====================================================

Summary
-------

  **WARNING**

  Minor unknown changes coming with IGTPW_10370_full need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_10370_full, please notify your bug team (I915-ci-infra@lists.freedesktop.org) 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_10370/index.html

Participating hosts (8 -> 8)
------------------------------

  No changes in participating hosts

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_10370_full:

### IGT changes ###

#### Warnings ####

  * igt@kms_content_protection@srm:
    - shard-snb:          [SKIP][1] ([fdo#109271]) -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-snb4/igt@kms_content_protection@srm.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-snb7/igt@kms_content_protection@srm.html

  
Known issues
------------

  Here are the changes found in IGTPW_10370_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@device_reset@unbind-reset-rebind:
    - shard-dg1:          NOTRUN -> [INCOMPLETE][3] ([i915#9408])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg1-17/igt@device_reset@unbind-reset-rebind.html

  * igt@drm_fdinfo@most-busy-check-all@bcs0:
    - shard-dg2:          NOTRUN -> [SKIP][4] ([i915#8414]) +30 other tests skip
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-11/igt@drm_fdinfo@most-busy-check-all@bcs0.html

  * igt@drm_fdinfo@virtual-busy-idle:
    - shard-mtlp:         NOTRUN -> [SKIP][5] ([i915#8414]) +6 other tests skip
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-7/igt@drm_fdinfo@virtual-busy-idle.html

  * igt@gem_busy@semaphore:
    - shard-dg2:          NOTRUN -> [SKIP][6] ([i915#3936])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-2/igt@gem_busy@semaphore.html

  * igt@gem_caching@writes:
    - shard-mtlp:         NOTRUN -> [SKIP][7] ([i915#4873])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-2/igt@gem_caching@writes.html

  * igt@gem_ccs@block-multicopy-compressed:
    - shard-tglu:         NOTRUN -> [SKIP][8] ([i915#9323])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-2/igt@gem_ccs@block-multicopy-compressed.html

  * igt@gem_close_race@multigpu-basic-threads:
    - shard-dg2:          NOTRUN -> [SKIP][9] ([i915#7697])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-7/igt@gem_close_race@multigpu-basic-threads.html
    - shard-tglu:         NOTRUN -> [SKIP][10] ([i915#7697])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-4/igt@gem_close_race@multigpu-basic-threads.html

  * igt@gem_compute@compute-square:
    - shard-mtlp:         NOTRUN -> [SKIP][11] ([i915#9310])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-5/igt@gem_compute@compute-square.html

  * igt@gem_ctx_persistence@hang:
    - shard-mtlp:         NOTRUN -> [SKIP][12] ([i915#8555]) +1 other test skip
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-3/igt@gem_ctx_persistence@hang.html

  * igt@gem_ctx_persistence@heartbeat-hostile:
    - shard-dg2:          NOTRUN -> [SKIP][13] ([i915#8555]) +1 other test skip
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-2/igt@gem_ctx_persistence@heartbeat-hostile.html

  * igt@gem_ctx_sseu@invalid-args:
    - shard-dg2:          NOTRUN -> [SKIP][14] ([i915#280])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-1/igt@gem_ctx_sseu@invalid-args.html

  * igt@gem_ctx_sseu@invalid-sseu:
    - shard-tglu:         NOTRUN -> [SKIP][15] ([i915#280])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-6/igt@gem_ctx_sseu@invalid-sseu.html

  * igt@gem_eio@in-flight-external:
    - shard-mtlp:         [PASS][16] -> [ABORT][17] ([i915#9262])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-mtlp-3/igt@gem_eio@in-flight-external.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-4/igt@gem_eio@in-flight-external.html

  * igt@gem_exec_balancer@bonded-false-hang:
    - shard-dg2:          NOTRUN -> [SKIP][18] ([i915#4812])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-10/igt@gem_exec_balancer@bonded-false-hang.html

  * igt@gem_exec_balancer@bonded-sync:
    - shard-mtlp:         NOTRUN -> [SKIP][19] ([i915#4771])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-6/igt@gem_exec_balancer@bonded-sync.html

  * igt@gem_exec_fair@basic-flow:
    - shard-mtlp:         NOTRUN -> [SKIP][20] ([i915#4473] / [i915#4771])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-1/igt@gem_exec_fair@basic-flow.html

  * igt@gem_exec_fair@basic-none-rrul:
    - shard-dg2:          NOTRUN -> [SKIP][21] ([i915#3539] / [i915#4852]) +8 other tests skip
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-1/igt@gem_exec_fair@basic-none-rrul.html

  * igt@gem_exec_fair@basic-none-solo@rcs0:
    - shard-tglu:         NOTRUN -> [FAIL][22] ([i915#2842])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-7/igt@gem_exec_fair@basic-none-solo@rcs0.html

  * igt@gem_exec_fair@basic-none@bcs0:
    - shard-rkl:          [PASS][23] -> [FAIL][24] ([i915#2842]) +2 other tests fail
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-rkl-4/igt@gem_exec_fair@basic-none@bcs0.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-rkl-4/igt@gem_exec_fair@basic-none@bcs0.html

  * igt@gem_exec_fair@basic-none@rcs0:
    - shard-glk:          NOTRUN -> [FAIL][25] ([i915#2842]) +2 other tests fail
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-glk4/igt@gem_exec_fair@basic-none@rcs0.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-glk:          [PASS][26] -> [FAIL][27] ([i915#2842])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-glk1/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-glk5/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gem_exec_fair@basic-pace-solo@rcs0:
    - shard-tglu:         [PASS][28] -> [FAIL][29] ([i915#2842])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-tglu-6/igt@gem_exec_fair@basic-pace-solo@rcs0.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-5/igt@gem_exec_fair@basic-pace-solo@rcs0.html

  * igt@gem_exec_fence@submit:
    - shard-mtlp:         NOTRUN -> [SKIP][30] ([i915#4812])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-1/igt@gem_exec_fence@submit.html

  * igt@gem_exec_gttfill@multigpu-basic:
    - shard-mtlp:         NOTRUN -> [SKIP][31] ([i915#7697])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-8/igt@gem_exec_gttfill@multigpu-basic.html

  * igt@gem_exec_params@rsvd2-dirt:
    - shard-mtlp:         NOTRUN -> [SKIP][32] ([i915#5107])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-8/igt@gem_exec_params@rsvd2-dirt.html
    - shard-dg2:          NOTRUN -> [SKIP][33] ([fdo#109283] / [i915#5107])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-1/igt@gem_exec_params@rsvd2-dirt.html

  * igt@gem_exec_params@secure-non-master:
    - shard-dg2:          NOTRUN -> [SKIP][34] ([fdo#112283]) +1 other test skip
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-3/igt@gem_exec_params@secure-non-master.html

  * igt@gem_exec_reloc@basic-gtt-noreloc:
    - shard-mtlp:         NOTRUN -> [SKIP][35] ([i915#3281]) +4 other tests skip
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-7/igt@gem_exec_reloc@basic-gtt-noreloc.html

  * igt@gem_exec_reloc@basic-write-read-active:
    - shard-dg2:          NOTRUN -> [SKIP][36] ([i915#3281]) +11 other tests skip
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-7/igt@gem_exec_reloc@basic-write-read-active.html

  * igt@gem_exec_schedule@preempt-queue:
    - shard-dg2:          NOTRUN -> [SKIP][37] ([i915#4537] / [i915#4812])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-7/igt@gem_exec_schedule@preempt-queue.html

  * igt@gem_exec_schedule@preempt-queue-contexts:
    - shard-mtlp:         NOTRUN -> [SKIP][38] ([i915#4537] / [i915#4812])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-8/igt@gem_exec_schedule@preempt-queue-contexts.html

  * igt@gem_fence_thrash@bo-write-verify-x:
    - shard-dg2:          NOTRUN -> [SKIP][39] ([i915#4860]) +2 other tests skip
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-1/igt@gem_fence_thrash@bo-write-verify-x.html
    - shard-dg1:          NOTRUN -> [SKIP][40] ([i915#4860])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg1-15/igt@gem_fence_thrash@bo-write-verify-x.html

  * igt@gem_lmem_swapping@heavy-verify-multi:
    - shard-mtlp:         NOTRUN -> [SKIP][41] ([i915#4613])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-3/igt@gem_lmem_swapping@heavy-verify-multi.html

  * igt@gem_lmem_swapping@random-engines:
    - shard-tglu:         NOTRUN -> [SKIP][42] ([i915#4613]) +1 other test skip
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-9/igt@gem_lmem_swapping@random-engines.html

  * igt@gem_media_vme:
    - shard-mtlp:         NOTRUN -> [SKIP][43] ([i915#284])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-5/igt@gem_media_vme.html
    - shard-dg2:          NOTRUN -> [SKIP][44] ([i915#284])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-3/igt@gem_media_vme.html

  * igt@gem_mmap_gtt@basic:
    - shard-mtlp:         NOTRUN -> [SKIP][45] ([i915#4077]) +4 other tests skip
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-6/igt@gem_mmap_gtt@basic.html

  * igt@gem_mmap_gtt@basic-small-bo:
    - shard-dg2:          NOTRUN -> [SKIP][46] ([i915#4077]) +13 other tests skip
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-11/igt@gem_mmap_gtt@basic-small-bo.html

  * igt@gem_mmap_gtt@big-bo-tiledy:
    - shard-dg1:          NOTRUN -> [SKIP][47] ([i915#4077]) +1 other test skip
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg1-14/igt@gem_mmap_gtt@big-bo-tiledy.html

  * igt@gem_mmap_wc@fault-concurrent:
    - shard-dg2:          NOTRUN -> [SKIP][48] ([i915#4083]) +6 other tests skip
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-7/igt@gem_mmap_wc@fault-concurrent.html

  * igt@gem_mmap_wc@read-write:
    - shard-mtlp:         NOTRUN -> [SKIP][49] ([i915#4083]) +4 other tests skip
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-3/igt@gem_mmap_wc@read-write.html

  * igt@gem_pread@self:
    - shard-dg2:          NOTRUN -> [SKIP][50] ([i915#3282]) +6 other tests skip
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-11/igt@gem_pread@self.html

  * igt@gem_pxp@create-protected-buffer:
    - shard-tglu:         NOTRUN -> [SKIP][51] ([i915#4270])
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-4/igt@gem_pxp@create-protected-buffer.html

  * igt@gem_pxp@regular-baseline-src-copy-readible:
    - shard-dg2:          NOTRUN -> [SKIP][52] ([i915#4270]) +5 other tests skip
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-11/igt@gem_pxp@regular-baseline-src-copy-readible.html

  * igt@gem_pxp@verify-pxp-stale-buf-optout-execution:
    - shard-mtlp:         NOTRUN -> [SKIP][53] ([i915#4270]) +2 other tests skip
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-5/igt@gem_pxp@verify-pxp-stale-buf-optout-execution.html
    - shard-rkl:          NOTRUN -> [SKIP][54] ([i915#4270])
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-rkl-1/igt@gem_pxp@verify-pxp-stale-buf-optout-execution.html

  * igt@gem_readwrite@read-write:
    - shard-mtlp:         NOTRUN -> [SKIP][55] ([i915#3282]) +3 other tests skip
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-6/igt@gem_readwrite@read-write.html

  * igt@gem_render_copy@y-tiled-ccs-to-y-tiled-mc-ccs:
    - shard-mtlp:         NOTRUN -> [SKIP][56] ([i915#8428]) +2 other tests skip
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-3/igt@gem_render_copy@y-tiled-ccs-to-y-tiled-mc-ccs.html

  * igt@gem_tiled_pread_basic:
    - shard-mtlp:         NOTRUN -> [SKIP][57] ([i915#4079]) +1 other test skip
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-2/igt@gem_tiled_pread_basic.html
    - shard-rkl:          NOTRUN -> [SKIP][58] ([i915#3282])
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-rkl-4/igt@gem_tiled_pread_basic.html

  * igt@gem_userptr_blits@invalid-mmap-offset-unsync:
    - shard-rkl:          NOTRUN -> [SKIP][59] ([i915#3297])
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-rkl-7/igt@gem_userptr_blits@invalid-mmap-offset-unsync.html

  * igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy:
    - shard-dg1:          NOTRUN -> [SKIP][60] ([i915#3297] / [i915#4880])
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg1-12/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html

  * igt@gem_userptr_blits@mmap-offset-banned@gtt:
    - shard-mtlp:         NOTRUN -> [SKIP][61] ([i915#3297]) +2 other tests skip
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-2/igt@gem_userptr_blits@mmap-offset-banned@gtt.html

  * igt@gem_userptr_blits@sd-probe:
    - shard-dg2:          NOTRUN -> [SKIP][62] ([i915#3297] / [i915#4958])
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-2/igt@gem_userptr_blits@sd-probe.html

  * igt@gem_userptr_blits@unsync-unmap:
    - shard-dg2:          NOTRUN -> [SKIP][63] ([i915#3297]) +2 other tests skip
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-7/igt@gem_userptr_blits@unsync-unmap.html
    - shard-dg1:          NOTRUN -> [SKIP][64] ([i915#3297])
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg1-18/igt@gem_userptr_blits@unsync-unmap.html

  * igt@gem_userptr_blits@unsync-unmap-cycles:
    - shard-tglu:         NOTRUN -> [SKIP][65] ([i915#3297]) +1 other test skip
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-7/igt@gem_userptr_blits@unsync-unmap-cycles.html

  * igt@gem_userptr_blits@vma-merge:
    - shard-tglu:         NOTRUN -> [FAIL][66] ([i915#3318])
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-7/igt@gem_userptr_blits@vma-merge.html
    - shard-dg2:          NOTRUN -> [FAIL][67] ([i915#3318])
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-1/igt@gem_userptr_blits@vma-merge.html

  * igt@gen7_exec_parse@basic-allowed:
    - shard-tglu:         NOTRUN -> [SKIP][68] ([fdo#109289]) +3 other tests skip
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-6/igt@gen7_exec_parse@basic-allowed.html
    - shard-dg1:          NOTRUN -> [SKIP][69] ([fdo#109289])
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg1-16/igt@gen7_exec_parse@basic-allowed.html

  * igt@gen7_exec_parse@bitmasks:
    - shard-dg2:          NOTRUN -> [SKIP][70] ([fdo#109289]) +5 other tests skip
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-7/igt@gen7_exec_parse@bitmasks.html

  * igt@gen7_exec_parse@load-register-reg:
    - shard-mtlp:         NOTRUN -> [SKIP][71] ([fdo#109289]) +1 other test skip
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-7/igt@gen7_exec_parse@load-register-reg.html

  * igt@gen9_exec_parse@batch-without-end:
    - shard-mtlp:         NOTRUN -> [SKIP][72] ([i915#2856])
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-6/igt@gen9_exec_parse@batch-without-end.html

  * igt@gen9_exec_parse@cmd-crossing-page:
    - shard-tglu:         NOTRUN -> [SKIP][73] ([i915#2527] / [i915#2856]) +2 other tests skip
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-4/igt@gen9_exec_parse@cmd-crossing-page.html

  * igt@gen9_exec_parse@unaligned-access:
    - shard-dg2:          NOTRUN -> [SKIP][74] ([i915#2856]) +5 other tests skip
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-10/igt@gen9_exec_parse@unaligned-access.html

  * igt@gen9_exec_parse@valid-registers:
    - shard-rkl:          NOTRUN -> [SKIP][75] ([i915#2527])
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-rkl-5/igt@gen9_exec_parse@valid-registers.html

  * igt@i915_module_load@reload-with-fault-injection:
    - shard-rkl:          [PASS][76] -> [INCOMPLETE][77] ([i915#9820])
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-rkl-7/igt@i915_module_load@reload-with-fault-injection.html
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-rkl-4/igt@i915_module_load@reload-with-fault-injection.html
    - shard-mtlp:         [PASS][78] -> [ABORT][79] ([i915#9820])
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-mtlp-1/igt@i915_module_load@reload-with-fault-injection.html
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-8/igt@i915_module_load@reload-with-fault-injection.html

  * igt@i915_pm_freq_api@freq-reset-multiple:
    - shard-tglu:         NOTRUN -> [SKIP][80] ([i915#8399])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-2/igt@i915_pm_freq_api@freq-reset-multiple.html

  * igt@i915_pm_rc6_residency@rc6-idle@gt0-rcs0:
    - shard-dg1:          [PASS][81] -> [FAIL][82] ([i915#3591])
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-dg1-14/igt@i915_pm_rc6_residency@rc6-idle@gt0-rcs0.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg1-13/igt@i915_pm_rc6_residency@rc6-idle@gt0-rcs0.html

  * igt@i915_pm_rpm@gem-mmap-type@gtt-smem0:
    - shard-mtlp:         NOTRUN -> [SKIP][83] ([i915#8431])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-7/igt@i915_pm_rpm@gem-mmap-type@gtt-smem0.html

  * igt@i915_pm_rps@min-max-config-loaded:
    - shard-mtlp:         NOTRUN -> [SKIP][84] ([i915#6621])
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-6/igt@i915_pm_rps@min-max-config-loaded.html

  * igt@i915_pm_sseu@full-enable:
    - shard-mtlp:         NOTRUN -> [SKIP][85] ([i915#8437])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-3/igt@i915_pm_sseu@full-enable.html

  * igt@i915_query@query-topology-coherent-slice-mask:
    - shard-dg2:          NOTRUN -> [SKIP][86] ([i915#6188])
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-11/igt@i915_query@query-topology-coherent-slice-mask.html

  * igt@i915_suspend@basic-s3-without-i915:
    - shard-tglu:         NOTRUN -> [INCOMPLETE][87] ([i915#7443])
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-2/igt@i915_suspend@basic-s3-without-i915.html

  * igt@kms_addfb_basic@addfb25-framebuffer-vs-set-tiling:
    - shard-mtlp:         NOTRUN -> [SKIP][88] ([i915#4212])
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-5/igt@kms_addfb_basic@addfb25-framebuffer-vs-set-tiling.html

  * igt@kms_addfb_basic@basic-y-tiled-legacy:
    - shard-dg2:          NOTRUN -> [SKIP][89] ([i915#4215] / [i915#5190])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-2/igt@kms_addfb_basic@basic-y-tiled-legacy.html

  * igt@kms_addfb_basic@framebuffer-vs-set-tiling:
    - shard-dg2:          NOTRUN -> [SKIP][90] ([i915#4212])
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-7/igt@kms_addfb_basic@framebuffer-vs-set-tiling.html

  * igt@kms_addfb_basic@invalid-smem-bo-on-discrete:
    - shard-tglu:         NOTRUN -> [SKIP][91] ([i915#3826])
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-7/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html

  * igt@kms_addfb_basic@tile-pitch-mismatch:
    - shard-dg2:          NOTRUN -> [SKIP][92] ([i915#4212] / [i915#5608])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-7/igt@kms_addfb_basic@tile-pitch-mismatch.html

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-c-dp-4-4-rc-ccs-cc:
    - shard-dg2:          NOTRUN -> [SKIP][93] ([i915#8709]) +11 other tests skip
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-11/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-c-dp-4-4-rc-ccs-cc.html

  * igt@kms_big_fb@4-tiled-8bpp-rotate-90:
    - shard-rkl:          NOTRUN -> [SKIP][94] ([i915#5286]) +1 other test skip
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-rkl-7/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html

  * igt@kms_big_fb@4-tiled-addfb-size-overflow:
    - shard-tglu:         NOTRUN -> [SKIP][95] ([i915#5286])
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-5/igt@kms_big_fb@4-tiled-addfb-size-overflow.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip:
    - shard-tglu:         NOTRUN -> [SKIP][96] ([fdo#111615] / [i915#5286]) +4 other tests skip
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-2/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html

  * igt@kms_big_fb@x-tiled-16bpp-rotate-90:
    - shard-tglu:         NOTRUN -> [SKIP][97] ([fdo#111614]) +1 other test skip
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-2/igt@kms_big_fb@x-tiled-16bpp-rotate-90.html

  * igt@kms_big_fb@x-tiled-32bpp-rotate-270:
    - shard-dg2:          NOTRUN -> [SKIP][98] ([fdo#111614]) +1 other test skip
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-6/igt@kms_big_fb@x-tiled-32bpp-rotate-270.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip:
    - shard-tglu:         [PASS][99] -> [FAIL][100] ([i915#3743])
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-tglu-3/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-9/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
    - shard-tglu:         NOTRUN -> [FAIL][101] ([i915#3743])
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-6/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip:
    - shard-mtlp:         NOTRUN -> [SKIP][102] ([fdo#111615]) +5 other tests skip
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-3/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip:
    - shard-dg2:          NOTRUN -> [SKIP][103] ([i915#5190]) +14 other tests skip
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-7/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html

  * igt@kms_big_fb@yf-tiled-8bpp-rotate-270:
    - shard-tglu:         NOTRUN -> [SKIP][104] ([fdo#111615]) +5 other tests skip
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-5/igt@kms_big_fb@yf-tiled-8bpp-rotate-270.html

  * igt@kms_big_fb@yf-tiled-8bpp-rotate-90:
    - shard-dg2:          NOTRUN -> [SKIP][105] ([i915#4538] / [i915#5190]) +6 other tests skip
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-10/igt@kms_big_fb@yf-tiled-8bpp-rotate-90.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-async-flip:
    - shard-dg1:          NOTRUN -> [SKIP][106] ([i915#4538])
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg1-12/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html

  * igt@kms_ccs@pipe-a-bad-rotation-90-4-tiled-dg2-mc-ccs:
    - shard-tglu:         NOTRUN -> [SKIP][107] ([i915#5354] / [i915#6095]) +36 other tests skip
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-3/igt@kms_ccs@pipe-a-bad-rotation-90-4-tiled-dg2-mc-ccs.html

  * igt@kms_ccs@pipe-a-crc-primary-rotation-180-yf-tiled-ccs:
    - shard-rkl:          NOTRUN -> [SKIP][108] ([i915#5354] / [i915#6095]) +5 other tests skip
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-rkl-1/igt@kms_ccs@pipe-a-crc-primary-rotation-180-yf-tiled-ccs.html

  * igt@kms_ccs@pipe-b-ccs-on-another-bo-y-tiled-gen12-mc-ccs:
    - shard-dg2:          NOTRUN -> [SKIP][109] ([i915#5354]) +103 other tests skip
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-11/igt@kms_ccs@pipe-b-ccs-on-another-bo-y-tiled-gen12-mc-ccs.html

  * igt@kms_ccs@pipe-d-bad-rotation-90-4-tiled-dg2-rc-ccs:
    - shard-dg1:          NOTRUN -> [SKIP][110] ([i915#5354] / [i915#6095]) +2 other tests skip
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg1-19/igt@kms_ccs@pipe-d-bad-rotation-90-4-tiled-dg2-rc-ccs.html

  * igt@kms_ccs@pipe-d-bad-rotation-90-yf-tiled-ccs:
    - shard-mtlp:         NOTRUN -> [SKIP][111] ([i915#5354] / [i915#6095]) +26 other tests skip
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-3/igt@kms_ccs@pipe-d-bad-rotation-90-yf-tiled-ccs.html

  * igt@kms_ccs@pipe-d-crc-primary-basic-yf-tiled-ccs:
    - shard-rkl:          NOTRUN -> [SKIP][112] ([i915#5354]) +8 other tests skip
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-rkl-4/igt@kms_ccs@pipe-d-crc-primary-basic-yf-tiled-ccs.html

  * igt@kms_cdclk@mode-transition:
    - shard-glk:          NOTRUN -> [SKIP][113] ([fdo#109271]) +59 other tests skip
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-glk8/igt@kms_cdclk@mode-transition.html

  * igt@kms_cdclk@plane-scaling@pipe-b-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][114] ([i915#4087]) +3 other tests skip
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-7/igt@kms_cdclk@plane-scaling@pipe-b-hdmi-a-3.html

  * igt@kms_chamelium_color@ctm-red-to-blue:
    - shard-dg1:          NOTRUN -> [SKIP][115] ([fdo#111827])
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg1-16/igt@kms_chamelium_color@ctm-red-to-blue.html

  * igt@kms_chamelium_color@gamma:
    - shard-tglu:         NOTRUN -> [SKIP][116] ([fdo#111827]) +2 other tests skip
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-6/igt@kms_chamelium_color@gamma.html
    - shard-dg2:          NOTRUN -> [SKIP][117] ([fdo#111827]) +4 other tests skip
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-3/igt@kms_chamelium_color@gamma.html

  * igt@kms_chamelium_edid@dp-mode-timings:
    - shard-mtlp:         NOTRUN -> [SKIP][118] ([i915#7828]) +3 other tests skip
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-7/igt@kms_chamelium_edid@dp-mode-timings.html

  * igt@kms_chamelium_frames@vga-frame-dump:
    - shard-dg1:          NOTRUN -> [SKIP][119] ([i915#7828])
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg1-17/igt@kms_chamelium_frames@vga-frame-dump.html

  * igt@kms_chamelium_hpd@vga-hpd-after-suspend:
    - shard-dg2:          NOTRUN -> [SKIP][120] ([i915#7828]) +9 other tests skip
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-11/igt@kms_chamelium_hpd@vga-hpd-after-suspend.html

  * igt@kms_chamelium_hpd@vga-hpd-with-enabled-mode:
    - shard-tglu:         NOTRUN -> [SKIP][121] ([i915#7828]) +6 other tests skip
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-8/igt@kms_chamelium_hpd@vga-hpd-with-enabled-mode.html

  * igt@kms_color@deep-color:
    - shard-dg1:          NOTRUN -> [SKIP][122] ([i915#3555]) +1 other test skip
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg1-16/igt@kms_color@deep-color.html

  * igt@kms_content_protection@atomic:
    - shard-dg1:          NOTRUN -> [SKIP][123] ([i915#7116])
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg1-12/igt@kms_content_protection@atomic.html

  * igt@kms_content_protection@dp-mst-type-1:
    - shard-tglu:         NOTRUN -> [SKIP][124] ([i915#3116] / [i915#3299])
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-2/igt@kms_content_protection@dp-mst-type-1.html

  * igt@kms_content_protection@legacy:
    - shard-tglu:         NOTRUN -> [SKIP][125] ([i915#6944] / [i915#7116] / [i915#7118]) +2 other tests skip
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-4/igt@kms_content_protection@legacy.html

  * igt@kms_content_protection@lic:
    - shard-mtlp:         NOTRUN -> [SKIP][126] ([i915#6944]) +1 other test skip
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-8/igt@kms_content_protection@lic.html

  * igt@kms_content_protection@mei-interface:
    - shard-dg2:          NOTRUN -> [SKIP][127] ([i915#9424])
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-7/igt@kms_content_protection@mei-interface.html

  * igt@kms_content_protection@srm:
    - shard-dg2:          NOTRUN -> [SKIP][128] ([i915#7118]) +1 other test skip
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-10/igt@kms_content_protection@srm.html

  * igt@kms_cursor_crc@cursor-offscreen-512x512:
    - shard-mtlp:         NOTRUN -> [SKIP][129] ([i915#3359]) +1 other test skip
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-2/igt@kms_cursor_crc@cursor-offscreen-512x512.html
    - shard-rkl:          NOTRUN -> [SKIP][130] ([i915#3359])
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-rkl-4/igt@kms_cursor_crc@cursor-offscreen-512x512.html

  * igt@kms_cursor_crc@cursor-random-32x32:
    - shard-mtlp:         NOTRUN -> [SKIP][131] ([i915#3555] / [i915#8814]) +1 other test skip
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-8/igt@kms_cursor_crc@cursor-random-32x32.html

  * igt@kms_cursor_crc@cursor-random-512x512:
    - shard-dg2:          NOTRUN -> [SKIP][132] ([i915#3359]) +2 other tests skip
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-2/igt@kms_cursor_crc@cursor-random-512x512.html
    - shard-tglu:         NOTRUN -> [SKIP][133] ([i915#3359])
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-3/igt@kms_cursor_crc@cursor-random-512x512.html

  * igt@kms_cursor_crc@cursor-rapid-movement-max-size:
    - shard-dg2:          NOTRUN -> [SKIP][134] ([i915#3555]) +8 other tests skip
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-5/igt@kms_cursor_crc@cursor-rapid-movement-max-size.html

  * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic:
    - shard-dg2:          NOTRUN -> [SKIP][135] ([fdo#109274] / [i915#5354]) +11 other tests skip
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-6/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html

  * igt@kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic:
    - shard-rkl:          NOTRUN -> [SKIP][136] ([fdo#111825]) +1 other test skip
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-rkl-4/igt@kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic.html

  * igt@kms_cursor_legacy@cursora-vs-flipb-legacy:
    - shard-mtlp:         NOTRUN -> [SKIP][137] ([i915#9809]) +1 other test skip
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-5/igt@kms_cursor_legacy@cursora-vs-flipb-legacy.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size:
    - shard-tglu:         NOTRUN -> [SKIP][138] ([fdo#109274]) +3 other tests skip
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-3/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html

  * igt@kms_cursor_legacy@cursorb-vs-flipb-toggle:
    - shard-snb:          [PASS][139] -> [SKIP][140] ([fdo#109271] / [fdo#111767])
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-snb7/igt@kms_cursor_legacy@cursorb-vs-flipb-toggle.html
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-snb5/igt@kms_cursor_legacy@cursorb-vs-flipb-toggle.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
    - shard-glk:          [PASS][141] -> [FAIL][142] ([i915#2346])
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-glk5/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-glk4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html

  * igt@kms_dirtyfb@fbc-dirtyfb-ioctl@a-hdmi-a-1:
    - shard-rkl:          NOTRUN -> [SKIP][143] ([i915#9723])
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-rkl-4/igt@kms_dirtyfb@fbc-dirtyfb-ioctl@a-hdmi-a-1.html

  * igt@kms_dirtyfb@fbc-dirtyfb-ioctl@a-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][144] ([i915#9227])
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-1/igt@kms_dirtyfb@fbc-dirtyfb-ioctl@a-hdmi-a-3.html

  * igt@kms_dp_aux_dev:
    - shard-tglu:         NOTRUN -> [SKIP][145] ([i915#1257])
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-7/igt@kms_dp_aux_dev.html

  * igt@kms_dsc@dsc-basic:
    - shard-dg2:          NOTRUN -> [SKIP][146] ([i915#3555] / [i915#3840]) +1 other test skip
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-10/igt@kms_dsc@dsc-basic.html
    - shard-rkl:          NOTRUN -> [SKIP][147] ([i915#3555] / [i915#3840])
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-rkl-3/igt@kms_dsc@dsc-basic.html

  * igt@kms_dsc@dsc-fractional-bpp:
    - shard-mtlp:         NOTRUN -> [SKIP][148] ([i915#3840] / [i915#9688])
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-2/igt@kms_dsc@dsc-fractional-bpp.html

  * igt@kms_fbcon_fbt@psr-suspend:
    - shard-rkl:          NOTRUN -> [SKIP][149] ([i915#3955])
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-rkl-7/igt@kms_fbcon_fbt@psr-suspend.html
    - shard-dg2:          NOTRUN -> [SKIP][150] ([i915#3469])
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-7/igt@kms_fbcon_fbt@psr-suspend.html

  * igt@kms_feature_discovery@chamelium:
    - shard-dg2:          NOTRUN -> [SKIP][151] ([i915#4854])
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-3/igt@kms_feature_discovery@chamelium.html

  * igt@kms_feature_discovery@display-2x:
    - shard-dg2:          NOTRUN -> [SKIP][152] ([i915#1839])
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-11/igt@kms_feature_discovery@display-2x.html

  * igt@kms_fence_pin_leak:
    - shard-mtlp:         NOTRUN -> [SKIP][153] ([i915#4881])
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-6/igt@kms_fence_pin_leak.html

  * igt@kms_flip@2x-flip-vs-absolute-wf_vblank:
    - shard-tglu:         NOTRUN -> [SKIP][154] ([fdo#109274] / [i915#3637]) +3 other tests skip
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-10/igt@kms_flip@2x-flip-vs-absolute-wf_vblank.html

  * igt@kms_flip@2x-flip-vs-blocking-wf-vblank:
    - shard-dg2:          NOTRUN -> [SKIP][155] ([fdo#109274] / [fdo#111767])
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-1/igt@kms_flip@2x-flip-vs-blocking-wf-vblank.html

  * igt@kms_flip@2x-flip-vs-fences:
    - shard-mtlp:         NOTRUN -> [SKIP][156] ([i915#8381])
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-7/igt@kms_flip@2x-flip-vs-fences.html

  * igt@kms_flip@2x-flip-vs-suspend-interruptible:
    - shard-mtlp:         NOTRUN -> [SKIP][157] ([i915#3637]) +3 other tests skip
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-8/igt@kms_flip@2x-flip-vs-suspend-interruptible.html

  * igt@kms_flip@2x-modeset-vs-vblank-race:
    - shard-dg2:          NOTRUN -> [SKIP][158] ([fdo#109274]) +12 other tests skip
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-1/igt@kms_flip@2x-modeset-vs-vblank-race.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling@pipe-a-valid-mode:
    - shard-tglu:         NOTRUN -> [SKIP][159] ([i915#2587] / [i915#2672]) +3 other tests skip
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-5/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling@pipe-a-valid-mode:
    - shard-dg2:          NOTRUN -> [SKIP][160] ([i915#2672]) +3 other tests skip
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-6/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling@pipe-a-default-mode:
    - shard-mtlp:         NOTRUN -> [SKIP][161] ([i915#2672] / [i915#3555])
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-3/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-default-mode:
    - shard-mtlp:         NOTRUN -> [SKIP][162] ([i915#2672]) +1 other test skip
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-3/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-default-mode.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-gtt:
    - shard-mtlp:         NOTRUN -> [SKIP][163] ([i915#8708]) +7 other tests skip
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-4/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-wc:
    - shard-dg2:          NOTRUN -> [SKIP][164] ([i915#8708]) +20 other tests skip
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-3/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-render:
    - shard-snb:          [PASS][165] -> [SKIP][166] ([fdo#109271]) +9 other tests skip
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-snb7/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-render.html
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-snb1/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-render:
    - shard-rkl:          NOTRUN -> [SKIP][167] ([i915#3023]) +4 other tests skip
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-rkl-5/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render:
    - shard-dg1:          NOTRUN -> [SKIP][168] ([i915#3458]) +1 other test skip
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg1-13/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-gtt:
    - shard-dg1:          NOTRUN -> [SKIP][169] ([i915#8708])
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg1-16/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-pwrite:
    - shard-rkl:          NOTRUN -> [SKIP][170] ([fdo#111825] / [i915#1825]) +7 other tests skip
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-rkl-1/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@fbcpsr-tiling-y:
    - shard-dg2:          NOTRUN -> [SKIP][171] ([i915#5460])
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-2/igt@kms_frontbuffer_tracking@fbcpsr-tiling-y.html

  * igt@kms_frontbuffer_tracking@pipe-fbc-rte:
    - shard-tglu:         NOTRUN -> [SKIP][172] ([i915#9766])
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-6/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html
    - shard-dg2:          NOTRUN -> [SKIP][173] ([i915#9766])
   [173]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-3/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html

  * igt@kms_frontbuffer_tracking@plane-fbc-rte:
    - shard-tglu:         NOTRUN -> [SKIP][174] ([i915#9653])
   [174]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-8/igt@kms_frontbuffer_tracking@plane-fbc-rte.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-move:
    - shard-tglu:         NOTRUN -> [SKIP][175] ([fdo#110189]) +16 other tests skip
   [175]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-8/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-move.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-pgflip-blt:
    - shard-mtlp:         NOTRUN -> [SKIP][176] ([i915#1825]) +19 other tests skip
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-6/igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-move:
    - shard-dg1:          NOTRUN -> [SKIP][177] ([fdo#111825]) +1 other test skip
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg1-13/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-move.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-onoff:
    - shard-tglu:         NOTRUN -> [SKIP][178] ([fdo#109280]) +30 other tests skip
   [178]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary:
    - shard-dg2:          NOTRUN -> [SKIP][179] ([i915#3458]) +22 other tests skip
   [179]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-11/igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary.html

  * igt@kms_hdr@bpc-switch:
    - shard-dg1:          NOTRUN -> [SKIP][180] ([i915#3555] / [i915#8228])
   [180]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg1-17/igt@kms_hdr@bpc-switch.html
    - shard-tglu:         NOTRUN -> [SKIP][181] ([i915#3555] / [i915#8228])
   [181]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-10/igt@kms_hdr@bpc-switch.html

  * igt@kms_hdr@static-swap:
    - shard-dg2:          NOTRUN -> [SKIP][182] ([i915#3555] / [i915#8228])
   [182]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-2/igt@kms_hdr@static-swap.html

  * igt@kms_panel_fitting@legacy:
    - shard-tglu:         NOTRUN -> [SKIP][183] ([i915#6301])
   [183]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-9/igt@kms_panel_fitting@legacy.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-modifiers@pipe-a-hdmi-a-3:
    - shard-dg1:          NOTRUN -> [SKIP][184] ([i915#9423]) +3 other tests skip
   [184]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg1-12/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-modifiers@pipe-a-hdmi-a-3.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-a-hdmi-a-1:
    - shard-rkl:          NOTRUN -> [SKIP][185] ([i915#9423]) +5 other tests skip
   [185]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-rkl-7/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-a-hdmi-a-1.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-c-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [SKIP][186] ([i915#9423]) +11 other tests skip
   [186]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-10/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-c-hdmi-a-1.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-d-dp-4:
    - shard-dg2:          NOTRUN -> [SKIP][187] ([i915#5235]) +7 other tests skip
   [187]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-11/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-d-dp-4.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-c-hdmi-a-1:
    - shard-tglu:         NOTRUN -> [SKIP][188] ([i915#5235]) +7 other tests skip
   [188]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-9/igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-c-hdmi-a-1.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-b-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][189] ([i915#5235]) +6 other tests skip
   [189]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-5/igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-b-edp-1.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-d-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][190] ([i915#3555] / [i915#5235])
   [190]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-5/igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-d-edp-1.html

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-a-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][191] ([i915#5235]) +5 other tests skip
   [191]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-rkl-1/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-a-hdmi-a-2.html

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-b-hdmi-a-3:
    - shard-dg1:          NOTRUN -> [SKIP][192] ([i915#5235]) +7 other tests skip
   [192]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg1-13/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-b-hdmi-a-3.html

  * igt@kms_pm_backlight@basic-brightness:
    - shard-tglu:         NOTRUN -> [SKIP][193] ([i915#9812])
   [193]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-8/igt@kms_pm_backlight@basic-brightness.html

  * igt@kms_pm_dc@dc6-dpms:
    - shard-tglu:         [PASS][194] -> [FAIL][195] ([i915#9295])
   [194]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-tglu-9/igt@kms_pm_dc@dc6-dpms.html
   [195]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-3/igt@kms_pm_dc@dc6-dpms.html

  * igt@kms_pm_dc@dc6-psr:
    - shard-tglu:         NOTRUN -> [SKIP][196] ([i915#9685])
   [196]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-4/igt@kms_pm_dc@dc6-psr.html

  * igt@kms_pm_dc@dc9-dpms:
    - shard-tglu:         NOTRUN -> [SKIP][197] ([i915#4281])
   [197]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-3/igt@kms_pm_dc@dc9-dpms.html

  * igt@kms_pm_lpsp@kms-lpsp:
    - shard-dg2:          NOTRUN -> [SKIP][198] ([i915#9340])
   [198]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-7/igt@kms_pm_lpsp@kms-lpsp.html

  * igt@kms_pm_rpm@dpms-mode-unset-non-lpsp:
    - shard-rkl:          NOTRUN -> [SKIP][199] ([i915#9519])
   [199]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-rkl-7/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html
    - shard-mtlp:         NOTRUN -> [SKIP][200] ([i915#9519])
   [200]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-4/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html

  * igt@kms_pm_rpm@dpms-non-lpsp:
    - shard-tglu:         NOTRUN -> [SKIP][201] ([i915#9519])
   [201]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-5/igt@kms_pm_rpm@dpms-non-lpsp.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait:
    - shard-rkl:          [PASS][202] -> [SKIP][203] ([i915#9519]) +3 other tests skip
   [202]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-rkl-3/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html
   [203]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-rkl-5/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html

  * igt@kms_pm_rpm@modeset-pc8-residency-stress:
    - shard-tglu:         NOTRUN -> [SKIP][204] ([fdo#109293] / [fdo#109506])
   [204]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-5/igt@kms_pm_rpm@modeset-pc8-residency-stress.html

  * igt@kms_pm_rpm@pc8-residency:
    - shard-dg2:          NOTRUN -> [SKIP][205] ([fdo#109293] / [fdo#109506])
   [205]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-10/igt@kms_pm_rpm@pc8-residency.html

  * igt@kms_prime@basic-crc-hybrid:
    - shard-mtlp:         NOTRUN -> [SKIP][206] ([i915#6524])
   [206]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-5/igt@kms_prime@basic-crc-hybrid.html

  * igt@kms_prime@basic-crc-vgem:
    - shard-dg2:          NOTRUN -> [SKIP][207] ([i915#6524] / [i915#6805]) +2 other tests skip
   [207]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-7/igt@kms_prime@basic-crc-vgem.html

  * igt@kms_psr2_sf@overlay-plane-move-continuous-sf:
    - shard-tglu:         NOTRUN -> [SKIP][208] ([i915#9683])
   [208]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-5/igt@kms_psr2_sf@overlay-plane-move-continuous-sf.html

  * igt@kms_psr2_su@page_flip-p010:
    - shard-dg2:          NOTRUN -> [SKIP][209] ([i915#9683]) +2 other tests skip
   [209]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-2/igt@kms_psr2_su@page_flip-p010.html
    - shard-tglu:         NOTRUN -> [SKIP][210] ([fdo#109642] / [fdo#111068] / [i915#9683]) +1 other test skip
   [210]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-6/igt@kms_psr2_su@page_flip-p010.html

  * igt@kms_rotation_crc@bad-pixel-format:
    - shard-mtlp:         NOTRUN -> [SKIP][211] ([i915#4235]) +3 other tests skip
   [211]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-4/igt@kms_rotation_crc@bad-pixel-format.html

  * igt@kms_rotation_crc@primary-rotation-270:
    - shard-dg2:          NOTRUN -> [SKIP][212] ([i915#4235]) +1 other test skip
   [212]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-6/igt@kms_rotation_crc@primary-rotation-270.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90:
    - shard-dg2:          NOTRUN -> [SKIP][213] ([i915#4235] / [i915#5190])
   [213]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-11/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html

  * igt@kms_scaling_modes@scaling-mode-full-aspect:
    - shard-tglu:         NOTRUN -> [SKIP][214] ([i915#3555]) +8 other tests skip
   [214]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-3/igt@kms_scaling_modes@scaling-mode-full-aspect.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - shard-snb:          NOTRUN -> [SKIP][215] ([fdo#109271])
   [215]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-snb5/igt@kms_setmode@basic-clone-single-crtc.html

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium:
    - shard-tglu:         NOTRUN -> [SKIP][216] ([i915#8623])
   [216]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-10/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html

  * igt@kms_tv_load_detect@load-detect:
    - shard-tglu:         NOTRUN -> [SKIP][217] ([fdo#109309])
   [217]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-6/igt@kms_tv_load_detect@load-detect.html
    - shard-dg2:          NOTRUN -> [SKIP][218] ([fdo#109309])
   [218]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-3/igt@kms_tv_load_detect@load-detect.html

  * igt@kms_universal_plane@cursor-fb-leak@pipe-b-hdmi-a-1:
    - shard-snb:          [PASS][219] -> [FAIL][220] ([i915#9196])
   [219]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-snb7/igt@kms_universal_plane@cursor-fb-leak@pipe-b-hdmi-a-1.html
   [220]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-snb6/igt@kms_universal_plane@cursor-fb-leak@pipe-b-hdmi-a-1.html

  * igt@kms_vrr@negative-basic:
    - shard-rkl:          NOTRUN -> [SKIP][221] ([i915#3555])
   [221]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-rkl-4/igt@kms_vrr@negative-basic.html

  * igt@perf@global-sseu-config-invalid:
    - shard-dg2:          NOTRUN -> [SKIP][222] ([i915#7387])
   [222]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-3/igt@perf@global-sseu-config-invalid.html

  * igt@perf@unprivileged-single-ctx-counters:
    - shard-rkl:          NOTRUN -> [SKIP][223] ([i915#2433])
   [223]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-rkl-7/igt@perf@unprivileged-single-ctx-counters.html

  * igt@perf_pmu@busy-double-start@ccs0:
    - shard-mtlp:         [PASS][224] -> [FAIL][225] ([i915#4349])
   [224]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-mtlp-1/igt@perf_pmu@busy-double-start@ccs0.html
   [225]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-1/igt@perf_pmu@busy-double-start@ccs0.html

  * igt@perf_pmu@most-busy-idle-check-all@rcs0:
    - shard-dg1:          [PASS][226] -> [FAIL][227] ([i915#9593])
   [226]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-dg1-19/igt@perf_pmu@most-busy-idle-check-all@rcs0.html
   [227]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg1-15/igt@perf_pmu@most-busy-idle-check-all@rcs0.html

  * igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem:
    - shard-dg2:          NOTRUN -> [INCOMPLETE][228] ([i915#5493])
   [228]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-10/igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem.html

  * igt@prime_vgem@basic-fence-flip:
    - shard-dg2:          NOTRUN -> [SKIP][229] ([i915#3708])
   [229]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-11/igt@prime_vgem@basic-fence-flip.html

  * igt@prime_vgem@basic-read:
    - shard-dg2:          NOTRUN -> [SKIP][230] ([i915#3291] / [i915#3708])
   [230]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-1/igt@prime_vgem@basic-read.html

  * igt@prime_vgem@fence-flip-hang:
    - shard-mtlp:         NOTRUN -> [SKIP][231] ([i915#3708])
   [231]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-5/igt@prime_vgem@fence-flip-hang.html

  * igt@tools_test@sysfs_l3_parity:
    - shard-mtlp:         NOTRUN -> [SKIP][232] ([i915#4818])
   [232]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-2/igt@tools_test@sysfs_l3_parity.html

  * igt@v3d/v3d_perfmon@destroy-valid-perfmon:
    - shard-tglu:         NOTRUN -> [SKIP][233] ([fdo#109315] / [i915#2575]) +9 other tests skip
   [233]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-2/igt@v3d/v3d_perfmon@destroy-valid-perfmon.html

  * igt@v3d/v3d_submit_cl@bad-multisync-pad:
    - shard-mtlp:         NOTRUN -> [SKIP][234] ([i915#2575]) +6 other tests skip
   [234]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-3/igt@v3d/v3d_submit_cl@bad-multisync-pad.html

  * igt@v3d/v3d_submit_cl@bad-perfmon:
    - shard-rkl:          NOTRUN -> [SKIP][235] ([fdo#109315]) +1 other test skip
   [235]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-rkl-7/igt@v3d/v3d_submit_cl@bad-perfmon.html

  * igt@v3d/v3d_submit_csd@single-out-sync:
    - shard-dg2:          NOTRUN -> [SKIP][236] ([i915#2575]) +18 other tests skip
   [236]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-7/igt@v3d/v3d_submit_csd@single-out-sync.html

  * igt@v3d/v3d_wait_bo@map-bo-0ns:
    - shard-dg1:          NOTRUN -> [SKIP][237] ([i915#2575])
   [237]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg1-19/igt@v3d/v3d_wait_bo@map-bo-0ns.html

  * igt@vc4/vc4_perfmon@create-perfmon-0:
    - shard-tglu:         NOTRUN -> [SKIP][238] ([i915#2575]) +5 other tests skip
   [238]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-2/igt@vc4/vc4_perfmon@create-perfmon-0.html

  * igt@vc4/vc4_purgeable_bo@mark-unpurgeable-purged:
    - shard-mtlp:         NOTRUN -> [SKIP][239] ([i915#7711]) +3 other tests skip
   [239]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-2/igt@vc4/vc4_purgeable_bo@mark-unpurgeable-purged.html

  * igt@vc4/vc4_tiling@set-bad-modifier:
    - shard-dg2:          NOTRUN -> [SKIP][240] ([i915#7711]) +10 other tests skip
   [240]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-10/igt@vc4/vc4_tiling@set-bad-modifier.html

  
#### Possible fixes ####

  * igt@drm_fdinfo@idle@rcs0:
    - shard-rkl:          [FAIL][241] ([i915#7742]) -> [PASS][242]
   [241]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-rkl-1/igt@drm_fdinfo@idle@rcs0.html
   [242]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-rkl-5/igt@drm_fdinfo@idle@rcs0.html

  * igt@gem_barrier_race@remote-request@rcs0:
    - shard-glk:          [ABORT][243] ([i915#8190]) -> [PASS][244]
   [243]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-glk9/igt@gem_barrier_race@remote-request@rcs0.html
   [244]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-glk2/igt@gem_barrier_race@remote-request@rcs0.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-tglu:         [FAIL][245] ([i915#2842]) -> [PASS][246]
   [245]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-tglu-8/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [246]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-9/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gem_exec_fair@basic-pace@vecs0:
    - shard-rkl:          [FAIL][247] ([i915#2842]) -> [PASS][248]
   [247]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-rkl-4/igt@gem_exec_fair@basic-pace@vecs0.html
   [248]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-rkl-4/igt@gem_exec_fair@basic-pace@vecs0.html

  * igt@gem_exec_fair@basic-throttle@rcs0:
    - shard-glk:          [FAIL][249] ([i915#2842]) -> [PASS][250] +1 other test pass
   [249]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-glk1/igt@gem_exec_fair@basic-throttle@rcs0.html
   [250]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-glk1/igt@gem_exec_fair@basic-throttle@rcs0.html

  * igt@gem_exec_suspend@basic-s4-devices@lmem0:
    - shard-dg2:          [ABORT][251] ([i915#7975] / [i915#8213]) -> [PASS][252]
   [251]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-dg2-6/igt@gem_exec_suspend@basic-s4-devices@lmem0.html
   [252]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-11/igt@gem_exec_suspend@basic-s4-devices@lmem0.html

  * igt@gem_mmap_offset@clear@smem0:
    - shard-mtlp:         [ABORT][253] -> [PASS][254]
   [253]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-mtlp-2/igt@gem_mmap_offset@clear@smem0.html
   [254]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-3/igt@gem_mmap_offset@clear@smem0.html

  * igt@i915_pm_rc6_residency@rc6-idle@gt0-bcs0:
    - shard-dg1:          [FAIL][255] ([i915#3591]) -> [PASS][256]
   [255]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-dg1-14/igt@i915_pm_rc6_residency@rc6-idle@gt0-bcs0.html
   [256]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg1-13/igt@i915_pm_rc6_residency@rc6-idle@gt0-bcs0.html

  * igt@i915_pm_rps@thresholds-idle-park@gt0:
    - shard-tglu:         [INCOMPLETE][257] -> [PASS][258]
   [257]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-tglu-4/igt@i915_pm_rps@thresholds-idle-park@gt0.html
   [258]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-9/igt@i915_pm_rps@thresholds-idle-park@gt0.html

  * igt@kms_async_flips@crc@pipe-d-edp-1:
    - shard-mtlp:         [FAIL][259] ([i915#8247]) -> [PASS][260] +3 other tests pass
   [259]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-mtlp-3/igt@kms_async_flips@crc@pipe-d-edp-1.html
   [260]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-mtlp-8/igt@kms_async_flips@crc@pipe-d-edp-1.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-async-flip:
    - shard-tglu:         [FAIL][261] ([i915#3743]) -> [PASS][262] +1 other test pass
   [261]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-tglu-5/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html
   [262]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-6/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html

  * igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic:
    - shard-snb:          [SKIP][263] ([fdo#109271] / [fdo#111767]) -> [PASS][264]
   [263]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-snb5/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html
   [264]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-snb7/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt:
    - shard-snb:          [SKIP][265] ([fdo#109271]) -> [PASS][266] +7 other tests pass
   [265]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-snb6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt.html
   [266]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-snb7/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt.html

  * igt@kms_pm_rpm@dpms-non-lpsp:
    - shard-rkl:          [SKIP][267] ([i915#9519]) -> [PASS][268]
   [267]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-rkl-7/igt@kms_pm_rpm@dpms-non-lpsp.html
   [268]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-rkl-1/igt@kms_pm_rpm@dpms-non-lpsp.html

  * igt@kms_pm_rpm@modeset-lpsp:
    - shard-dg2:          [SKIP][269] ([i915#9519]) -> [PASS][270]
   [269]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-dg2-3/igt@kms_pm_rpm@modeset-lpsp.html
   [270]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg2-10/igt@kms_pm_rpm@modeset-lpsp.html

  * igt@kms_universal_plane@cursor-fb-leak@pipe-d-hdmi-a-1:
    - shard-tglu:         [FAIL][271] ([i915#9196]) -> [PASS][272]
   [271]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-tglu-2/igt@kms_universal_plane@cursor-fb-leak@pipe-d-hdmi-a-1.html
   [272]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-tglu-6/igt@kms_universal_plane@cursor-fb-leak@pipe-d-hdmi-a-1.html

  
#### Warnings ####

  * igt@i915_module_load@reload-with-fault-injection:
    - shard-dg1:          [INCOMPLETE][273] -> [INCOMPLETE][274] ([i915#9820])
   [273]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-dg1-12/igt@i915_module_load@reload-with-fault-injection.html
   [274]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-dg1-15/igt@i915_module_load@reload-with-fault-injection.html

  * igt@kms_pm_dc@dc9-dpms:
    - shard-rkl:          [SKIP][275] ([i915#3361]) -> [SKIP][276] ([i915#4281])
   [275]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13995/shard-rkl-3/igt@kms_pm_dc@dc9-dpms.html
   [276]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/shard-rkl-5/igt@kms_pm_dc@dc9-dpms.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
  [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#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109293]: https://bugs.freedesktop.org/show_bug.cgi?id=109293
  [fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
  [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#111767]: https://bugs.freedesktop.org/show_bug.cgi?id=111767
  [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#1257]: https://gitlab.freedesktop.org/drm/intel/issues/1257
  [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#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#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#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116
  [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
  [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#3361]: https://gitlab.freedesktop.org/drm/intel/issues/3361
  [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#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#3743]: https://gitlab.freedesktop.org/drm/intel/issues/3743
  [i915#3826]: https://gitlab.freedesktop.org/drm/intel/issues/3826
  [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
  [i915#3936]: https://gitlab.freedesktop.org/drm/intel/issues/3936
  [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4087]: https://gitlab.freedesktop.org/drm/intel/issues/4087
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215
  [i915#4235]: https://gitlab.freedesktop.org/drm/intel/issues/4235
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
  [i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
  [i915#4473]: https://gitlab.freedesktop.org/drm/intel/issues/4473
  [i915#4537]: https://gitlab.freedesktop.org/drm/intel/issues/4537
  [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
  [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#4818]: https://gitlab.freedesktop.org/drm/intel/issues/4818
  [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
  [i915#4854]: https://gitlab.freedesktop.org/drm/intel/issues/4854
  [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
  [i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873
  [i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880
  [i915#4881]: https://gitlab.freedesktop.org/drm/intel/issues/4881
  [i915#4958]: https://gitlab.freedesktop.org/drm/intel/issues/4958
  [i915#5107]: https://gitlab.freedesktop.org/drm/intel/issues/5107
  [i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
  [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
  [i915#5460]: https://gitlab.freedesktop.org/drm/intel/issues/5460
  [i915#5493]: https://gitlab.freedesktop.org/drm/intel/issues/5493
  [i915#5608]: https://gitlab.freedesktop.org/drm/intel/issues/5608
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#6188]: https://gitlab.freedesktop.org/drm/intel/issues/6188
  [i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301
  [i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524
  [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
  [i915#6805]: https://gitlab.freedesktop.org/drm/intel/issues/6805
  [i915#6944]: https://gitlab.freedesktop.org/drm/intel/issues/6944
  [i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
  [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
  [i915#7387]: https://gitlab.freedesktop.org/drm/intel/issues/7387
  [i915#7443]: https://gitlab.freedesktop.org/drm/intel/issues/7443
  [i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697
  [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#8190]: https://gitlab.freedesktop.org/drm/intel/issues/8190
  [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#8381]: https://gitlab.freedesktop.org/drm/intel/issues/8381
  [i915#8399]: https://gitlab.freedesktop.org/drm/intel/issues/8399
  [i915#8414]: https://gitlab.freedesktop.org/drm/intel/issues/8414
  [i915#8428]: https://gitlab.freedesktop.org/drm/intel/issues/8428
  [i915#8431]: https://gitlab.freedesktop.org/drm/intel/issues/8431
  [i915#8437]: https://gitlab.freedesktop.org/drm/intel/issues/8437
  [i915#8555]: https://gitlab.freedesktop.org/drm/intel/issues/8555
  [i915#8623]: https://gitlab.freedesktop.org/drm/intel/issues/8623
  [i915#8708]: https://gitlab.freedesktop.org/drm/intel/issues/8708
  [i915#8709]: https://gitlab.freedesktop.org/drm/intel/issues/8709
  [i915#8814]: https://gitlab.freedesktop.org/drm/intel/issues/8814
  [i915#9196]: https://gitlab.freedesktop.org/drm/intel/issues/9196
  [i915#9227]: https://gitlab.freedesktop.org/drm/intel/issues/9227
  [i915#9262]: https://gitlab.freedesktop.org/drm/intel/issues/9262
  [i915#9295]: https://gitlab.freedesktop.org/drm/intel/issues/9295
  [i915#9310]: https://gitlab.freedesktop.org/drm/intel/issues/9310
  [i915#9323]: https://gitlab.freedesktop.org/drm/intel/issues/9323
  [i915#9340]: https://gitlab.freedesktop.org/drm/intel/issues/9340
  [i915#9408]: https://gitlab.freedesktop.org/drm/intel/issues/9408
  [i915#9423]: https://gitlab.freedesktop.org/drm/intel/issues/9423
  [i915#9424]: https://gitlab.freedesktop.org/drm/intel/issues/9424
  [i915#9519]: https://gitlab.freedesktop.org/drm/intel/issues/9519
  [i915#9593]: https://gitlab.freedesktop.org/drm/intel/issues/9593
  [i915#9653]: https://gitlab.freedesktop.org/drm/intel/issues/9653
  [i915#9673]: https://gitlab.freedesktop.org/drm/intel/issues/9673
  [i915#9683]: https://gitlab.freedesktop.org/drm/intel/issues/9683
  [i915#9685]: https://gitlab.freedesktop.org/drm/intel/issues/9685
  [i915#9688]: https://gitlab.freedesktop.org/drm/intel/issues/9688
  [i915#9723]: https://gitlab.freedesktop.org/drm/intel/issues/9723
  [i915#9732]: https://gitlab.freedesktop.org/drm/intel/issues/9732
  [i915#9766]: https://gitlab.freedesktop.org/drm/intel/issues/9766
  [i915#9808]: https://gitlab.freedesktop.org/drm/intel/issues/9808
  [i915#9809]: https://gitlab.freedesktop.org/drm/intel/issues/9809
  [i915#9812]: https://gitlab.freedesktop.org/drm/intel/issues/9812
  [i915#9820]: https://gitlab.freedesktop.org/drm/intel/issues/9820


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_7628 -> IGTPW_10370
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_13995: 3cc95cce53f9379460ae504a1481a80faf02b33d @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_10370: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10370/index.html
  IGT_7628: 431c2d2dd5828b25fcbe1c82afbac865f4771aee @ 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_10370/index.html

[-- Attachment #2: Type: text/html, Size: 90291 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH i-g-t 1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw
  2023-12-08  5:01 ` [PATCH i-g-t 1/2] " Modem, Bhanuprakash
@ 2023-12-08 18:29   ` Ville Syrjälä
  2023-12-19  1:00     ` Ville Syrjälä
  0 siblings, 1 reply; 14+ messages in thread
From: Ville Syrjälä @ 2023-12-08 18:29 UTC (permalink / raw)
  To: Modem, Bhanuprakash; +Cc: igt-dev

On Fri, Dec 08, 2023 at 10:31:35AM +0530, Modem, Bhanuprakash wrote:
> 
> On 07-12-2023 10:41 pm, Ville Syrjala wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > Go back to using igt_draw mmap stuff to do the mid-test
> > rendering in the CRC subtest to make it faster. Going
> > via all the cairo machinery is very very slow, but we'll
> > leave that codepath in place for non-Intel hw. This makes
> > the test pass on a DG2 here as we can now produce enough
> > frames to have some confidence in the results.
> > 
> > Note that some extra care is apparently needed with the order
> > in which things are done. If we pin the buffers to the display
> > first the mmap is likely to fail (due to the FB getting pinned
> > outside the reach of the small BAR presumably). Curiosuly the
> > mmap itself succeeds but we get a SIGBUS when trying to acccess
> > the buffer contents. If we touch the FBs first via mmap and only
> > then pin them to the display everything works correctly.
> > 
> > Cc: Melissa Wen <mwen@igalia.com>
> > Cc: Alex Hung <alex.hung@amd.com>
> > Cc: André Almeida <andrealmeid@igalia.com>
> > Fixes: 8ba806e7e196 ("tests/kms_async_flips: Support more vendors")
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> >   tests/kms_async_flips.c | 66 +++++++++++++++++++++++++++++------------
> >   1 file changed, 47 insertions(+), 19 deletions(-)
> > 
> > diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
> > index 6fddad093913..f7f9add89548 100644
> > --- a/tests/kms_async_flips.c
> > +++ b/tests/kms_async_flips.c
> > @@ -100,6 +100,7 @@ typedef struct {
> >   	enum pipe pipe;
> >   	bool alternate_sync_async;
> >   	bool allow_fail;
> > +	struct buf_ops *bops;
> >   } data_t;
> >   
> >   static void flip_handler(int fd_, unsigned int sequence, unsigned int tv_sec,
> > @@ -230,8 +231,6 @@ static void test_init_fbs(data_t *data)
> >   
> >   	igt_plane_set_fb(data->plane, &data->bufs[0]);
> >   	igt_plane_set_size(data->plane, width, height);
> > -
> > -	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> >   }
> >   
> >   static void test_async_flip(data_t *data)
> > @@ -240,6 +239,8 @@ static void test_async_flip(data_t *data)
> >   	long long int fps;
> >   	struct timeval start, end, diff;
> >   
> > +	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> > +
> >   	gettimeofday(&start, NULL);
> >   	frame = 1;
> >   	do {
> > @@ -336,6 +337,8 @@ static void test_timestamp(data_t *data)
> >   	unsigned int seq, seq1;
> >   	int ret;
> >   
> > +	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> > +
> >   	/*
> >   	 * In older platforms(<= gen10), async address update bit is double buffered.
> >   	 * So flip timestamp can be verified only from the second flip.
> > @@ -381,6 +384,8 @@ static void test_cursor(data_t *data)
> >   	struct igt_fb cursor_fb;
> >   	struct drm_mode_cursor cur;
> >   
> > +	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> > +
> >   	/*
> >   	 * Intel's PSR2 selective fetch adds other planes to state when
> >   	 * necessary, causing the async flip to fail because async flip is not
> > @@ -429,6 +434,8 @@ static void test_invalid(data_t *data)
> >   	struct igt_fb fb;
> >   	drmModeModeInfo *mode;
> >   
> > +	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> > +
> >   	mode = igt_output_get_mode(data->output);
> >   	width = mode->hdisplay;
> >   	height = mode->vdisplay;
> > @@ -525,28 +532,48 @@ static unsigned int clock_ms(void)
> >   	return ts.tv_sec * 1000 + ts.tv_nsec / 1000000;
> >   }
> >   
> > +static void paint_fb(data_t *data, struct igt_fb *fb,
> > +		     int width, int height,
> > +		     uint32_t color)
> > +{
> > +	if (is_intel_device(data->drm_fd)) {
> > +		igt_draw_rect_fb(data->drm_fd, data->bops, 0, fb,
> > +				 gem_has_mappable_ggtt(data->drm_fd) ?
> ---------------------------------^
> This is i915 specific, and expected to fail on XE.

Sigh. I did ask for a unified library API for i915 and xe but I guess
that still didn't happen :(

> 
> Instead, we could use igt_draw_supports_method() here.
> 
> - Bhanu
> 
> > +				 IGT_DRAW_MMAP_GTT : IGT_DRAW_MMAP_WC,
> > +				 0, 0, width, height, color);
> > +	} else {
> > +		cairo_t *cr;
> > +
> > +		cr = igt_get_cairo_ctx(data->drm_fd, fb);
> > +		igt_paint_color(cr, 0, 0, width, height,
> > +				((color & 0xff0000) >> 16) / 255.0,
> > +				((color & 0xff00) >> 8) / 255.0,
> > +				((color & 0xff) >> 9) / 255.0);
> > +		igt_put_cairo_ctx(cr);
> > +	}
> > +}
> > +
> >   static void test_crc(data_t *data)
> >   {
> >   	unsigned int frame = 0;
> >   	unsigned int start;
> > -	cairo_t *cr;
> > -	int ret;
> > +	int ret, width, height;
> > +	drmModeModeInfoPtr mode;
> > +
> > +	/* make things faster by using a smallish mode */
> > +	mode = &data->output->config.connector->modes[0];
> > +	width = mode->hdisplay;
> > +	height = mode->vdisplay;
> >   
> >   	data->flip_count = 0;
> >   	data->frame_count = 0;
> >   	data->flip_pending = false;
> >   
> > -	cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
> > -	igt_paint_color(cr, 0, 0, data->bufs[frame].width, data->bufs[frame].height, 1.0, 0.0, 0.0);
> > -	igt_put_cairo_ctx(cr);
> > -
> > -	cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[!frame]);
> > -	igt_paint_color(cr, 0, 0, data->bufs[!frame].width, data->bufs[!frame].height, 1.0, 0.0, 0.0);
> > -	igt_put_cairo_ctx(cr);
> > +	paint_fb(data, &data->bufs[frame], width, height, 0xff0000ff);
> > +	paint_fb(data, &data->bufs[!frame], width, height, 0xff0000ff);
> >   
> >   	ret = drmModeSetCrtc(data->drm_fd, data->crtc_id, data->bufs[frame].fb_id, 0, 0,
> > -			     &data->output->config.connector->connector_id, 1,
> > -			     &data->output->config.connector->modes[0]);
> > +			     &data->output->config.connector->connector_id, 1, mode);
> >   	igt_assert_eq(ret, 0);
> >   
> >   	data->pipe_crc = igt_pipe_crc_new(data->drm_fd,
> > @@ -562,9 +589,7 @@ static void test_crc(data_t *data)
> >   
> >   	while (clock_ms() - start < 2000) {
> >   		/* fill the next fb with the expected color */
> > -		cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
> > -		igt_paint_color(cr, 0, 0, 1, data->bufs[frame].height, 1.0, 0.0, 0.0);
> > -		igt_put_cairo_ctx(cr);
> > +		paint_fb(data, &data->bufs[frame], 1, height, 0xff0000ff);
> >   
> >   		data->flip_pending = true;
> >   		ret = drmModePageFlip(data->drm_fd, data->crtc_id, data->bufs[frame].fb_id,
> > @@ -575,9 +600,7 @@ static void test_crc(data_t *data)
> >   
> >   		/* clobber the previous fb which should no longer be scanned out */
> >   		frame = !frame;
> > -		cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
> > -		igt_paint_color_rand(cr, 0, 0, 1, data->bufs[frame].height);
> > -		igt_put_cairo_ctx(cr);
> > +		paint_fb(data, &data->bufs[frame], 1, height, rand());
> >   	}
> >   
> >   	igt_pipe_crc_stop(data->pipe_crc);
> > @@ -644,6 +667,9 @@ igt_main
> >   
> >   		igt_require_f(igt_has_drm_cap(data.drm_fd, DRM_CAP_ASYNC_PAGE_FLIP),
> >   			      "Async Flip is not supported\n");
> > +
> > +		if (is_intel_device(data.drm_fd))
> > +			data.bops = buf_ops_create(data.drm_fd);
> >   	}
> >   
> >   	igt_describe("Verify the async flip functionality and the fps during async flips");
> > @@ -704,6 +730,8 @@ igt_main
> >   		for (i = 0; i < NUM_FBS; i++)
> >   			igt_remove_fb(data.drm_fd, &data.bufs[i]);
> >   
> > +		if (is_intel_device(data.drm_fd))
> > +			buf_ops_destroy(data.bops);
> >   		igt_display_reset(&data.display);
> >   		igt_display_commit(&data.display);
> >   		igt_display_fini(&data.display);

-- 
Ville Syrjälä
Intel

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH i-g-t 1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw
  2023-12-07 17:11 [PATCH i-g-t 1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw Ville Syrjala
                   ` (4 preceding siblings ...)
  2023-12-08  6:56 ` ✓ Fi.CI.IGT: success for series starting with [i-g-t,1/2] " Patchwork
@ 2023-12-11 11:09 ` Karthik B S
  2023-12-19  1:02 ` [PATCH i-g-t v2 " Ville Syrjala
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 14+ messages in thread
From: Karthik B S @ 2023-12-11 11:09 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

Tested locally that this patch also fixes 
https://gitlab.freedesktop.org/drm/intel/-/issues/8561 as well, which 
was consistently seen on high refresh rate eDP panel on MTL.

Tested-by: Karthik B S <karthik.b.s@intel.com>

On 12/7/2023 10:41 PM, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Go back to using igt_draw mmap stuff to do the mid-test
> rendering in the CRC subtest to make it faster. Going
> via all the cairo machinery is very very slow, but we'll
> leave that codepath in place for non-Intel hw. This makes
> the test pass on a DG2 here as we can now produce enough
> frames to have some confidence in the results.
>
> Note that some extra care is apparently needed with the order
> in which things are done. If we pin the buffers to the display
> first the mmap is likely to fail (due to the FB getting pinned
> outside the reach of the small BAR presumably). Curiosuly the
> mmap itself succeeds but we get a SIGBUS when trying to acccess
> the buffer contents. If we touch the FBs first via mmap and only
> then pin them to the display everything works correctly.
>
> Cc: Melissa Wen <mwen@igalia.com>
> Cc: Alex Hung <alex.hung@amd.com>
> Cc: André Almeida <andrealmeid@igalia.com>
> Fixes: 8ba806e7e196 ("tests/kms_async_flips: Support more vendors")
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>   tests/kms_async_flips.c | 66 +++++++++++++++++++++++++++++------------
>   1 file changed, 47 insertions(+), 19 deletions(-)
>
> diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
> index 6fddad093913..f7f9add89548 100644
> --- a/tests/kms_async_flips.c
> +++ b/tests/kms_async_flips.c
> @@ -100,6 +100,7 @@ typedef struct {
>   	enum pipe pipe;
>   	bool alternate_sync_async;
>   	bool allow_fail;
> +	struct buf_ops *bops;
>   } data_t;
>   
>   static void flip_handler(int fd_, unsigned int sequence, unsigned int tv_sec,
> @@ -230,8 +231,6 @@ static void test_init_fbs(data_t *data)
>   
>   	igt_plane_set_fb(data->plane, &data->bufs[0]);
>   	igt_plane_set_size(data->plane, width, height);
> -
> -	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
>   }
>   
>   static void test_async_flip(data_t *data)
> @@ -240,6 +239,8 @@ static void test_async_flip(data_t *data)
>   	long long int fps;
>   	struct timeval start, end, diff;
>   
> +	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> +
>   	gettimeofday(&start, NULL);
>   	frame = 1;
>   	do {
> @@ -336,6 +337,8 @@ static void test_timestamp(data_t *data)
>   	unsigned int seq, seq1;
>   	int ret;
>   
> +	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> +
>   	/*
>   	 * In older platforms(<= gen10), async address update bit is double buffered.
>   	 * So flip timestamp can be verified only from the second flip.
> @@ -381,6 +384,8 @@ static void test_cursor(data_t *data)
>   	struct igt_fb cursor_fb;
>   	struct drm_mode_cursor cur;
>   
> +	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> +
>   	/*
>   	 * Intel's PSR2 selective fetch adds other planes to state when
>   	 * necessary, causing the async flip to fail because async flip is not
> @@ -429,6 +434,8 @@ static void test_invalid(data_t *data)
>   	struct igt_fb fb;
>   	drmModeModeInfo *mode;
>   
> +	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> +
>   	mode = igt_output_get_mode(data->output);
>   	width = mode->hdisplay;
>   	height = mode->vdisplay;
> @@ -525,28 +532,48 @@ static unsigned int clock_ms(void)
>   	return ts.tv_sec * 1000 + ts.tv_nsec / 1000000;
>   }
>   
> +static void paint_fb(data_t *data, struct igt_fb *fb,
> +		     int width, int height,
> +		     uint32_t color)
> +{
> +	if (is_intel_device(data->drm_fd)) {
> +		igt_draw_rect_fb(data->drm_fd, data->bops, 0, fb,
> +				 gem_has_mappable_ggtt(data->drm_fd) ?
> +				 IGT_DRAW_MMAP_GTT : IGT_DRAW_MMAP_WC,
> +				 0, 0, width, height, color);
> +	} else {
> +		cairo_t *cr;
> +
> +		cr = igt_get_cairo_ctx(data->drm_fd, fb);
> +		igt_paint_color(cr, 0, 0, width, height,
> +				((color & 0xff0000) >> 16) / 255.0,
> +				((color & 0xff00) >> 8) / 255.0,
> +				((color & 0xff) >> 9) / 255.0);
> +		igt_put_cairo_ctx(cr);
> +	}
> +}
> +
>   static void test_crc(data_t *data)
>   {
>   	unsigned int frame = 0;
>   	unsigned int start;
> -	cairo_t *cr;
> -	int ret;
> +	int ret, width, height;
> +	drmModeModeInfoPtr mode;
> +
> +	/* make things faster by using a smallish mode */
> +	mode = &data->output->config.connector->modes[0];
> +	width = mode->hdisplay;
> +	height = mode->vdisplay;
>   
>   	data->flip_count = 0;
>   	data->frame_count = 0;
>   	data->flip_pending = false;
>   
> -	cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
> -	igt_paint_color(cr, 0, 0, data->bufs[frame].width, data->bufs[frame].height, 1.0, 0.0, 0.0);
> -	igt_put_cairo_ctx(cr);
> -
> -	cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[!frame]);
> -	igt_paint_color(cr, 0, 0, data->bufs[!frame].width, data->bufs[!frame].height, 1.0, 0.0, 0.0);
> -	igt_put_cairo_ctx(cr);
> +	paint_fb(data, &data->bufs[frame], width, height, 0xff0000ff);
> +	paint_fb(data, &data->bufs[!frame], width, height, 0xff0000ff);
>   
>   	ret = drmModeSetCrtc(data->drm_fd, data->crtc_id, data->bufs[frame].fb_id, 0, 0,
> -			     &data->output->config.connector->connector_id, 1,
> -			     &data->output->config.connector->modes[0]);
> +			     &data->output->config.connector->connector_id, 1, mode);
>   	igt_assert_eq(ret, 0);
>   
>   	data->pipe_crc = igt_pipe_crc_new(data->drm_fd,
> @@ -562,9 +589,7 @@ static void test_crc(data_t *data)
>   
>   	while (clock_ms() - start < 2000) {
>   		/* fill the next fb with the expected color */
> -		cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
> -		igt_paint_color(cr, 0, 0, 1, data->bufs[frame].height, 1.0, 0.0, 0.0);
> -		igt_put_cairo_ctx(cr);
> +		paint_fb(data, &data->bufs[frame], 1, height, 0xff0000ff);
>   
>   		data->flip_pending = true;
>   		ret = drmModePageFlip(data->drm_fd, data->crtc_id, data->bufs[frame].fb_id,
> @@ -575,9 +600,7 @@ static void test_crc(data_t *data)
>   
>   		/* clobber the previous fb which should no longer be scanned out */
>   		frame = !frame;
> -		cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
> -		igt_paint_color_rand(cr, 0, 0, 1, data->bufs[frame].height);
> -		igt_put_cairo_ctx(cr);
> +		paint_fb(data, &data->bufs[frame], 1, height, rand());
>   	}
>   
>   	igt_pipe_crc_stop(data->pipe_crc);
> @@ -644,6 +667,9 @@ igt_main
>   
>   		igt_require_f(igt_has_drm_cap(data.drm_fd, DRM_CAP_ASYNC_PAGE_FLIP),
>   			      "Async Flip is not supported\n");
> +
> +		if (is_intel_device(data.drm_fd))
> +			data.bops = buf_ops_create(data.drm_fd);
>   	}
>   
>   	igt_describe("Verify the async flip functionality and the fps during async flips");
> @@ -704,6 +730,8 @@ igt_main
>   		for (i = 0; i < NUM_FBS; i++)
>   			igt_remove_fb(data.drm_fd, &data.bufs[i]);
>   
> +		if (is_intel_device(data.drm_fd))
> +			buf_ops_destroy(data.bops);
>   		igt_display_reset(&data.display);
>   		igt_display_commit(&data.display);
>   		igt_display_fini(&data.display);

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH i-g-t 1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw
  2023-12-08 18:29   ` Ville Syrjälä
@ 2023-12-19  1:00     ` Ville Syrjälä
  0 siblings, 0 replies; 14+ messages in thread
From: Ville Syrjälä @ 2023-12-19  1:00 UTC (permalink / raw)
  To: Modem, Bhanuprakash; +Cc: igt-dev

On Fri, Dec 08, 2023 at 08:29:26PM +0200, Ville Syrjälä wrote:
> On Fri, Dec 08, 2023 at 10:31:35AM +0530, Modem, Bhanuprakash wrote:
> > 
> > On 07-12-2023 10:41 pm, Ville Syrjala wrote:
> > > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > 
> > > Go back to using igt_draw mmap stuff to do the mid-test
> > > rendering in the CRC subtest to make it faster. Going
> > > via all the cairo machinery is very very slow, but we'll
> > > leave that codepath in place for non-Intel hw. This makes
> > > the test pass on a DG2 here as we can now produce enough
> > > frames to have some confidence in the results.
> > > 
> > > Note that some extra care is apparently needed with the order
> > > in which things are done. If we pin the buffers to the display
> > > first the mmap is likely to fail (due to the FB getting pinned
> > > outside the reach of the small BAR presumably). Curiosuly the
> > > mmap itself succeeds but we get a SIGBUS when trying to acccess
> > > the buffer contents. If we touch the FBs first via mmap and only
> > > then pin them to the display everything works correctly.
> > > 
> > > Cc: Melissa Wen <mwen@igalia.com>
> > > Cc: Alex Hung <alex.hung@amd.com>
> > > Cc: André Almeida <andrealmeid@igalia.com>
> > > Fixes: 8ba806e7e196 ("tests/kms_async_flips: Support more vendors")
> > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > ---
> > >   tests/kms_async_flips.c | 66 +++++++++++++++++++++++++++++------------
> > >   1 file changed, 47 insertions(+), 19 deletions(-)
> > > 
> > > diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
> > > index 6fddad093913..f7f9add89548 100644
> > > --- a/tests/kms_async_flips.c
> > > +++ b/tests/kms_async_flips.c
> > > @@ -100,6 +100,7 @@ typedef struct {
> > >   	enum pipe pipe;
> > >   	bool alternate_sync_async;
> > >   	bool allow_fail;
> > > +	struct buf_ops *bops;
> > >   } data_t;
> > >   
> > >   static void flip_handler(int fd_, unsigned int sequence, unsigned int tv_sec,
> > > @@ -230,8 +231,6 @@ static void test_init_fbs(data_t *data)
> > >   
> > >   	igt_plane_set_fb(data->plane, &data->bufs[0]);
> > >   	igt_plane_set_size(data->plane, width, height);
> > > -
> > > -	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> > >   }
> > >   
> > >   static void test_async_flip(data_t *data)
> > > @@ -240,6 +239,8 @@ static void test_async_flip(data_t *data)
> > >   	long long int fps;
> > >   	struct timeval start, end, diff;
> > >   
> > > +	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> > > +
> > >   	gettimeofday(&start, NULL);
> > >   	frame = 1;
> > >   	do {
> > > @@ -336,6 +337,8 @@ static void test_timestamp(data_t *data)
> > >   	unsigned int seq, seq1;
> > >   	int ret;
> > >   
> > > +	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> > > +
> > >   	/*
> > >   	 * In older platforms(<= gen10), async address update bit is double buffered.
> > >   	 * So flip timestamp can be verified only from the second flip.
> > > @@ -381,6 +384,8 @@ static void test_cursor(data_t *data)
> > >   	struct igt_fb cursor_fb;
> > >   	struct drm_mode_cursor cur;
> > >   
> > > +	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> > > +
> > >   	/*
> > >   	 * Intel's PSR2 selective fetch adds other planes to state when
> > >   	 * necessary, causing the async flip to fail because async flip is not
> > > @@ -429,6 +434,8 @@ static void test_invalid(data_t *data)
> > >   	struct igt_fb fb;
> > >   	drmModeModeInfo *mode;
> > >   
> > > +	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> > > +
> > >   	mode = igt_output_get_mode(data->output);
> > >   	width = mode->hdisplay;
> > >   	height = mode->vdisplay;
> > > @@ -525,28 +532,48 @@ static unsigned int clock_ms(void)
> > >   	return ts.tv_sec * 1000 + ts.tv_nsec / 1000000;
> > >   }
> > >   
> > > +static void paint_fb(data_t *data, struct igt_fb *fb,
> > > +		     int width, int height,
> > > +		     uint32_t color)
> > > +{
> > > +	if (is_intel_device(data->drm_fd)) {
> > > +		igt_draw_rect_fb(data->drm_fd, data->bops, 0, fb,
> > > +				 gem_has_mappable_ggtt(data->drm_fd) ?
> > ---------------------------------^
> > This is i915 specific, and expected to fail on XE.
> 
> Sigh. I did ask for a unified library API for i915 and xe but I guess
> that still didn't happen :(

Hmm. I suppsoe igt_draw_supports_method() is kinda that.
Never mind me then.

> 
> > 
> > Instead, we could use igt_draw_supports_method() here.
> > 
> > - Bhanu
> > 
> > > +				 IGT_DRAW_MMAP_GTT : IGT_DRAW_MMAP_WC,
> > > +				 0, 0, width, height, color);
> > > +	} else {
> > > +		cairo_t *cr;
> > > +
> > > +		cr = igt_get_cairo_ctx(data->drm_fd, fb);
> > > +		igt_paint_color(cr, 0, 0, width, height,
> > > +				((color & 0xff0000) >> 16) / 255.0,
> > > +				((color & 0xff00) >> 8) / 255.0,
> > > +				((color & 0xff) >> 9) / 255.0);
> > > +		igt_put_cairo_ctx(cr);
> > > +	}
> > > +}
> > > +
> > >   static void test_crc(data_t *data)
> > >   {
> > >   	unsigned int frame = 0;
> > >   	unsigned int start;
> > > -	cairo_t *cr;
> > > -	int ret;
> > > +	int ret, width, height;
> > > +	drmModeModeInfoPtr mode;
> > > +
> > > +	/* make things faster by using a smallish mode */
> > > +	mode = &data->output->config.connector->modes[0];
> > > +	width = mode->hdisplay;
> > > +	height = mode->vdisplay;
> > >   
> > >   	data->flip_count = 0;
> > >   	data->frame_count = 0;
> > >   	data->flip_pending = false;
> > >   
> > > -	cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
> > > -	igt_paint_color(cr, 0, 0, data->bufs[frame].width, data->bufs[frame].height, 1.0, 0.0, 0.0);
> > > -	igt_put_cairo_ctx(cr);
> > > -
> > > -	cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[!frame]);
> > > -	igt_paint_color(cr, 0, 0, data->bufs[!frame].width, data->bufs[!frame].height, 1.0, 0.0, 0.0);
> > > -	igt_put_cairo_ctx(cr);
> > > +	paint_fb(data, &data->bufs[frame], width, height, 0xff0000ff);
> > > +	paint_fb(data, &data->bufs[!frame], width, height, 0xff0000ff);
> > >   
> > >   	ret = drmModeSetCrtc(data->drm_fd, data->crtc_id, data->bufs[frame].fb_id, 0, 0,
> > > -			     &data->output->config.connector->connector_id, 1,
> > > -			     &data->output->config.connector->modes[0]);
> > > +			     &data->output->config.connector->connector_id, 1, mode);
> > >   	igt_assert_eq(ret, 0);
> > >   
> > >   	data->pipe_crc = igt_pipe_crc_new(data->drm_fd,
> > > @@ -562,9 +589,7 @@ static void test_crc(data_t *data)
> > >   
> > >   	while (clock_ms() - start < 2000) {
> > >   		/* fill the next fb with the expected color */
> > > -		cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
> > > -		igt_paint_color(cr, 0, 0, 1, data->bufs[frame].height, 1.0, 0.0, 0.0);
> > > -		igt_put_cairo_ctx(cr);
> > > +		paint_fb(data, &data->bufs[frame], 1, height, 0xff0000ff);
> > >   
> > >   		data->flip_pending = true;
> > >   		ret = drmModePageFlip(data->drm_fd, data->crtc_id, data->bufs[frame].fb_id,
> > > @@ -575,9 +600,7 @@ static void test_crc(data_t *data)
> > >   
> > >   		/* clobber the previous fb which should no longer be scanned out */
> > >   		frame = !frame;
> > > -		cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
> > > -		igt_paint_color_rand(cr, 0, 0, 1, data->bufs[frame].height);
> > > -		igt_put_cairo_ctx(cr);
> > > +		paint_fb(data, &data->bufs[frame], 1, height, rand());
> > >   	}
> > >   
> > >   	igt_pipe_crc_stop(data->pipe_crc);
> > > @@ -644,6 +667,9 @@ igt_main
> > >   
> > >   		igt_require_f(igt_has_drm_cap(data.drm_fd, DRM_CAP_ASYNC_PAGE_FLIP),
> > >   			      "Async Flip is not supported\n");
> > > +
> > > +		if (is_intel_device(data.drm_fd))
> > > +			data.bops = buf_ops_create(data.drm_fd);
> > >   	}
> > >   
> > >   	igt_describe("Verify the async flip functionality and the fps during async flips");
> > > @@ -704,6 +730,8 @@ igt_main
> > >   		for (i = 0; i < NUM_FBS; i++)
> > >   			igt_remove_fb(data.drm_fd, &data.bufs[i]);
> > >   
> > > +		if (is_intel_device(data.drm_fd))
> > > +			buf_ops_destroy(data.bops);
> > >   		igt_display_reset(&data.display);
> > >   		igt_display_commit(&data.display);
> > >   		igt_display_fini(&data.display);
> 
> -- 
> Ville Syrjälä
> Intel

-- 
Ville Syrjälä
Intel

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH i-g-t v2 1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw
  2023-12-07 17:11 [PATCH i-g-t 1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw Ville Syrjala
                   ` (5 preceding siblings ...)
  2023-12-11 11:09 ` [PATCH i-g-t 1/2] " Karthik B S
@ 2023-12-19  1:02 ` Ville Syrjala
  2024-01-18  5:27   ` Karthik B S
  2023-12-19  1:58 ` ✓ Fi.CI.BAT: success for series starting with [i-g-t,v2,1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw (rev2) Patchwork
  2023-12-19  4:56 ` ✓ CI.xeBAT: " Patchwork
  8 siblings, 1 reply; 14+ messages in thread
From: Ville Syrjala @ 2023-12-19  1:02 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Go back to using igt_draw mmap stuff to do the mid-test
rendering in the CRC subtest to make it faster. Going
via all the cairo machinery is very very slow, but we'll
leave that codepath in place for non-Intel hw. This makes
the test pass on a DG2 here as we can now produce enough
frames to have some confidence in the results.

Note that some extra care is apparently needed with the order
in which things are done. If we pin the buffers to the display
first the mmap is likely to fail (due to the FB getting pinned
outside the reach of the small BAR presumably). Curiosuly the
mmap itself succeeds but we get a SIGBUS when trying to acccess
the buffer contents. If we touch the FBs first via mmap and only
then pin them to the display everything works correctly.

v2: Use igt_draw_supports_method() so it works on xe (Bhanu)

Cc: Melissa Wen <mwen@igalia.com>
Cc: Alex Hung <alex.hung@amd.com>
Cc: André Almeida <andrealmeid@igalia.com>
Cc: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Fixes: 8ba806e7e196 ("tests/kms_async_flips: Support more vendors")
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_async_flips.c | 66 +++++++++++++++++++++++++++++------------
 1 file changed, 47 insertions(+), 19 deletions(-)

diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
index 6fddad093913..31573f7065e6 100644
--- a/tests/kms_async_flips.c
+++ b/tests/kms_async_flips.c
@@ -100,6 +100,7 @@ typedef struct {
 	enum pipe pipe;
 	bool alternate_sync_async;
 	bool allow_fail;
+	struct buf_ops *bops;
 } data_t;
 
 static void flip_handler(int fd_, unsigned int sequence, unsigned int tv_sec,
@@ -230,8 +231,6 @@ static void test_init_fbs(data_t *data)
 
 	igt_plane_set_fb(data->plane, &data->bufs[0]);
 	igt_plane_set_size(data->plane, width, height);
-
-	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
 }
 
 static void test_async_flip(data_t *data)
@@ -240,6 +239,8 @@ static void test_async_flip(data_t *data)
 	long long int fps;
 	struct timeval start, end, diff;
 
+	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
+
 	gettimeofday(&start, NULL);
 	frame = 1;
 	do {
@@ -336,6 +337,8 @@ static void test_timestamp(data_t *data)
 	unsigned int seq, seq1;
 	int ret;
 
+	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
+
 	/*
 	 * In older platforms(<= gen10), async address update bit is double buffered.
 	 * So flip timestamp can be verified only from the second flip.
@@ -381,6 +384,8 @@ static void test_cursor(data_t *data)
 	struct igt_fb cursor_fb;
 	struct drm_mode_cursor cur;
 
+	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
+
 	/*
 	 * Intel's PSR2 selective fetch adds other planes to state when
 	 * necessary, causing the async flip to fail because async flip is not
@@ -429,6 +434,8 @@ static void test_invalid(data_t *data)
 	struct igt_fb fb;
 	drmModeModeInfo *mode;
 
+	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
+
 	mode = igt_output_get_mode(data->output);
 	width = mode->hdisplay;
 	height = mode->vdisplay;
@@ -525,28 +532,48 @@ static unsigned int clock_ms(void)
 	return ts.tv_sec * 1000 + ts.tv_nsec / 1000000;
 }
 
+static void paint_fb(data_t *data, struct igt_fb *fb,
+		     int width, int height,
+		     uint32_t color)
+{
+	if (is_intel_device(data->drm_fd)) {
+		igt_draw_rect_fb(data->drm_fd, data->bops, 0, fb,
+				 igt_draw_supports_method(data->drm_fd, IGT_DRAW_MMAP_GTT) ?
+				 IGT_DRAW_MMAP_GTT : IGT_DRAW_MMAP_WC,
+				 0, 0, width, height, color);
+	} else {
+		cairo_t *cr;
+
+		cr = igt_get_cairo_ctx(data->drm_fd, fb);
+		igt_paint_color(cr, 0, 0, width, height,
+				((color & 0xff0000) >> 16) / 255.0,
+				((color & 0xff00) >> 8) / 255.0,
+				((color & 0xff) >> 9) / 255.0);
+		igt_put_cairo_ctx(cr);
+	}
+}
+
 static void test_crc(data_t *data)
 {
 	unsigned int frame = 0;
 	unsigned int start;
-	cairo_t *cr;
-	int ret;
+	int ret, width, height;
+	drmModeModeInfoPtr mode;
+
+	/* make things faster by using a smallish mode */
+	mode = &data->output->config.connector->modes[0];
+	width = mode->hdisplay;
+	height = mode->vdisplay;
 
 	data->flip_count = 0;
 	data->frame_count = 0;
 	data->flip_pending = false;
 
-	cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
-	igt_paint_color(cr, 0, 0, data->bufs[frame].width, data->bufs[frame].height, 1.0, 0.0, 0.0);
-	igt_put_cairo_ctx(cr);
-
-	cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[!frame]);
-	igt_paint_color(cr, 0, 0, data->bufs[!frame].width, data->bufs[!frame].height, 1.0, 0.0, 0.0);
-	igt_put_cairo_ctx(cr);
+	paint_fb(data, &data->bufs[frame], width, height, 0xff0000ff);
+	paint_fb(data, &data->bufs[!frame], width, height, 0xff0000ff);
 
 	ret = drmModeSetCrtc(data->drm_fd, data->crtc_id, data->bufs[frame].fb_id, 0, 0,
-			     &data->output->config.connector->connector_id, 1,
-			     &data->output->config.connector->modes[0]);
+			     &data->output->config.connector->connector_id, 1, mode);
 	igt_assert_eq(ret, 0);
 
 	data->pipe_crc = igt_pipe_crc_new(data->drm_fd,
@@ -562,9 +589,7 @@ static void test_crc(data_t *data)
 
 	while (clock_ms() - start < 2000) {
 		/* fill the next fb with the expected color */
-		cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
-		igt_paint_color(cr, 0, 0, 1, data->bufs[frame].height, 1.0, 0.0, 0.0);
-		igt_put_cairo_ctx(cr);
+		paint_fb(data, &data->bufs[frame], 1, height, 0xff0000ff);
 
 		data->flip_pending = true;
 		ret = drmModePageFlip(data->drm_fd, data->crtc_id, data->bufs[frame].fb_id,
@@ -575,9 +600,7 @@ static void test_crc(data_t *data)
 
 		/* clobber the previous fb which should no longer be scanned out */
 		frame = !frame;
-		cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
-		igt_paint_color_rand(cr, 0, 0, 1, data->bufs[frame].height);
-		igt_put_cairo_ctx(cr);
+		paint_fb(data, &data->bufs[frame], 1, height, rand());
 	}
 
 	igt_pipe_crc_stop(data->pipe_crc);
@@ -644,6 +667,9 @@ igt_main
 
 		igt_require_f(igt_has_drm_cap(data.drm_fd, DRM_CAP_ASYNC_PAGE_FLIP),
 			      "Async Flip is not supported\n");
+
+		if (is_intel_device(data.drm_fd))
+			data.bops = buf_ops_create(data.drm_fd);
 	}
 
 	igt_describe("Verify the async flip functionality and the fps during async flips");
@@ -704,6 +730,8 @@ igt_main
 		for (i = 0; i < NUM_FBS; i++)
 			igt_remove_fb(data.drm_fd, &data.bufs[i]);
 
+		if (is_intel_device(data.drm_fd))
+			buf_ops_destroy(data.bops);
 		igt_display_reset(&data.display);
 		igt_display_commit(&data.display);
 		igt_display_fini(&data.display);
-- 
2.41.0

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* ✓ Fi.CI.BAT: success for series starting with [i-g-t,v2,1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw (rev2)
  2023-12-07 17:11 [PATCH i-g-t 1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw Ville Syrjala
                   ` (6 preceding siblings ...)
  2023-12-19  1:02 ` [PATCH i-g-t v2 " Ville Syrjala
@ 2023-12-19  1:58 ` Patchwork
  2023-12-19  4:56 ` ✓ CI.xeBAT: " Patchwork
  8 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2023-12-19  1:58 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 8167 bytes --]

== Series Details ==

Series: series starting with [i-g-t,v2,1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw (rev2)
URL   : https://patchwork.freedesktop.org/series/127516/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_14040 -> IGTPW_10441
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10441/index.html

Participating hosts (36 -> 35)
------------------------------

  Additional (3): bat-rpls-2 bat-kbl-2 fi-pnv-d510 
  Missing    (4): bat-adlp-11 bat-atsm-1 fi-snb-2520m fi-bsw-n3050 

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_10441:

### IGT changes ###

#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-dp-2:
    - {bat-rpls-3}:       [PASS][1] -> [FAIL][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14040/bat-rpls-3/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-dp-2.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10441/bat-rpls-3/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-dp-2.html

  
Known issues
------------

  Here are the changes found in IGTPW_10441 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@debugfs_test@basic-hwmon:
    - bat-rpls-2:         NOTRUN -> [SKIP][3] ([i915#9318])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10441/bat-rpls-2/igt@debugfs_test@basic-hwmon.html

  * igt@fbdev@info:
    - bat-kbl-2:          NOTRUN -> [SKIP][4] ([fdo#109271] / [i915#1849])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10441/bat-kbl-2/igt@fbdev@info.html

  * igt@gem_exec_suspend@basic-s0@smem:
    - bat-dg2-9:          [PASS][5] -> [INCOMPLETE][6] ([i915#9275])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14040/bat-dg2-9/igt@gem_exec_suspend@basic-s0@smem.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10441/bat-dg2-9/igt@gem_exec_suspend@basic-s0@smem.html

  * igt@gem_lmem_swapping@basic:
    - fi-pnv-d510:        NOTRUN -> [SKIP][7] ([fdo#109271]) +28 other tests skip
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10441/fi-pnv-d510/igt@gem_lmem_swapping@basic.html

  * igt@gem_lmem_swapping@parallel-random-engines:
    - bat-kbl-2:          NOTRUN -> [SKIP][8] ([fdo#109271]) +36 other tests skip
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10441/bat-kbl-2/igt@gem_lmem_swapping@parallel-random-engines.html

  * igt@gem_tiled_pread_basic:
    - bat-rpls-2:         NOTRUN -> [SKIP][9] ([i915#3282])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10441/bat-rpls-2/igt@gem_tiled_pread_basic.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - bat-rpls-2:         NOTRUN -> [SKIP][10] ([i915#4103]) +1 other test skip
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10441/bat-rpls-2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  * igt@kms_dsc@dsc-basic:
    - bat-rpls-2:         NOTRUN -> [SKIP][11] ([i915#3555] / [i915#3840] / [i915#9886])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10441/bat-rpls-2/igt@kms_dsc@dsc-basic.html

  * igt@kms_force_connector_basic@force-load-detect:
    - bat-rpls-2:         NOTRUN -> [SKIP][12] ([fdo#109285])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10441/bat-rpls-2/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-d-hdmi-a-2:
    - bat-dg1-7:          [PASS][13] -> [FAIL][14] ([fdo#103375]) +3 other tests fail
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14040/bat-dg1-7/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-d-hdmi-a-2.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10441/bat-dg1-7/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-d-hdmi-a-2.html

  * igt@kms_pm_backlight@basic-brightness:
    - bat-rpls-2:         NOTRUN -> [SKIP][15] ([i915#5354])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10441/bat-rpls-2/igt@kms_pm_backlight@basic-brightness.html

  
#### Possible fixes ####

  * igt@i915_module_load@reload:
    - fi-kbl-7567u:       [DMESG-WARN][16] ([i915#1982]) -> [PASS][17]
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14040/fi-kbl-7567u/igt@i915_module_load@reload.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10441/fi-kbl-7567u/igt@i915_module_load@reload.html

  * igt@i915_pm_rpm@module-reload:
    - fi-kbl-7567u:       [DMESG-WARN][18] ([i915#8585]) -> [PASS][19]
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14040/fi-kbl-7567u/igt@i915_pm_rpm@module-reload.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10441/fi-kbl-7567u/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live@gt_heartbeat:
    - fi-kbl-7567u:       [DMESG-WARN][20] ([i915#9730]) -> [PASS][21] +31 other tests pass
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14040/fi-kbl-7567u/igt@i915_selftest@live@gt_heartbeat.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10441/fi-kbl-7567u/igt@i915_selftest@live@gt_heartbeat.html

  * igt@i915_suspend@basic-s2idle-without-i915:
    - fi-kbl-7567u:       [DMESG-WARN][22] ([i915#180]) -> [PASS][23]
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14040/fi-kbl-7567u/igt@i915_suspend@basic-s2idle-without-i915.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10441/fi-kbl-7567u/igt@i915_suspend@basic-s2idle-without-i915.html

  * igt@kms_pipe_crc_basic@hang-read-crc@pipe-c-dp-1:
    - fi-kbl-7567u:       [FAIL][24] -> [PASS][25]
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14040/fi-kbl-7567u/igt@kms_pipe_crc_basic@hang-read-crc@pipe-c-dp-1.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10441/fi-kbl-7567u/igt@kms_pipe_crc_basic@hang-read-crc@pipe-c-dp-1.html

  * igt@kms_pm_rpm@basic-pci-d3-state:
    - fi-kbl-7567u:       [DMESG-WARN][26] -> [PASS][27] +11 other tests pass
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14040/fi-kbl-7567u/igt@kms_pm_rpm@basic-pci-d3-state.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10441/fi-kbl-7567u/igt@kms_pm_rpm@basic-pci-d3-state.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
  [i915#8585]: https://gitlab.freedesktop.org/drm/intel/issues/8585
  [i915#8668]: https://gitlab.freedesktop.org/drm/intel/issues/8668
  [i915#9275]: https://gitlab.freedesktop.org/drm/intel/issues/9275
  [i915#9318]: https://gitlab.freedesktop.org/drm/intel/issues/9318
  [i915#9730]: https://gitlab.freedesktop.org/drm/intel/issues/9730
  [i915#9886]: https://gitlab.freedesktop.org/drm/intel/issues/9886


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_7647 -> IGTPW_10441

  CI-20190529: 20190529
  CI_DRM_14040: 2e8cd7e91ea35587d72fb9631a862a9e9b8d30b2 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_10441: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10441/index.html
  IGT_7647: c5db51a88823962e79d41cff10fe1bdd8ea92d89 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10441/index.html

[-- Attachment #2: Type: text/html, Size: 9296 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* ✓ CI.xeBAT: success for series starting with [i-g-t,v2,1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw (rev2)
  2023-12-07 17:11 [PATCH i-g-t 1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw Ville Syrjala
                   ` (7 preceding siblings ...)
  2023-12-19  1:58 ` ✓ Fi.CI.BAT: success for series starting with [i-g-t,v2,1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw (rev2) Patchwork
@ 2023-12-19  4:56 ` Patchwork
  8 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2023-12-19  4:56 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 3808 bytes --]

== Series Details ==

Series: series starting with [i-g-t,v2,1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw (rev2)
URL   : https://patchwork.freedesktop.org/series/127516/
State : success

== Summary ==

CI Bug Log - changes from XEIGT_7647_BAT -> XEIGTPW_10441_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (4 -> 4)
------------------------------

  No changes in participating hosts

Known issues
------------

  Here are the changes found in XEIGTPW_10441_BAT that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@kms_flip@basic-flip-vs-wf_vblank@a-dp3:
    - bat-dg2-oem2:       [PASS][1] -> [FAIL][2] ([Intel XE#480])
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7647/bat-dg2-oem2/igt@kms_flip@basic-flip-vs-wf_vblank@a-dp3.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10441/bat-dg2-oem2/igt@kms_flip@basic-flip-vs-wf_vblank@a-dp3.html

  * igt@kms_frontbuffer_tracking@basic:
    - bat-adlp-7:         [PASS][3] -> [DMESG-FAIL][4] ([Intel XE#1033])
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7647/bat-adlp-7/igt@kms_frontbuffer_tracking@basic.html
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10441/bat-adlp-7/igt@kms_frontbuffer_tracking@basic.html

  * igt@xe_prime_self_import@basic-with_fd_dup:
    - bat-atsm-2:         [PASS][5] -> [FAIL][6] ([Intel XE#999])
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7647/bat-atsm-2/igt@xe_prime_self_import@basic-with_fd_dup.html
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10441/bat-atsm-2/igt@xe_prime_self_import@basic-with_fd_dup.html

  
#### Possible fixes ####

  * igt@kms_flip@basic-flip-vs-wf_vblank@b-edp1:
    - bat-adlp-7:         [FAIL][7] ([Intel XE#480]) -> [PASS][8] +2 other tests pass
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7647/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@b-edp1.html
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10441/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@b-edp1.html

  * igt@kms_flip@basic-flip-vs-wf_vblank@d-dp3:
    - bat-dg2-oem2:       [FAIL][9] ([Intel XE#906]) -> [PASS][10] +1 other test pass
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7647/bat-dg2-oem2/igt@kms_flip@basic-flip-vs-wf_vblank@d-dp3.html
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10441/bat-dg2-oem2/igt@kms_flip@basic-flip-vs-wf_vblank@d-dp3.html

  
#### Warnings ####

  * igt@kms_flip@basic-flip-vs-wf_vblank:
    - bat-dg2-oem2:       [FAIL][11] ([Intel XE#906]) -> [FAIL][12] ([Intel XE#480])
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7647/bat-dg2-oem2/igt@kms_flip@basic-flip-vs-wf_vblank.html
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10441/bat-dg2-oem2/igt@kms_flip@basic-flip-vs-wf_vblank.html

  
  [Intel XE#1033]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1033
  [Intel XE#480]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/480
  [Intel XE#906]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/906
  [Intel XE#999]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/999


Build changes
-------------

  * IGT: IGT_7647 -> IGTPW_10441
  * Linux: xe-585-3b0bde77a8c4304c0fe3b6a4f8661dc34b82f920 -> xe-586-84e5d706cb0c11f2948a9f16d9e31ad5256b641c

  IGTPW_10441: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10441/index.html
  IGT_7647: c5db51a88823962e79d41cff10fe1bdd8ea92d89 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-585-3b0bde77a8c4304c0fe3b6a4f8661dc34b82f920: 3b0bde77a8c4304c0fe3b6a4f8661dc34b82f920
  xe-586-84e5d706cb0c11f2948a9f16d9e31ad5256b641c: 84e5d706cb0c11f2948a9f16d9e31ad5256b641c

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10441/index.html

[-- Attachment #2: Type: text/html, Size: 4736 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH i-g-t v2 1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw
  2023-12-19  1:02 ` [PATCH i-g-t v2 " Ville Syrjala
@ 2024-01-18  5:27   ` Karthik B S
  2024-01-18  5:27     ` Karthik B S
  0 siblings, 1 reply; 14+ messages in thread
From: Karthik B S @ 2024-01-18  5:27 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev


On 12/19/2023 6:32 AM, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Go back to using igt_draw mmap stuff to do the mid-test
> rendering in the CRC subtest to make it faster. Going
> via all the cairo machinery is very very slow, but we'll
> leave that codepath in place for non-Intel hw. This makes
> the test pass on a DG2 here as we can now produce enough
> frames to have some confidence in the results.
>
> Note that some extra care is apparently needed with the order
> in which things are done. If we pin the buffers to the display
> first the mmap is likely to fail (due to the FB getting pinned
> outside the reach of the small BAR presumably). Curiosuly the
> mmap itself succeeds but we get a SIGBUS when trying to acccess
> the buffer contents. If we touch the FBs first via mmap and only
> then pin them to the display everything works correctly.
>
> v2: Use igt_draw_supports_method() so it works on xe (Bhanu)
>
> Cc: Melissa Wen <mwen@igalia.com>
> Cc: Alex Hung <alex.hung@amd.com>
> Cc: André Almeida <andrealmeid@igalia.com>
> Cc: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> Fixes: 8ba806e7e196 ("tests/kms_async_flips: Support more vendors")
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Karthik B S <karthik.b.s@intel.com>

Also had locally verified using v1 of this patch that this also fixes 
https://gitlab.freedesktop.org/drm/intel/-/issues/8561, which was seen 
consistently with the high RR eDP panel on MTL. The change b/n v1 and v2 
shouldn't affect this in any case.

Tested-by: Karthik B S <karthik.b.s@intel.com>

> ---
>   tests/kms_async_flips.c | 66 +++++++++++++++++++++++++++++------------
>   1 file changed, 47 insertions(+), 19 deletions(-)
>
> diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
> index 6fddad093913..31573f7065e6 100644
> --- a/tests/kms_async_flips.c
> +++ b/tests/kms_async_flips.c
> @@ -100,6 +100,7 @@ typedef struct {
>   	enum pipe pipe;
>   	bool alternate_sync_async;
>   	bool allow_fail;
> +	struct buf_ops *bops;
>   } data_t;
>   
>   static void flip_handler(int fd_, unsigned int sequence, unsigned int tv_sec,
> @@ -230,8 +231,6 @@ static void test_init_fbs(data_t *data)
>   
>   	igt_plane_set_fb(data->plane, &data->bufs[0]);
>   	igt_plane_set_size(data->plane, width, height);
> -
> -	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
>   }
>   
>   static void test_async_flip(data_t *data)
> @@ -240,6 +239,8 @@ static void test_async_flip(data_t *data)
>   	long long int fps;
>   	struct timeval start, end, diff;
>   
> +	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> +
>   	gettimeofday(&start, NULL);
>   	frame = 1;
>   	do {
> @@ -336,6 +337,8 @@ static void test_timestamp(data_t *data)
>   	unsigned int seq, seq1;
>   	int ret;
>   
> +	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> +
>   	/*
>   	 * In older platforms(<= gen10), async address update bit is double buffered.
>   	 * So flip timestamp can be verified only from the second flip.
> @@ -381,6 +384,8 @@ static void test_cursor(data_t *data)
>   	struct igt_fb cursor_fb;
>   	struct drm_mode_cursor cur;
>   
> +	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> +
>   	/*
>   	 * Intel's PSR2 selective fetch adds other planes to state when
>   	 * necessary, causing the async flip to fail because async flip is not
> @@ -429,6 +434,8 @@ static void test_invalid(data_t *data)
>   	struct igt_fb fb;
>   	drmModeModeInfo *mode;
>   
> +	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> +
>   	mode = igt_output_get_mode(data->output);
>   	width = mode->hdisplay;
>   	height = mode->vdisplay;
> @@ -525,28 +532,48 @@ static unsigned int clock_ms(void)
>   	return ts.tv_sec * 1000 + ts.tv_nsec / 1000000;
>   }
>   
> +static void paint_fb(data_t *data, struct igt_fb *fb,
> +		     int width, int height,
> +		     uint32_t color)
> +{
> +	if (is_intel_device(data->drm_fd)) {
> +		igt_draw_rect_fb(data->drm_fd, data->bops, 0, fb,
> +				 igt_draw_supports_method(data->drm_fd, IGT_DRAW_MMAP_GTT) ?
> +				 IGT_DRAW_MMAP_GTT : IGT_DRAW_MMAP_WC,
> +				 0, 0, width, height, color);
> +	} else {
> +		cairo_t *cr;
> +
> +		cr = igt_get_cairo_ctx(data->drm_fd, fb);
> +		igt_paint_color(cr, 0, 0, width, height,
> +				((color & 0xff0000) >> 16) / 255.0,
> +				((color & 0xff00) >> 8) / 255.0,
> +				((color & 0xff) >> 9) / 255.0);
> +		igt_put_cairo_ctx(cr);
> +	}
> +}
> +
>   static void test_crc(data_t *data)
>   {
>   	unsigned int frame = 0;
>   	unsigned int start;
> -	cairo_t *cr;
> -	int ret;
> +	int ret, width, height;
> +	drmModeModeInfoPtr mode;
> +
> +	/* make things faster by using a smallish mode */
> +	mode = &data->output->config.connector->modes[0];
> +	width = mode->hdisplay;
> +	height = mode->vdisplay;
>   
>   	data->flip_count = 0;
>   	data->frame_count = 0;
>   	data->flip_pending = false;
>   
> -	cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
> -	igt_paint_color(cr, 0, 0, data->bufs[frame].width, data->bufs[frame].height, 1.0, 0.0, 0.0);
> -	igt_put_cairo_ctx(cr);
> -
> -	cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[!frame]);
> -	igt_paint_color(cr, 0, 0, data->bufs[!frame].width, data->bufs[!frame].height, 1.0, 0.0, 0.0);
> -	igt_put_cairo_ctx(cr);
> +	paint_fb(data, &data->bufs[frame], width, height, 0xff0000ff);
> +	paint_fb(data, &data->bufs[!frame], width, height, 0xff0000ff);
>   
>   	ret = drmModeSetCrtc(data->drm_fd, data->crtc_id, data->bufs[frame].fb_id, 0, 0,
> -			     &data->output->config.connector->connector_id, 1,
> -			     &data->output->config.connector->modes[0]);
> +			     &data->output->config.connector->connector_id, 1, mode);
>   	igt_assert_eq(ret, 0);
>   
>   	data->pipe_crc = igt_pipe_crc_new(data->drm_fd,
> @@ -562,9 +589,7 @@ static void test_crc(data_t *data)
>   
>   	while (clock_ms() - start < 2000) {
>   		/* fill the next fb with the expected color */
> -		cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
> -		igt_paint_color(cr, 0, 0, 1, data->bufs[frame].height, 1.0, 0.0, 0.0);
> -		igt_put_cairo_ctx(cr);
> +		paint_fb(data, &data->bufs[frame], 1, height, 0xff0000ff);
>   
>   		data->flip_pending = true;
>   		ret = drmModePageFlip(data->drm_fd, data->crtc_id, data->bufs[frame].fb_id,
> @@ -575,9 +600,7 @@ static void test_crc(data_t *data)
>   
>   		/* clobber the previous fb which should no longer be scanned out */
>   		frame = !frame;
> -		cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
> -		igt_paint_color_rand(cr, 0, 0, 1, data->bufs[frame].height);
> -		igt_put_cairo_ctx(cr);
> +		paint_fb(data, &data->bufs[frame], 1, height, rand());
>   	}
>   
>   	igt_pipe_crc_stop(data->pipe_crc);
> @@ -644,6 +667,9 @@ igt_main
>   
>   		igt_require_f(igt_has_drm_cap(data.drm_fd, DRM_CAP_ASYNC_PAGE_FLIP),
>   			      "Async Flip is not supported\n");
> +
> +		if (is_intel_device(data.drm_fd))
> +			data.bops = buf_ops_create(data.drm_fd);
>   	}
>   
>   	igt_describe("Verify the async flip functionality and the fps during async flips");
> @@ -704,6 +730,8 @@ igt_main
>   		for (i = 0; i < NUM_FBS; i++)
>   			igt_remove_fb(data.drm_fd, &data.bufs[i]);
>   
> +		if (is_intel_device(data.drm_fd))
> +			buf_ops_destroy(data.bops);
>   		igt_display_reset(&data.display);
>   		igt_display_commit(&data.display);
>   		igt_display_fini(&data.display);

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH i-g-t v2 1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw
  2024-01-18  5:27   ` Karthik B S
@ 2024-01-18  5:27     ` Karthik B S
  0 siblings, 0 replies; 14+ messages in thread
From: Karthik B S @ 2024-01-18  5:27 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev


On 12/19/2023 6:32 AM, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Go back to using igt_draw mmap stuff to do the mid-test
> rendering in the CRC subtest to make it faster. Going
> via all the cairo machinery is very very slow, but we'll
> leave that codepath in place for non-Intel hw. This makes
> the test pass on a DG2 here as we can now produce enough
> frames to have some confidence in the results.
>
> Note that some extra care is apparently needed with the order
> in which things are done. If we pin the buffers to the display
> first the mmap is likely to fail (due to the FB getting pinned
> outside the reach of the small BAR presumably). Curiosuly the
> mmap itself succeeds but we get a SIGBUS when trying to acccess
> the buffer contents. If we touch the FBs first via mmap and only
> then pin them to the display everything works correctly.
>
> v2: Use igt_draw_supports_method() so it works on xe (Bhanu)
>
> Cc: Melissa Wen <mwen@igalia.com>
> Cc: Alex Hung <alex.hung@amd.com>
> Cc: André Almeida <andrealmeid@igalia.com>
> Cc: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> Fixes: 8ba806e7e196 ("tests/kms_async_flips: Support more vendors")
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Karthik B S <karthik.b.s@intel.com>

Also had locally verified using v1 of this patch that this also fixes 
https://gitlab.freedesktop.org/drm/intel/-/issues/8561, which was seen 
consistently with the high RR eDP panel on MTL. The change b/n v1 and v2 
shouldn't affect this in any case.

Tested-by: Karthik B S <karthik.b.s@intel.com>

> ---
>   tests/kms_async_flips.c | 66 +++++++++++++++++++++++++++++------------
>   1 file changed, 47 insertions(+), 19 deletions(-)
>
> diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
> index 6fddad093913..31573f7065e6 100644
> --- a/tests/kms_async_flips.c
> +++ b/tests/kms_async_flips.c
> @@ -100,6 +100,7 @@ typedef struct {
>   	enum pipe pipe;
>   	bool alternate_sync_async;
>   	bool allow_fail;
> +	struct buf_ops *bops;
>   } data_t;
>   
>   static void flip_handler(int fd_, unsigned int sequence, unsigned int tv_sec,
> @@ -230,8 +231,6 @@ static void test_init_fbs(data_t *data)
>   
>   	igt_plane_set_fb(data->plane, &data->bufs[0]);
>   	igt_plane_set_size(data->plane, width, height);
> -
> -	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
>   }
>   
>   static void test_async_flip(data_t *data)
> @@ -240,6 +239,8 @@ static void test_async_flip(data_t *data)
>   	long long int fps;
>   	struct timeval start, end, diff;
>   
> +	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> +
>   	gettimeofday(&start, NULL);
>   	frame = 1;
>   	do {
> @@ -336,6 +337,8 @@ static void test_timestamp(data_t *data)
>   	unsigned int seq, seq1;
>   	int ret;
>   
> +	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> +
>   	/*
>   	 * In older platforms(<= gen10), async address update bit is double buffered.
>   	 * So flip timestamp can be verified only from the second flip.
> @@ -381,6 +384,8 @@ static void test_cursor(data_t *data)
>   	struct igt_fb cursor_fb;
>   	struct drm_mode_cursor cur;
>   
> +	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> +
>   	/*
>   	 * Intel's PSR2 selective fetch adds other planes to state when
>   	 * necessary, causing the async flip to fail because async flip is not
> @@ -429,6 +434,8 @@ static void test_invalid(data_t *data)
>   	struct igt_fb fb;
>   	drmModeModeInfo *mode;
>   
> +	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> +
>   	mode = igt_output_get_mode(data->output);
>   	width = mode->hdisplay;
>   	height = mode->vdisplay;
> @@ -525,28 +532,48 @@ static unsigned int clock_ms(void)
>   	return ts.tv_sec * 1000 + ts.tv_nsec / 1000000;
>   }
>   
> +static void paint_fb(data_t *data, struct igt_fb *fb,
> +		     int width, int height,
> +		     uint32_t color)
> +{
> +	if (is_intel_device(data->drm_fd)) {
> +		igt_draw_rect_fb(data->drm_fd, data->bops, 0, fb,
> +				 igt_draw_supports_method(data->drm_fd, IGT_DRAW_MMAP_GTT) ?
> +				 IGT_DRAW_MMAP_GTT : IGT_DRAW_MMAP_WC,
> +				 0, 0, width, height, color);
> +	} else {
> +		cairo_t *cr;
> +
> +		cr = igt_get_cairo_ctx(data->drm_fd, fb);
> +		igt_paint_color(cr, 0, 0, width, height,
> +				((color & 0xff0000) >> 16) / 255.0,
> +				((color & 0xff00) >> 8) / 255.0,
> +				((color & 0xff) >> 9) / 255.0);
> +		igt_put_cairo_ctx(cr);
> +	}
> +}
> +
>   static void test_crc(data_t *data)
>   {
>   	unsigned int frame = 0;
>   	unsigned int start;
> -	cairo_t *cr;
> -	int ret;
> +	int ret, width, height;
> +	drmModeModeInfoPtr mode;
> +
> +	/* make things faster by using a smallish mode */
> +	mode = &data->output->config.connector->modes[0];
> +	width = mode->hdisplay;
> +	height = mode->vdisplay;
>   
>   	data->flip_count = 0;
>   	data->frame_count = 0;
>   	data->flip_pending = false;
>   
> -	cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
> -	igt_paint_color(cr, 0, 0, data->bufs[frame].width, data->bufs[frame].height, 1.0, 0.0, 0.0);
> -	igt_put_cairo_ctx(cr);
> -
> -	cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[!frame]);
> -	igt_paint_color(cr, 0, 0, data->bufs[!frame].width, data->bufs[!frame].height, 1.0, 0.0, 0.0);
> -	igt_put_cairo_ctx(cr);
> +	paint_fb(data, &data->bufs[frame], width, height, 0xff0000ff);
> +	paint_fb(data, &data->bufs[!frame], width, height, 0xff0000ff);
>   
>   	ret = drmModeSetCrtc(data->drm_fd, data->crtc_id, data->bufs[frame].fb_id, 0, 0,
> -			     &data->output->config.connector->connector_id, 1,
> -			     &data->output->config.connector->modes[0]);
> +			     &data->output->config.connector->connector_id, 1, mode);
>   	igt_assert_eq(ret, 0);
>   
>   	data->pipe_crc = igt_pipe_crc_new(data->drm_fd,
> @@ -562,9 +589,7 @@ static void test_crc(data_t *data)
>   
>   	while (clock_ms() - start < 2000) {
>   		/* fill the next fb with the expected color */
> -		cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
> -		igt_paint_color(cr, 0, 0, 1, data->bufs[frame].height, 1.0, 0.0, 0.0);
> -		igt_put_cairo_ctx(cr);
> +		paint_fb(data, &data->bufs[frame], 1, height, 0xff0000ff);
>   
>   		data->flip_pending = true;
>   		ret = drmModePageFlip(data->drm_fd, data->crtc_id, data->bufs[frame].fb_id,
> @@ -575,9 +600,7 @@ static void test_crc(data_t *data)
>   
>   		/* clobber the previous fb which should no longer be scanned out */
>   		frame = !frame;
> -		cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
> -		igt_paint_color_rand(cr, 0, 0, 1, data->bufs[frame].height);
> -		igt_put_cairo_ctx(cr);
> +		paint_fb(data, &data->bufs[frame], 1, height, rand());
>   	}
>   
>   	igt_pipe_crc_stop(data->pipe_crc);
> @@ -644,6 +667,9 @@ igt_main
>   
>   		igt_require_f(igt_has_drm_cap(data.drm_fd, DRM_CAP_ASYNC_PAGE_FLIP),
>   			      "Async Flip is not supported\n");
> +
> +		if (is_intel_device(data.drm_fd))
> +			data.bops = buf_ops_create(data.drm_fd);
>   	}
>   
>   	igt_describe("Verify the async flip functionality and the fps during async flips");
> @@ -704,6 +730,8 @@ igt_main
>   		for (i = 0; i < NUM_FBS; i++)
>   			igt_remove_fb(data.drm_fd, &data.bufs[i]);
>   
> +		if (is_intel_device(data.drm_fd))
> +			buf_ops_destroy(data.bops);
>   		igt_display_reset(&data.display);
>   		igt_display_commit(&data.display);
>   		igt_display_fini(&data.display);

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2024-01-18  5:27 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-07 17:11 [PATCH i-g-t 1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw Ville Syrjala
2023-12-07 17:11 ` [PATCH i-g-t 2/2] lib/intel_bufops: Don't memcpy() simple structs Ville Syrjala
2023-12-07 20:49 ` ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw Patchwork
2023-12-07 23:09 ` ✓ CI.xeBAT: " Patchwork
2023-12-08  5:01 ` [PATCH i-g-t 1/2] " Modem, Bhanuprakash
2023-12-08 18:29   ` Ville Syrjälä
2023-12-19  1:00     ` Ville Syrjälä
2023-12-08  6:56 ` ✓ Fi.CI.IGT: success for series starting with [i-g-t,1/2] " Patchwork
2023-12-11 11:09 ` [PATCH i-g-t 1/2] " Karthik B S
2023-12-19  1:02 ` [PATCH i-g-t v2 " Ville Syrjala
2024-01-18  5:27   ` Karthik B S
2024-01-18  5:27     ` Karthik B S
2023-12-19  1:58 ` ✓ Fi.CI.BAT: success for series starting with [i-g-t,v2,1/2] tests/kms_async_flip: Speed up the CRC test on Intel hw (rev2) Patchwork
2023-12-19  4:56 ` ✓ CI.xeBAT: " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox