All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH 1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test
@ 2023-02-13 18:16 Bhawanpreet Lakha
  2023-02-13 18:16 ` [igt-dev] [PATCH 2/2] amdgpu_amd_plane: Add Multi MPO invalid test Bhawanpreet Lakha
                   ` (8 more replies)
  0 siblings, 9 replies; 18+ messages in thread
From: Bhawanpreet Lakha @ 2023-02-13 18:16 UTC (permalink / raw)
  To: igt-dev, rodrigo.siqueira, sunpeng.li, harry.wentland,
	nicholas.kazlauskas
  Cc: Bhawanpreet Lakha

[Why]
Some of our ASICs  support multiple overlay planes, so create
a test to test them

[How]
Create a plane with two holes and fill them up with 2 overlay planes

Signed-off-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Change-Id: If527d67ead59f64906a97c340845ac423d93a0aa
---
 tests/amdgpu/amd_plane.c | 128 ++++++++++++++++++++++++++++++++++++++-
 1 file changed, 127 insertions(+), 1 deletion(-)

diff --git a/tests/amdgpu/amd_plane.c b/tests/amdgpu/amd_plane.c
index b9eec677..d34cd1d9 100644
--- a/tests/amdgpu/amd_plane.c
+++ b/tests/amdgpu/amd_plane.c
@@ -42,6 +42,7 @@ typedef struct data {
         igt_plane_t *primary[MAX_PIPES];
         igt_plane_t *cursor[MAX_PIPES];
 	igt_plane_t *overlay[MAX_PIPES];
+	igt_plane_t *overlay2[MAX_PIPES];
         igt_output_t *output[MAX_PIPES];
         igt_pipe_t *pipe[MAX_PIPES];
         igt_pipe_crc_t *pipe_crc[MAX_PIPES];
@@ -144,7 +145,8 @@ static void lut_free(lut_t *lut)
 enum test {
 	MPO_SINGLE_PAN,
 	MPO_MULTI_PAN,
-	MPO_SCALE
+	MPO_SCALE,
+	MPO_MULTI_OVERLAY
 };
 
 static void test_init(data_t *data)
@@ -159,6 +161,8 @@ static void test_init(data_t *data)
 			data->pipe[i], DRM_PLANE_TYPE_PRIMARY);
 		data->overlay[i] = igt_pipe_get_plane_type_index(
 			data->pipe[i], DRM_PLANE_TYPE_OVERLAY, 0);
+		data->overlay2[i] = igt_pipe_get_plane_type_index(
+			data->pipe[i], DRM_PLANE_TYPE_OVERLAY, 1);
 		data->cursor[i] = igt_pipe_get_plane_type(
 			data->pipe[i], DRM_PLANE_TYPE_CURSOR);
 		data->pipe_crc[i] =
@@ -252,6 +256,7 @@ struct fbc {
 	igt_fb_t ref_primary;
 	igt_fb_t test_primary;
 	igt_fb_t test_overlay;
+	igt_fb_t test_overlay2;
 	igt_crc_t ref_crc;
 };
 
@@ -264,6 +269,115 @@ static void set_regamma_lut(data_t *data, lut_t const *lut, int n)
 				       size);
 }
 
+/*
+ * Compares the result of white backgroud with white window with and without MPO
+ *
+ * Reference crc:
+ * Draws a White background of size (pw,ph).
+ *
+ * Test crc:
+ * Draws a White Overlay of size (pw,ph) then creates a cutout of size (w,h) at location (x1, y1) and (x2, y2)
+ * Draws a White Primary plane of size (w, h) at location (x1,y1) (under the overlay)
+ * Draws a White Overlay of size (w, h) at location (x2,y2)
+ *
+ * NOTE: The reason for using White+White is to speed up the crc (reuse the ref crc for all cases vs taking
+ * a ref crc per flip)
+ */
+static void test_plane2(data_t *data, int n, int x1, int y1, int x2, int y2, int w, int h, int pw, int ph, struct fbc *fbc){
+
+	igt_crc_t test_crc;
+	igt_display_t *display = &data->display;
+
+	/* Reference: */
+
+	igt_plane_set_fb(data->primary[n], &fbc[n].ref_primary);
+
+	igt_plane_set_position(data->primary[n], 0, 0);
+	igt_plane_set_size(data->primary[n], pw, ph);
+
+	igt_display_commit_atomic(display, 0, 0);
+
+	/* Test: */
+	/* Draw a white overlay with two cutouts at (x1,y1) and (x2,y2) */
+	draw_color_alpha(&fbc[n].test_overlay2, 0, 0, pw, ph, 1.0, 1.0, 1.0, 1.0);
+	draw_color_alpha(&fbc[n].test_overlay2, x1, y1, w, h, 0.0, 0.0, 0.0, 0.0);
+	draw_color_alpha(&fbc[n].test_overlay2, x2, y2, w, h, 0.0, 0.0, 0.0, 0.0);
+
+	/* Draw a overlay to cover up one hole */
+	draw_color_alpha(&fbc[n].test_overlay, 0, 0, pw, ph, 0.0, 0.0, 0.0, 0.0);
+	draw_color_alpha(&fbc[n].test_overlay, x2, y2, w, h, 1.0, 1.0, 1.0, 1.0);
+
+	/* Draw a primary to cover up the other hole */
+	draw_color_alpha(&fbc[n].test_primary, 0, 0, w, h, 0.0, 0.0, 0.0, 0.0);
+	draw_color_alpha(&fbc[n].test_primary, 0, 0, w, h, 1.0, 1.0, 1.0, 1.0);
+
+	igt_plane_set_fb(data->primary[n], &fbc[n].test_primary);
+	igt_plane_set_fb(data->overlay[n], &fbc[n].test_overlay);
+	igt_plane_set_fb(data->overlay2[n], &fbc[n].test_overlay2);
+
+	/* Move the primary to cover one of the holes*/
+	igt_plane_set_position(data->primary[n], x1, y1);
+	igt_plane_set_size(data->primary[n], w, h);
+
+
+	igt_display_commit_atomic(display, 0, 0);
+	igt_pipe_crc_collect_crc(data->pipe_crc[n], &test_crc);
+	igt_plane_set_fb(data->overlay[n], NULL);
+	igt_plane_set_fb(data->overlay2[n], NULL);
+
+	igt_assert_crc_equal(&fbc[n].ref_crc, &test_crc);
+
+	/* Set window to white, this is to avoid flashing between black/white after each flip */
+	draw_color_alpha(&fbc[n].ref_primary, 0, 0, w, h, 1.0, 1.0, 1.0, 1.00);
+	igt_plane_set_fb(data->primary[n], &fbc[n].ref_primary);
+	igt_plane_set_position(data->primary[n], 0, 0);
+	igt_plane_set_size(data->primary[n], pw, ph);
+	igt_display_commit_atomic(display, 0, 0);
+
+
+}
+
+/*
+ * MPO_MULTI_OVERLAY: This test takes the plane sizes and assigns random position within the screen
+ *
+ * The test creates a white screen with 2 cutouts which are to be filled with 2 overlay planes.
+ * Testing multiple overlay planes
+ */
+static void test_multi_overlay(data_t *data, int display_count, int w, int h, struct fbc *fb)
+{
+
+	int x1,x2,y1,y2;
+
+	for (int n = 0; n < display_count; n++) {
+
+		int pw = data->w[n];
+		int ph = data->h[n];
+
+		for (int i = 0; i < 1; i++){
+
+			if (pw <= w && ph <= h)
+				break;
+
+			srand(time(NULL));
+
+			/* Generate random x,y positions for two cutouts*/
+			x1 = (rand() % (pw-w));
+			y1 = (rand() % (ph-h));
+
+			x2 = (rand() % (pw-w));
+			y2 = (rand() % (ph-h));
+
+
+			test_plane2(data, n, x1, y1, x2, y2, w,h, pw, ph, fb);
+
+		}
+	}
+
+	return;
+
+
+}
+
 /*
  * Compares the result of white backgroud with white window with and without MPO
  *
@@ -467,6 +581,10 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
 
 	test_init(data);
 
+	/* Skip test if we don't have 2 overlay planes */
+	if (test == MPO_MULTI_OVERLAY)
+		igt_skip_on(!data->overlay2[0]);
+
 	/* Skip if there is less valid outputs than the required. */
 	for_each_connected_output(display, output)
 		valid_outputs++;
@@ -494,6 +612,7 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
 		igt_create_fb(data->fd, w, h, DRM_FORMAT_XRGB8888, 0, &fb[n].ref_primary);
 		igt_create_color_fb(data->fd, w, h, DRM_FORMAT_XRGB8888, 0, 1.0, 1.0, 1.0, &fb[n].ref_primary);
 		igt_create_fb(data->fd, w, h, DRM_FORMAT_ARGB8888, 0, &fb[n].test_overlay);
+		igt_create_fb(data->fd, w, h, DRM_FORMAT_ARGB8888, 0, &fb[n].test_overlay2);
 
 		igt_plane_set_fb(data->primary[n], &fb[n].ref_primary);
 
@@ -520,6 +639,8 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
 
 		if (test == MPO_SINGLE_PAN)
 			test_panning_1_display(data, display_count, videos[i][0], videos[i][1], fb);
+		if (test == MPO_MULTI_OVERLAY)
+			test_multi_overlay(data, display_count, videos[i][0], videos[i][1], fb);
 		if (test == MPO_MULTI_PAN)
 			test_panning_2_display(data, videos[i][0], videos[i][1], fb);
 		if(test == MPO_SCALE)
@@ -536,6 +657,7 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
 	for (int n = 0; n < display_count; n++) {
 		igt_remove_fb(data->fd, &fb[n].ref_primary);
 		igt_remove_fb(data->fd, &fb[n].test_overlay);
+		igt_remove_fb(data->fd, &fb[n].test_overlay2);
 	}
 }
 /*
@@ -798,6 +920,10 @@ igt_main
 	igt_subtest("mpo-pan-multi-p010")
 		test_display_mpo(&data, MPO_MULTI_PAN, DRM_FORMAT_P010, DISPLAYS_TO_TEST);
 
+	igt_describe("Multi MPO");
+	igt_subtest("multi-mpo")
+		test_display_mpo(&data, MPO_MULTI_OVERLAY, DRM_FORMAT_NV12, 1);
+
 	igt_describe("MPO and scaling RGB primary plane");
 	igt_subtest("mpo-scale-rgb")
 		test_display_mpo(&data, MPO_SCALE, DRM_FORMAT_XRGB8888, 1);
-- 
2.25.1

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

* [igt-dev] [PATCH 2/2] amdgpu_amd_plane: Add Multi MPO invalid test
  2023-02-13 18:16 [igt-dev] [PATCH 1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test Bhawanpreet Lakha
@ 2023-02-13 18:16 ` Bhawanpreet Lakha
  2023-02-17 20:38   ` Leo Li
  2023-02-13 19:33 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test Patchwork
                   ` (7 subsequent siblings)
  8 siblings, 1 reply; 18+ messages in thread
From: Bhawanpreet Lakha @ 2023-02-13 18:16 UTC (permalink / raw)
  To: igt-dev, rodrigo.siqueira, sunpeng.li, harry.wentland,
	nicholas.kazlauskas
  Cc: Bhawanpreet Lakha

[Why]
We cannot draw cursor on a video plane so if the usermode trys to use
the topmost plane as a video plane we should reject that commit

[How]
Trying to use a video format (NV12) as the topmost plane should fail
atomic check

Signed-off-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Change-Id: Ida52c3cbb6e59ed4759496e2a3fc35255bf522e0
---
 tests/amdgpu/amd_plane.c | 55 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/tests/amdgpu/amd_plane.c b/tests/amdgpu/amd_plane.c
index d34cd1d9..46f90c6c 100644
--- a/tests/amdgpu/amd_plane.c
+++ b/tests/amdgpu/amd_plane.c
@@ -557,6 +557,57 @@ static void test_panning_2_display(data_t *data, int w, int h, struct fbc *fbc)
 
 }
 
+/*
+ * This tests invalid plane format order
+ *
+ * Since we cannot draw a cursor on a video plane the top most plane cannot be a video plane.
+ * This test trys to commit a configuration where the topmost plane is a video plane. This is
+ * expected to fail since we do not support that configuration.
+ */
+static void test_multi_mpo_invalid(data_t *data)
+{
+	igt_display_t *display = &data->display;
+	igt_output_t *output;
+	uint32_t regamma_lut_size;
+	lut_t lut;
+	struct fbc fb[4];
+	int valid_outputs = 0;
+	int w, h;
+	int ret;
+
+	test_init(data);
+
+	w = data->w[0];
+	h = data->h[0];
+
+	/* Skip test if we don't have 2 overlay planes */
+	igt_skip_on(!data->overlay2[0]);
+
+	igt_output_set_pipe(data->output[0], data->pipe_id[0]);
+
+	igt_create_color_fb(data->fd, w, h, DRM_FORMAT_XRGB8888, 0, 1.0, 1.0, 1.0, &fb[0].test_primary);
+	igt_create_fb(data->fd, w, h, DRM_FORMAT_NV12, 0, &fb[0].test_overlay);
+
+	/* Top most plane is NV12 (video plane) */
+	igt_create_fb(data->fd, w, h, DRM_FORMAT_NV12, 0, &fb[0].test_overlay2);
+
+	igt_plane_set_fb(data->primary[0], &fb[0].test_primary);
+	igt_plane_set_fb(data->overlay[0], &fb[0].test_overlay);
+	igt_plane_set_fb(data->overlay2[0], &fb[0].test_overlay2);
+
+	/* This should fail as the topmost plane is NV12 */
+	ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_TEST_ONLY, NULL);
+
+	if (!ret)
+		igt_assert(0);
+
+	test_fini(data);
+
+	igt_remove_fb(data->fd, &fb[0].test_primary);
+	igt_remove_fb(data->fd, &fb[0].test_overlay);
+	igt_remove_fb(data->fd, &fb[0].test_overlay2);
+}
+
 /*
  * Setup and runner for panning test. Creates common video sizes and pans them across the display
  */
@@ -924,6 +975,10 @@ igt_main
 	igt_subtest("multi-mpo")
 		test_display_mpo(&data, MPO_MULTI_OVERLAY, DRM_FORMAT_NV12, 1);
 
+	igt_describe("Multi MPO invalid");
+	igt_subtest("multi-mpo-invalid")
+		test_multi_mpo_invalid(&data);
+
 	igt_describe("MPO and scaling RGB primary plane");
 	igt_subtest("mpo-scale-rgb")
 		test_display_mpo(&data, MPO_SCALE, DRM_FORMAT_XRGB8888, 1);
-- 
2.25.1

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

* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test
  2023-02-13 18:16 [igt-dev] [PATCH 1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test Bhawanpreet Lakha
  2023-02-13 18:16 ` [igt-dev] [PATCH 2/2] amdgpu_amd_plane: Add Multi MPO invalid test Bhawanpreet Lakha
@ 2023-02-13 19:33 ` Patchwork
  2023-02-13 21:14 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 18+ messages in thread
From: Patchwork @ 2023-02-13 19:33 UTC (permalink / raw)
  To: Bhawanpreet Lakha; +Cc: igt-dev

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

== Series Details ==

Series: series starting with [1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test
URL   : https://patchwork.freedesktop.org/series/113966/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_12732 -> IGTPW_8490
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (37 -> 34)
------------------------------

  Additional (1): bat-atsm-1 
  Missing    (4): bat-kbl-2 bat-jsl-3 fi-snb-2520m fi-skl-6600u 

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

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

### IGT changes ###

#### Issues hit ####

  * igt@fbdev@write:
    - fi-blb-e6850:       [PASS][1] -> [SKIP][2] ([fdo#109271]) +4 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/fi-blb-e6850/igt@fbdev@write.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/fi-blb-e6850/igt@fbdev@write.html

  * igt@kms_chamelium_hpd@common-hpd-after-suspend:
    - fi-rkl-11600:       NOTRUN -> [SKIP][3] ([i915#7828])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/fi-rkl-11600/igt@kms_chamelium_hpd@common-hpd-after-suspend.html

  
#### Possible fixes ####

  * igt@gem_exec_suspend@basic-s0@lmem0:
    - {bat-dg2-11}:       [INCOMPLETE][4] -> [PASS][5]
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/bat-dg2-11/igt@gem_exec_suspend@basic-s0@lmem0.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/bat-dg2-11/igt@gem_exec_suspend@basic-s0@lmem0.html

  * igt@i915_selftest@live@hangcheck:
    - {bat-rpls-2}:       [ABORT][6] ([i915#7677] / [i915#8000]) -> [PASS][7]
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/bat-rpls-2/igt@i915_selftest@live@hangcheck.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/bat-rpls-2/igt@i915_selftest@live@hangcheck.html

  * igt@i915_selftest@live@migrate:
    - {bat-dg2-11}:       [DMESG-WARN][8] ([i915#7699]) -> [PASS][9]
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/bat-dg2-11/igt@i915_selftest@live@migrate.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/bat-dg2-11/igt@i915_selftest@live@migrate.html

  * igt@i915_suspend@basic-s2idle-without-i915:
    - fi-rkl-11600:       [ABORT][10] -> [PASS][11]
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/fi-rkl-11600/igt@i915_suspend@basic-s2idle-without-i915.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/fi-rkl-11600/igt@i915_suspend@basic-s2idle-without-i915.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#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1836]: https://gitlab.freedesktop.org/drm/intel/issues/1836
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
  [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#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
  [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
  [i915#6077]: https://gitlab.freedesktop.org/drm/intel/issues/6077
  [i915#6078]: https://gitlab.freedesktop.org/drm/intel/issues/6078
  [i915#6093]: https://gitlab.freedesktop.org/drm/intel/issues/6093
  [i915#6094]: https://gitlab.freedesktop.org/drm/intel/issues/6094
  [i915#6166]: https://gitlab.freedesktop.org/drm/intel/issues/6166
  [i915#6311]: https://gitlab.freedesktop.org/drm/intel/issues/6311
  [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
  [i915#6645]: https://gitlab.freedesktop.org/drm/intel/issues/6645
  [i915#6997]: https://gitlab.freedesktop.org/drm/intel/issues/6997
  [i915#7357]: https://gitlab.freedesktop.org/drm/intel/issues/7357
  [i915#7677]: https://gitlab.freedesktop.org/drm/intel/issues/7677
  [i915#7699]: https://gitlab.freedesktop.org/drm/intel/issues/7699
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#8000]: https://gitlab.freedesktop.org/drm/intel/issues/8000


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7160 -> IGTPW_8490

  CI-20190529: 20190529
  CI_DRM_12732: f0c0bf045b5ddf97f246d22ed9b658d16e798c77 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8490: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/index.html
  IGT_7160: 45da871dd2684227e93a2fc002b87dfc58bd5fd9 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

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

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

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

* [igt-dev] ✓ Fi.CI.IGT: success for series starting with [1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test
  2023-02-13 18:16 [igt-dev] [PATCH 1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test Bhawanpreet Lakha
  2023-02-13 18:16 ` [igt-dev] [PATCH 2/2] amdgpu_amd_plane: Add Multi MPO invalid test Bhawanpreet Lakha
  2023-02-13 19:33 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test Patchwork
@ 2023-02-13 21:14 ` Patchwork
  2023-02-17 20:24 ` [igt-dev] [PATCH 1/2] " Leo Li
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 18+ messages in thread
From: Patchwork @ 2023-02-13 21:14 UTC (permalink / raw)
  To: Bhawanpreet Lakha; +Cc: igt-dev

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

== Series Details ==

Series: series starting with [1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test
URL   : https://patchwork.freedesktop.org/series/113966/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_12732_full -> IGTPW_8490_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (11 -> 11)
------------------------------

  No changes in participating hosts

New tests
---------

  New tests have been introduced between CI_DRM_12732_full and IGTPW_8490_full:

### New IGT tests (2) ###

  * igt@kms_cursor_edge_walk@256x256-left-edge@pipe-b-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_cursor_edge_walk@64x64-top-bottom@pipe-b-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_fair@basic-none-share@rcs0:
    - shard-glk:          [PASS][1] -> [FAIL][2] ([i915#2842]) +2 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-glk7/igt@gem_exec_fair@basic-none-share@rcs0.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-glk2/igt@gem_exec_fair@basic-none-share@rcs0.html

  * igt@gen9_exec_parse@allowed-all:
    - shard-apl:          [PASS][3] -> [ABORT][4] ([i915#5566])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-apl6/igt@gen9_exec_parse@allowed-all.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-apl1/igt@gen9_exec_parse@allowed-all.html

  * igt@i915_pm_rps@engine-order:
    - shard-apl:          [PASS][5] -> [FAIL][6] ([i915#6537])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-apl6/igt@i915_pm_rps@engine-order.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-apl1/igt@i915_pm_rps@engine-order.html

  * igt@i915_selftest@live@gt_heartbeat:
    - shard-apl:          [PASS][7] -> [DMESG-FAIL][8] ([i915#5334])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-apl6/igt@i915_selftest@live@gt_heartbeat.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-apl7/igt@i915_selftest@live@gt_heartbeat.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-hflip:
    - shard-apl:          NOTRUN -> [SKIP][9] ([fdo#109271]) +3 similar issues
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-apl4/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-hflip.html

  * igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size:
    - shard-apl:          [PASS][10] -> [FAIL][11] ([i915#2346]) +1 similar issue
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-apl2/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-apl3/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html

  * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ac-hdmi-a1-hdmi-a2:
    - shard-glk:          [PASS][12] -> [FAIL][13] ([i915#79])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-glk7/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ac-hdmi-a1-hdmi-a2.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-glk8/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ac-hdmi-a1-hdmi-a2.html

  * igt@kms_flip@2x-nonexisting-fb:
    - shard-snb:          NOTRUN -> [SKIP][14] ([fdo#109271]) +21 similar issues
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-snb4/igt@kms_flip@2x-nonexisting-fb.html

  * igt@kms_vblank@pipe-b-accuracy-idle:
    - shard-glk:          [PASS][15] -> [FAIL][16] ([i915#43])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-glk4/igt@kms_vblank@pipe-b-accuracy-idle.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-glk7/igt@kms_vblank@pipe-b-accuracy-idle.html

  
#### Possible fixes ####

  * igt@drm_fdinfo@idle@rcs0:
    - {shard-rkl}:        [FAIL][17] ([i915#7742]) -> [PASS][18] +1 similar issue
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-rkl-1/igt@drm_fdinfo@idle@rcs0.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-rkl-1/igt@drm_fdinfo@idle@rcs0.html

  * igt@fbdev@nullptr:
    - {shard-rkl}:        [SKIP][19] ([i915#2582]) -> [PASS][20] +1 similar issue
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-rkl-1/igt@fbdev@nullptr.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-rkl-2/igt@fbdev@nullptr.html

  * igt@feature_discovery@psr1:
    - {shard-rkl}:        [SKIP][21] ([i915#658]) -> [PASS][22]
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-rkl-2/igt@feature_discovery@psr1.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-rkl-6/igt@feature_discovery@psr1.html

  * igt@gem_ctx_persistence@legacy-engines-hang@blt:
    - {shard-rkl}:        [SKIP][23] ([i915#6252]) -> [PASS][24]
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-rkl-5/igt@gem_ctx_persistence@legacy-engines-hang@blt.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-rkl-2/igt@gem_ctx_persistence@legacy-engines-hang@blt.html

  * igt@gem_eio@in-flight-suspend:
    - {shard-rkl}:        [FAIL][25] ([i915#5115] / [i915#7052]) -> [PASS][26] +1 similar issue
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-rkl-3/igt@gem_eio@in-flight-suspend.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-rkl-1/igt@gem_eio@in-flight-suspend.html

  * igt@gem_eio@kms:
    - {shard-dg1}:        [FAIL][27] ([i915#5784]) -> [PASS][28]
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-dg1-12/igt@gem_eio@kms.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-dg1-15/igt@gem_eio@kms.html

  * igt@gem_exec_endless@dispatch@bcs0:
    - {shard-rkl}:        [SKIP][29] ([i915#6247]) -> [PASS][30]
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-rkl-5/igt@gem_exec_endless@dispatch@bcs0.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-rkl-6/igt@gem_exec_endless@dispatch@bcs0.html

  * igt@gem_exec_fair@basic-deadline:
    - {shard-rkl}:        [FAIL][31] ([i915#2846]) -> [PASS][32]
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-rkl-6/igt@gem_exec_fair@basic-deadline.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-rkl-2/igt@gem_exec_fair@basic-deadline.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-glk:          [FAIL][33] ([i915#2842]) -> [PASS][34]
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-glk5/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-glk6/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gem_exec_fair@basic-pace@rcs0:
    - {shard-rkl}:        [FAIL][35] ([i915#2842]) -> [PASS][36] +2 similar issues
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-rkl-2/igt@gem_exec_fair@basic-pace@rcs0.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-rkl-5/igt@gem_exec_fair@basic-pace@rcs0.html

  * igt@gem_exec_reloc@basic-write-read-noreloc:
    - {shard-rkl}:        [SKIP][37] ([i915#3281]) -> [PASS][38] +6 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-rkl-6/igt@gem_exec_reloc@basic-write-read-noreloc.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-rkl-5/igt@gem_exec_reloc@basic-write-read-noreloc.html

  * igt@gem_exec_schedule@semaphore-power:
    - {shard-rkl}:        [SKIP][39] ([i915#7276]) -> [PASS][40]
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-rkl-4/igt@gem_exec_schedule@semaphore-power.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-rkl-5/igt@gem_exec_schedule@semaphore-power.html

  * igt@gem_readwrite@write-bad-handle:
    - {shard-rkl}:        [SKIP][41] ([i915#3282]) -> [PASS][42] +2 similar issues
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-rkl-2/igt@gem_readwrite@write-bad-handle.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-rkl-5/igt@gem_readwrite@write-bad-handle.html

  * igt@gen9_exec_parse@allowed-single:
    - shard-apl:          [ABORT][43] ([i915#5566]) -> [PASS][44]
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-apl1/igt@gen9_exec_parse@allowed-single.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-apl7/igt@gen9_exec_parse@allowed-single.html

  * igt@gen9_exec_parse@batch-invalid-length:
    - {shard-rkl}:        [SKIP][45] ([i915#2527]) -> [PASS][46] +1 similar issue
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-rkl-1/igt@gen9_exec_parse@batch-invalid-length.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-rkl-5/igt@gen9_exec_parse@batch-invalid-length.html

  * igt@i915_pm_dc@dc9-dpms:
    - shard-apl:          [SKIP][47] ([fdo#109271]) -> [PASS][48]
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-apl4/igt@i915_pm_dc@dc9-dpms.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-apl6/igt@i915_pm_dc@dc9-dpms.html

  * igt@i915_pm_rpm@fences-dpms:
    - {shard-rkl}:        [SKIP][49] ([i915#1849]) -> [PASS][50]
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-rkl-4/igt@i915_pm_rpm@fences-dpms.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-rkl-6/igt@i915_pm_rpm@fences-dpms.html

  * {igt@i915_power@sanity}:
    - {shard-rkl}:        [SKIP][51] ([i915#7984]) -> [PASS][52]
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-rkl-6/igt@i915_power@sanity.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-rkl-5/igt@i915_power@sanity.html

  * igt@kms_big_fb@x-tiled-64bpp-rotate-180:
    - {shard-rkl}:        [SKIP][53] ([i915#1845] / [i915#4098]) -> [PASS][54] +19 similar issues
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-rkl-3/igt@kms_big_fb@x-tiled-64bpp-rotate-180.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-rkl-6/igt@kms_big_fb@x-tiled-64bpp-rotate-180.html

  * igt@kms_ccs@pipe-c-bad-aux-stride-y_tiled_gen12_rc_ccs_cc:
    - {shard-tglu}:       [SKIP][55] ([i915#1845] / [i915#7651]) -> [PASS][56] +4 similar issues
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-tglu-6/igt@kms_ccs@pipe-c-bad-aux-stride-y_tiled_gen12_rc_ccs_cc.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-tglu-3/igt@kms_ccs@pipe-c-bad-aux-stride-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions:
    - shard-glk:          [FAIL][57] ([i915#2346]) -> [PASS][58]
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-glk3/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-glk7/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-pgflip-blt:
    - {shard-tglu}:       [SKIP][59] ([i915#1849]) -> [PASS][60] +1 similar issue
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-tglu-6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-pgflip-blt.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-tglu-3/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@fbc-tiling-linear:
    - {shard-rkl}:        [SKIP][61] ([i915#1849] / [i915#4098]) -> [PASS][62] +13 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-rkl-3/igt@kms_frontbuffer_tracking@fbc-tiling-linear.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-tiling-linear.html

  * igt@kms_universal_plane@universal-plane-pipe-d-functional:
    - {shard-tglu}:       [SKIP][63] ([fdo#109274]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-tglu-6/igt@kms_universal_plane@universal-plane-pipe-d-functional.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-tglu-7/igt@kms_universal_plane@universal-plane-pipe-d-functional.html

  * igt@prime_vgem@basic-fence-flip:
    - {shard-tglu}:       [SKIP][65] ([fdo#109295]) -> [PASS][66]
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12732/shard-tglu-6/igt@prime_vgem@basic-fence-flip.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/shard-tglu-5/igt@prime_vgem@basic-fence-flip.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#109279]: https://bugs.freedesktop.org/show_bug.cgi?id=109279
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308
  [fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309
  [fdo#109312]: https://bugs.freedesktop.org/show_bug.cgi?id=109312
  [fdo#109314]: https://bugs.freedesktop.org/show_bug.cgi?id=109314
  [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#110542]: https://bugs.freedesktop.org/show_bug.cgi?id=110542
  [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
  [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
  [fdo#111644]: https://bugs.freedesktop.org/show_bug.cgi?id=111644
  [fdo#111656]: https://bugs.freedesktop.org/show_bug.cgi?id=111656
  [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
  [fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1257]: https://gitlab.freedesktop.org/drm/intel/issues/1257
  [i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [i915#1755]: https://gitlab.freedesktop.org/drm/intel/issues/1755
  [i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769
  [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
  [i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
  [i915#1850]: https://gitlab.freedesktop.org/drm/intel/issues/1850
  [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
  [i915#2434]: https://gitlab.freedesktop.org/drm/intel/issues/2434
  [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
  [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
  [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
  [i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658
  [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
  [i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
  [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
  [i915#284]: https://gitlab.freedesktop.org/drm/intel/issues/284
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
  [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
  [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
  [i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116
  [i915#315]: https://gitlab.freedesktop.org/drm/intel/issues/315
  [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
  [i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299
  [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
  [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#3528]: https://gitlab.freedesktop.org/drm/intel/issues/3528
  [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
  [i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3558]: https://gitlab.freedesktop.org/drm/intel/issues/3558
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
  [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
  [i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
  [i915#3778]: https://gitlab.freedesktop.org/drm/intel/issues/3778
  [i915#3825]: https://gitlab.freedesktop.org/drm/intel/issues/3825
  [i915#3826]: https://gitlab.freedesktop.org/drm/intel/issues/3826
  [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#3952]: https://gitlab.freedesktop.org/drm/intel/issues/3952
  [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
  [i915#3966]: https://gitlab.freedesktop.org/drm/intel/issues/3966
  [i915#404]: https://gitlab.freedesktop.org/drm/intel/issues/404
  [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
  [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#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#43]: https://gitlab.freedesktop.org/drm/intel/issues/43
  [i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
  [i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
  [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
  [i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4767]: https://gitlab.freedesktop.org/drm/intel/issues/4767
  [i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
  [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
  [i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
  [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
  [i915#4859]: https://gitlab.freedesktop.org/drm/intel/issues/4859
  [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
  [i915#4958]: https://gitlab.freedesktop.org/drm/intel/issues/4958
  [i915#5115]: https://gitlab.freedesktop.org/drm/intel/issues/5115
  [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
  [i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288
  [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
  [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
  [i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439
  [i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461
  [i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
  [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
  [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#6227]: https://gitlab.freedesktop.org/drm/intel/issues/6227
  [i915#6245]: https://gitlab.freedesktop.org/drm/intel/issues/6245
  [i915#6247]: https://gitlab.freedesktop.org/drm/intel/issues/6247
  [i915#6248]: https://gitlab.freedesktop.org/drm/intel/issues/6248
  [i915#6252]: https://gitlab.freedesktop.org/drm/intel/issues/6252
  [i915#6259]: https://gitlab.freedesktop.org/drm/intel/issues/6259
  [i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301
  [i915#6334]: https://gitlab.freedesktop.org/drm/intel/issues/6334
  [i915#6335]: https://gitlab.freedesktop.org/drm/intel/issues/6335
  [i915#6412]: https://gitlab.freedesktop.org/drm/intel/issues/6412
  [i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433
  [i915#6497]: https://gitlab.freedesktop.org/drm/intel/issues/6497
  [i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524
  [i915#6537]: https://gitlab.freedesktop.org/drm/intel/issues/6537
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
  [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
  [i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768
  [i915#6944]: https://gitlab.freedesktop.org/drm/intel/issues/6944
  [i915#6946]: https://gitlab.freedesktop.org/drm/intel/issues/6946
  [i915#6953]: https://gitlab.freedesktop.org/drm/intel/issues/6953
  [i915#7052]: https://gitlab.freedesktop.org/drm/intel/issues/7052
  [i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
  [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
  [i915#7128]: https://gitlab.freedesktop.org/drm/intel/issues/7128
  [i915#7276]: https://gitlab.freedesktop.org/drm/intel/issues/7276
  [i915#7294]: https://gitlab.freedesktop.org/drm/intel/issues/7294
  [i915#7456]: https://gitlab.freedesktop.org/drm/intel/issues/7456
  [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
  [i915#7651]: https://gitlab.freedesktop.org/drm/intel/issues/7651
  [i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697
  [i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701
  [i915#7707]: https://gitlab.freedesktop.org/drm/intel/issues/7707
  [i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
  [i915#7742]: https://gitlab.freedesktop.org/drm/intel/issues/7742
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
  [i915#7949]: https://gitlab.freedesktop.org/drm/intel/issues/7949
  [i915#7957]: https://gitlab.freedesktop.org/drm/intel/issues/7957
  [i915#7975]: https://gitlab.freedesktop.org/drm/intel/issues/7975
  [i915#7984]: https://gitlab.freedesktop.org/drm/intel/issues/7984
  [i915#8155]: https://gitlab.freedesktop.org/drm/intel/issues/8155


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7160 -> IGTPW_8490

  CI-20190529: 20190529
  CI_DRM_12732: f0c0bf045b5ddf97f246d22ed9b658d16e798c77 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8490: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8490/index.html
  IGT_7160: 45da871dd2684227e93a2fc002b87dfc58bd5fd9 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

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

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

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

* Re: [igt-dev] [PATCH 1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test
  2023-02-13 18:16 [igt-dev] [PATCH 1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test Bhawanpreet Lakha
                   ` (2 preceding siblings ...)
  2023-02-13 21:14 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
@ 2023-02-17 20:24 ` Leo Li
  2023-02-17 20:43   ` Bhawanpreet Lakha
  2023-03-13 16:32   ` Bhawanpreet Lakha
  2023-03-13 17:18 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test (rev2) Patchwork
                   ` (4 subsequent siblings)
  8 siblings, 2 replies; 18+ messages in thread
From: Leo Li @ 2023-02-17 20:24 UTC (permalink / raw)
  To: Bhawanpreet Lakha, igt-dev, rodrigo.siqueira, harry.wentland,
	nicholas.kazlauskas




On 2/13/23 13:16, Bhawanpreet Lakha wrote:
> [Why]
> Some of our ASICs  support multiple overlay planes, so create
> a test to test them
> 
> [How]
> Create a plane with two holes and fill them up with 2 overlay planes
> 
> Signed-off-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
> Change-Id: If527d67ead59f64906a97c340845ac423d93a0aa
> ---
>   tests/amdgpu/amd_plane.c | 128 ++++++++++++++++++++++++++++++++++++++-
>   1 file changed, 127 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/amdgpu/amd_plane.c b/tests/amdgpu/amd_plane.c
> index b9eec677..d34cd1d9 100644
> --- a/tests/amdgpu/amd_plane.c
> +++ b/tests/amdgpu/amd_plane.c
> @@ -42,6 +42,7 @@ typedef struct data {
>           igt_plane_t *primary[MAX_PIPES];
>           igt_plane_t *cursor[MAX_PIPES];
>   	igt_plane_t *overlay[MAX_PIPES];
> +	igt_plane_t *overlay2[MAX_PIPES];
>           igt_output_t *output[MAX_PIPES];
>           igt_pipe_t *pipe[MAX_PIPES];
>           igt_pipe_crc_t *pipe_crc[MAX_PIPES];
> @@ -144,7 +145,8 @@ static void lut_free(lut_t *lut)
>   enum test {
>   	MPO_SINGLE_PAN,
>   	MPO_MULTI_PAN,
> -	MPO_SCALE
> +	MPO_SCALE,
> +	MPO_MULTI_OVERLAY
>   };
>   
>   static void test_init(data_t *data)
> @@ -159,6 +161,8 @@ static void test_init(data_t *data)
>   			data->pipe[i], DRM_PLANE_TYPE_PRIMARY);
>   		data->overlay[i] = igt_pipe_get_plane_type_index(
>   			data->pipe[i], DRM_PLANE_TYPE_OVERLAY, 0);
> +		data->overlay2[i] = igt_pipe_get_plane_type_index(
> +			data->pipe[i], DRM_PLANE_TYPE_OVERLAY, 1);
>   		data->cursor[i] = igt_pipe_get_plane_type(
>   			data->pipe[i], DRM_PLANE_TYPE_CURSOR);
>   		data->pipe_crc[i] =
> @@ -252,6 +256,7 @@ struct fbc {
>   	igt_fb_t ref_primary;
>   	igt_fb_t test_primary;
>   	igt_fb_t test_overlay;
> +	igt_fb_t test_overlay2;
>   	igt_crc_t ref_crc;
>   };
>   
> @@ -264,6 +269,115 @@ static void set_regamma_lut(data_t *data, lut_t const *lut, int n)
>   				       size);
>   }
>   
> +/*
> + * Compares the result of white backgroud with white window with and without MPO
> + *
> + * Reference crc:
> + * Draws a White background of size (pw,ph).
> + *
> + * Test crc:
> + * Draws a White Overlay of size (pw,ph) then creates a cutout of size (w,h) at location (x1, y1) and (x2, y2)
> + * Draws a White Primary plane of size (w, h) at location (x1,y1) (under the overlay)
> + * Draws a White Overlay of size (w, h) at location (x2,y2)
> + *
> + * NOTE: The reason for using White+White is to speed up the crc (reuse the ref crc for all cases vs taking
> + * a ref crc per flip)
> + */
> +static void test_plane2(data_t *data, int n, int x1, int y1, int x2, int y2, int w, int h, int pw, int ph, struct fbc *fbc){
> +
> +	igt_crc_t test_crc;
> +	igt_display_t *display = &data->display;
> +
> +	/* Reference: */
> +
> +	igt_plane_set_fb(data->primary[n], &fbc[n].ref_primary);
> +
> +	igt_plane_set_position(data->primary[n], 0, 0);
> +	igt_plane_set_size(data->primary[n], pw, ph);
> +
> +	igt_display_commit_atomic(display, 0, 0);
> +

Should ref_crc be collected here?

> +	/* Test: */
> +	/* Draw a white overlay with two cutouts at (x1,y1) and (x2,y2) */
> +	draw_color_alpha(&fbc[n].test_overlay2, 0, 0, pw, ph, 1.0, 1.0, 1.0, 1.0);
> +	draw_color_alpha(&fbc[n].test_overlay2, x1, y1, w, h, 0.0, 0.0, 0.0, 0.0);
> +	draw_color_alpha(&fbc[n].test_overlay2, x2, y2, w, h, 0.0, 0.0, 0.0, 0.0);
> +
> +	/* Draw a overlay to cover up one hole */
> +	draw_color_alpha(&fbc[n].test_overlay, 0, 0, pw, ph, 0.0, 0.0, 0.0, 0.0);
> +	draw_color_alpha(&fbc[n].test_overlay, x2, y2, w, h, 1.0, 1.0, 1.0, 1.0);
> +
> +	/* Draw a primary to cover up the other hole */
> +	draw_color_alpha(&fbc[n].test_primary, 0, 0, w, h, 0.0, 0.0, 0.0, 0.0);
> +	draw_color_alpha(&fbc[n].test_primary, 0, 0, w, h, 1.0, 1.0, 1.0, 1.0);
> +
> +	igt_plane_set_fb(data->primary[n], &fbc[n].test_primary);
> +	igt_plane_set_fb(data->overlay[n], &fbc[n].test_overlay);
> +	igt_plane_set_fb(data->overlay2[n], &fbc[n].test_overlay2);
> +
> +	/* Move the primary to cover one of the holes*/
> +	igt_plane_set_position(data->primary[n], x1, y1);
> +	igt_plane_set_size(data->primary[n], w, h);
> +
> +
> +	igt_display_commit_atomic(display, 0, 0);
> +	igt_pipe_crc_collect_crc(data->pipe_crc[n], &test_crc);
> +	igt_plane_set_fb(data->overlay[n], NULL);
> +	igt_plane_set_fb(data->overlay2[n], NULL);
> +
> +	igt_assert_crc_equal(&fbc[n].ref_crc, &test_crc);
> +
> +	/* Set window to white, this is to avoid flashing between black/white after each flip */
> +	draw_color_alpha(&fbc[n].ref_primary, 0, 0, w, h, 1.0, 1.0, 1.0, 1.00);
> +	igt_plane_set_fb(data->primary[n], &fbc[n].ref_primary);
> +	igt_plane_set_position(data->primary[n], 0, 0);
> +	igt_plane_set_size(data->primary[n], pw, ph);
> +	igt_display_commit_atomic(display, 0, 0);
> +
> +
> +}
> +
> +/*
> + * MPO_MULTI_OVERLAY: This test takes the plane sizes and assigns random position within the screen
> + *
> + * The test creates a white screen with 2 cutouts which are to be filled with 2 overlay planes.
> + * Testing multiple overlay planes
> + */
> +static void test_multi_overlay(data_t *data, int display_count, int w, int h, struct fbc *fb)
> +{
> +
> +	int x1,x2,y1,y2;
> +
> +	for (int n = 0; n < display_count; n++) {
> +
> +		int pw = data->w[n];
> +		int ph = data->h[n];
> +
> +		for (int i = 0; i < 1; i++){
> +
> +			if (pw <= w && ph <= h)
> +				break;
> +
> +			srand(time(NULL));
> +
> +			/* Generate random x,y positions for two cutouts*/
> +			x1 = (rand() % (pw-w));
> +			y1 = (rand() % (ph-h));
> +
> +			x2 = (rand() % (pw-w));
> +			y2 = (rand() % (ph-h));
> +

I wonder if using random positions can cause hard-to-reproduce failures.
Is there something in particular being tested via rand, or can we use a
fixed set of positions similar to test_cursor_spots() in
kms_plane_cursor?

Thanks,
Leo

> +
> +			test_plane2(data, n, x1, y1, x2, y2, w,h, pw, ph, fb);
> +
> +		}
> +	}
> +
> +	return;
> +
> +
> +}
> +
>   /*
>    * Compares the result of white backgroud with white window with and without MPO
>    *
> @@ -467,6 +581,10 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
>   
>   	test_init(data);
>   
> +	/* Skip test if we don't have 2 overlay planes */
> +	if (test == MPO_MULTI_OVERLAY)
> +		igt_skip_on(!data->overlay2[0]);
> +
>   	/* Skip if there is less valid outputs than the required. */
>   	for_each_connected_output(display, output)
>   		valid_outputs++;
> @@ -494,6 +612,7 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
>   		igt_create_fb(data->fd, w, h, DRM_FORMAT_XRGB8888, 0, &fb[n].ref_primary);
>   		igt_create_color_fb(data->fd, w, h, DRM_FORMAT_XRGB8888, 0, 1.0, 1.0, 1.0, &fb[n].ref_primary);
>   		igt_create_fb(data->fd, w, h, DRM_FORMAT_ARGB8888, 0, &fb[n].test_overlay);
> +		igt_create_fb(data->fd, w, h, DRM_FORMAT_ARGB8888, 0, &fb[n].test_overlay2);
>   
>   		igt_plane_set_fb(data->primary[n], &fb[n].ref_primary);
>   
> @@ -520,6 +639,8 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
>   
>   		if (test == MPO_SINGLE_PAN)
>   			test_panning_1_display(data, display_count, videos[i][0], videos[i][1], fb);
> +		if (test == MPO_MULTI_OVERLAY)
> +			test_multi_overlay(data, display_count, videos[i][0], videos[i][1], fb);
>   		if (test == MPO_MULTI_PAN)
>   			test_panning_2_display(data, videos[i][0], videos[i][1], fb);
>   		if(test == MPO_SCALE)
> @@ -536,6 +657,7 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
>   	for (int n = 0; n < display_count; n++) {
>   		igt_remove_fb(data->fd, &fb[n].ref_primary);
>   		igt_remove_fb(data->fd, &fb[n].test_overlay);
> +		igt_remove_fb(data->fd, &fb[n].test_overlay2);
>   	}
>   }
>   /*
> @@ -798,6 +920,10 @@ igt_main
>   	igt_subtest("mpo-pan-multi-p010")
>   		test_display_mpo(&data, MPO_MULTI_PAN, DRM_FORMAT_P010, DISPLAYS_TO_TEST);
>   
> +	igt_describe("Multi MPO");
> +	igt_subtest("multi-mpo")
> +		test_display_mpo(&data, MPO_MULTI_OVERLAY, DRM_FORMAT_NV12, 1);
> +
>   	igt_describe("MPO and scaling RGB primary plane");
>   	igt_subtest("mpo-scale-rgb")
>   		test_display_mpo(&data, MPO_SCALE, DRM_FORMAT_XRGB8888, 1);

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

* Re: [igt-dev] [PATCH 2/2] amdgpu_amd_plane: Add Multi MPO invalid test
  2023-02-13 18:16 ` [igt-dev] [PATCH 2/2] amdgpu_amd_plane: Add Multi MPO invalid test Bhawanpreet Lakha
@ 2023-02-17 20:38   ` Leo Li
  2023-03-23 17:30     ` Bhawanpreet Lakha
  0 siblings, 1 reply; 18+ messages in thread
From: Leo Li @ 2023-02-17 20:38 UTC (permalink / raw)
  To: Bhawanpreet Lakha, igt-dev, rodrigo.siqueira, harry.wentland,
	nicholas.kazlauskas



On 2/13/23 13:16, Bhawanpreet Lakha wrote:
> [Why]
> We cannot draw cursor on a video plane so if the usermode trys to use
> the topmost plane as a video plane we should reject that commit
> 
> [How]
> Trying to use a video format (NV12) as the topmost plane should fail
> atomic check
> 
> Signed-off-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
> Change-Id: Ida52c3cbb6e59ed4759496e2a3fc35255bf522e0

With Change-Id removed,
Reviewed-by: Leo Li <sunpeng.li@amd.com>

> ---
>   tests/amdgpu/amd_plane.c | 55 ++++++++++++++++++++++++++++++++++++++++
>   1 file changed, 55 insertions(+)
> 
> diff --git a/tests/amdgpu/amd_plane.c b/tests/amdgpu/amd_plane.c
> index d34cd1d9..46f90c6c 100644
> --- a/tests/amdgpu/amd_plane.c
> +++ b/tests/amdgpu/amd_plane.c
> @@ -557,6 +557,57 @@ static void test_panning_2_display(data_t *data, int w, int h, struct fbc *fbc)
>   
>   }
>   
> +/*
> + * This tests invalid plane format order
> + *
> + * Since we cannot draw a cursor on a video plane the top most plane cannot be a video plane.
> + * This test trys to commit a configuration where the topmost plane is a video plane. This is
> + * expected to fail since we do not support that configuration.
> + */
> +static void test_multi_mpo_invalid(data_t *data)
> +{
> +	igt_display_t *display = &data->display;
> +	igt_output_t *output;
> +	uint32_t regamma_lut_size;
> +	lut_t lut;
> +	struct fbc fb[4];
> +	int valid_outputs = 0;
> +	int w, h;
> +	int ret;
> +
> +	test_init(data);
> +
> +	w = data->w[0];
> +	h = data->h[0];
> +
> +	/* Skip test if we don't have 2 overlay planes */
> +	igt_skip_on(!data->overlay2[0]);
> +
> +	igt_output_set_pipe(data->output[0], data->pipe_id[0]);
> +
> +	igt_create_color_fb(data->fd, w, h, DRM_FORMAT_XRGB8888, 0, 1.0, 1.0, 1.0, &fb[0].test_primary);
> +	igt_create_fb(data->fd, w, h, DRM_FORMAT_NV12, 0, &fb[0].test_overlay);
> +
> +	/* Top most plane is NV12 (video plane) */
> +	igt_create_fb(data->fd, w, h, DRM_FORMAT_NV12, 0, &fb[0].test_overlay2);
> +
> +	igt_plane_set_fb(data->primary[0], &fb[0].test_primary);
> +	igt_plane_set_fb(data->overlay[0], &fb[0].test_overlay);
> +	igt_plane_set_fb(data->overlay2[0], &fb[0].test_overlay2);
> +
> +	/* This should fail as the topmost plane is NV12 */
> +	ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_TEST_ONLY, NULL);
> +
> +	if (!ret)
> +		igt_assert(0);
> +
> +	test_fini(data);
> +
> +	igt_remove_fb(data->fd, &fb[0].test_primary);
> +	igt_remove_fb(data->fd, &fb[0].test_overlay);
> +	igt_remove_fb(data->fd, &fb[0].test_overlay2);
> +}
> +
>   /*
>    * Setup and runner for panning test. Creates common video sizes and pans them across the display
>    */
> @@ -924,6 +975,10 @@ igt_main
>   	igt_subtest("multi-mpo")
>   		test_display_mpo(&data, MPO_MULTI_OVERLAY, DRM_FORMAT_NV12, 1);
>   
> +	igt_describe("Multi MPO invalid");
> +	igt_subtest("multi-mpo-invalid")
> +		test_multi_mpo_invalid(&data);
> +
>   	igt_describe("MPO and scaling RGB primary plane");
>   	igt_subtest("mpo-scale-rgb")
>   		test_display_mpo(&data, MPO_SCALE, DRM_FORMAT_XRGB8888, 1);

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

* Re: [igt-dev] [PATCH 1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test
  2023-02-17 20:24 ` [igt-dev] [PATCH 1/2] " Leo Li
@ 2023-02-17 20:43   ` Bhawanpreet Lakha
  2023-03-13 16:32   ` Bhawanpreet Lakha
  1 sibling, 0 replies; 18+ messages in thread
From: Bhawanpreet Lakha @ 2023-02-17 20:43 UTC (permalink / raw)
  To: Leo Li, igt-dev, rodrigo.siqueira, harry.wentland, nicholas.kazlauskas

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


On 2023-02-17 15:24, Leo Li wrote:
>
>
>
> On 2/13/23 13:16, Bhawanpreet Lakha wrote:
>> [Why]
>> Some of our ASICs  support multiple overlay planes, so create
>> a test to test them
>>
>> [How]
>> Create a plane with two holes and fill them up with 2 overlay planes
>>
>> Signed-off-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
>> Change-Id: If527d67ead59f64906a97c340845ac423d93a0aa
>> ---
>>   tests/amdgpu/amd_plane.c | 128 ++++++++++++++++++++++++++++++++++++++-
>>   1 file changed, 127 insertions(+), 1 deletion(-)
>>
>> diff --git a/tests/amdgpu/amd_plane.c b/tests/amdgpu/amd_plane.c
>> index b9eec677..d34cd1d9 100644
>> --- a/tests/amdgpu/amd_plane.c
>> +++ b/tests/amdgpu/amd_plane.c
>> @@ -42,6 +42,7 @@ typedef struct data {
>>           igt_plane_t *primary[MAX_PIPES];
>>           igt_plane_t *cursor[MAX_PIPES];
>>       igt_plane_t *overlay[MAX_PIPES];
>> +    igt_plane_t *overlay2[MAX_PIPES];
>>           igt_output_t *output[MAX_PIPES];
>>           igt_pipe_t *pipe[MAX_PIPES];
>>           igt_pipe_crc_t *pipe_crc[MAX_PIPES];
>> @@ -144,7 +145,8 @@ static void lut_free(lut_t *lut)
>>   enum test {
>>       MPO_SINGLE_PAN,
>>       MPO_MULTI_PAN,
>> -    MPO_SCALE
>> +    MPO_SCALE,
>> +    MPO_MULTI_OVERLAY
>>   };
>>     static void test_init(data_t *data)
>> @@ -159,6 +161,8 @@ static void test_init(data_t *data)
>>               data->pipe[i], DRM_PLANE_TYPE_PRIMARY);
>>           data->overlay[i] = igt_pipe_get_plane_type_index(
>>               data->pipe[i], DRM_PLANE_TYPE_OVERLAY, 0);
>> +        data->overlay2[i] = igt_pipe_get_plane_type_index(
>> +            data->pipe[i], DRM_PLANE_TYPE_OVERLAY, 1);
>>           data->cursor[i] = igt_pipe_get_plane_type(
>>               data->pipe[i], DRM_PLANE_TYPE_CURSOR);
>>           data->pipe_crc[i] =
>> @@ -252,6 +256,7 @@ struct fbc {
>>       igt_fb_t ref_primary;
>>       igt_fb_t test_primary;
>>       igt_fb_t test_overlay;
>> +    igt_fb_t test_overlay2;
>>       igt_crc_t ref_crc;
>>   };
>>   @@ -264,6 +269,115 @@ static void set_regamma_lut(data_t *data, 
>> lut_t const *lut, int n)
>>                          size);
>>   }
>>   +/*
>> + * Compares the result of white backgroud with white window with and 
>> without MPO
>> + *
>> + * Reference crc:
>> + * Draws a White background of size (pw,ph).
>> + *
>> + * Test crc:
>> + * Draws a White Overlay of size (pw,ph) then creates a cutout of 
>> size (w,h) at location (x1, y1) and (x2, y2)
>> + * Draws a White Primary plane of size (w, h) at location (x1,y1) 
>> (under the overlay)
>> + * Draws a White Overlay of size (w, h) at location (x2,y2)
>> + *
>> + * NOTE: The reason for using White+White is to speed up the crc 
>> (reuse the ref crc for all cases vs taking
>> + * a ref crc per flip)
>> + */
>> +static void test_plane2(data_t *data, int n, int x1, int y1, int x2, 
>> int y2, int w, int h, int pw, int ph, struct fbc *fbc){
>> +
>> +    igt_crc_t test_crc;
>> +    igt_display_t *display = &data->display;
>> +
>> +    /* Reference: */
>> +
>> +    igt_plane_set_fb(data->primary[n], &fbc[n].ref_primary);
>> +
>> +    igt_plane_set_position(data->primary[n], 0, 0);
>> +    igt_plane_set_size(data->primary[n], pw, ph);
>> +
>> +    igt_display_commit_atomic(display, 0, 0);
>> +
>
> Should ref_crc be collected here?

reference is stored in &fbc[n].ref_crc inside the main function 
test_display_mpo(). The Other MPO tests had alot of iterations so the 
reference crc was saved before starting the tests. Since the setup code 
is the same for this test, its using the same logic.

>
>> +    /* Test: */
>> +    /* Draw a white overlay with two cutouts at (x1,y1) and (x2,y2) */
>> +    draw_color_alpha(&fbc[n].test_overlay2, 0, 0, pw, ph, 1.0, 1.0, 
>> 1.0, 1.0);
>> +    draw_color_alpha(&fbc[n].test_overlay2, x1, y1, w, h, 0.0, 0.0, 
>> 0.0, 0.0);
>> +    draw_color_alpha(&fbc[n].test_overlay2, x2, y2, w, h, 0.0, 0.0, 
>> 0.0, 0.0);
>> +
>> +    /* Draw a overlay to cover up one hole */
>> +    draw_color_alpha(&fbc[n].test_overlay, 0, 0, pw, ph, 0.0, 0.0, 
>> 0.0, 0.0);
>> +    draw_color_alpha(&fbc[n].test_overlay, x2, y2, w, h, 1.0, 1.0, 
>> 1.0, 1.0);
>> +
>> +    /* Draw a primary to cover up the other hole */
>> +    draw_color_alpha(&fbc[n].test_primary, 0, 0, w, h, 0.0, 0.0, 
>> 0.0, 0.0);
>> +    draw_color_alpha(&fbc[n].test_primary, 0, 0, w, h, 1.0, 1.0, 
>> 1.0, 1.0);
>> +
>> +    igt_plane_set_fb(data->primary[n], &fbc[n].test_primary);
>> +    igt_plane_set_fb(data->overlay[n], &fbc[n].test_overlay);
>> +    igt_plane_set_fb(data->overlay2[n], &fbc[n].test_overlay2);
>> +
>> +    /* Move the primary to cover one of the holes*/
>> +    igt_plane_set_position(data->primary[n], x1, y1);
>> +    igt_plane_set_size(data->primary[n], w, h);
>> +
>> +
>> +    igt_display_commit_atomic(display, 0, 0);
>> +    igt_pipe_crc_collect_crc(data->pipe_crc[n], &test_crc);
>> +    igt_plane_set_fb(data->overlay[n], NULL);
>> +    igt_plane_set_fb(data->overlay2[n], NULL);
>> +
>> +    igt_assert_crc_equal(&fbc[n].ref_crc, &test_crc);
>> +
>> +    /* Set window to white, this is to avoid flashing between 
>> black/white after each flip */
>> +    draw_color_alpha(&fbc[n].ref_primary, 0, 0, w, h, 1.0, 1.0, 1.0, 
>> 1.00);
>> +    igt_plane_set_fb(data->primary[n], &fbc[n].ref_primary);
>> +    igt_plane_set_position(data->primary[n], 0, 0);
>> +    igt_plane_set_size(data->primary[n], pw, ph);
>> +    igt_display_commit_atomic(display, 0, 0);
>> +
>> +
>> +}
>> +
>> +/*
>> + * MPO_MULTI_OVERLAY: This test takes the plane sizes and assigns 
>> random position within the screen
>> + *
>> + * The test creates a white screen with 2 cutouts which are to be 
>> filled with 2 overlay planes.
>> + * Testing multiple overlay planes
>> + */
>> +static void test_multi_overlay(data_t *data, int display_count, int 
>> w, int h, struct fbc *fb)
>> +{
>> +
>> +    int x1,x2,y1,y2;
>> +
>> +    for (int n = 0; n < display_count; n++) {
>> +
>> +        int pw = data->w[n];
>> +        int ph = data->h[n];
>> +
>> +        for (int i = 0; i < 1; i++){
>> +
>> +            if (pw <= w && ph <= h)
>> +                break;
>> +
>> +            srand(time(NULL));
>> +
>> +            /* Generate random x,y positions for two cutouts*/
>> +            x1 = (rand() % (pw-w));
>> +            y1 = (rand() % (ph-h));
>> +
>> +            x2 = (rand() % (pw-w));
>> +            y2 = (rand() % (ph-h));
>> +
>
> I wonder if using random positions can cause hard-to-reproduce failures.
> Is there something in particular being tested via rand, or can we use a
> fixed set of positions similar to test_cursor_spots() in
> kms_plane_cursor?
> Thanks,
> Leo


No particular reason for using random positions, I will take a look at 
test_cursor_spots(). Thanks

>
>> +
>> +            test_plane2(data, n, x1, y1, x2, y2, w,h, pw, ph, fb);
>> +
>> +        }
>> +    }
>> +
>> +    return;
>> +
>> +
>> +}
>> +
>>   /*
>>    * Compares the result of white backgroud with white window with 
>> and without MPO
>>    *
>> @@ -467,6 +581,10 @@ static void test_display_mpo(data_t *data, enum 
>> test test, uint32_t format, int
>>         test_init(data);
>>   +    /* Skip test if we don't have 2 overlay planes */
>> +    if (test == MPO_MULTI_OVERLAY)
>> +        igt_skip_on(!data->overlay2[0]);
>> +
>>       /* Skip if there is less valid outputs than the required. */
>>       for_each_connected_output(display, output)
>>           valid_outputs++;
>> @@ -494,6 +612,7 @@ static void test_display_mpo(data_t *data, enum 
>> test test, uint32_t format, int
>>           igt_create_fb(data->fd, w, h, DRM_FORMAT_XRGB8888, 0, 
>> &fb[n].ref_primary);
>>           igt_create_color_fb(data->fd, w, h, DRM_FORMAT_XRGB8888, 0, 
>> 1.0, 1.0, 1.0, &fb[n].ref_primary);
>>           igt_create_fb(data->fd, w, h, DRM_FORMAT_ARGB8888, 0, 
>> &fb[n].test_overlay);
>> +        igt_create_fb(data->fd, w, h, DRM_FORMAT_ARGB8888, 0, 
>> &fb[n].test_overlay2);
>>             igt_plane_set_fb(data->primary[n], &fb[n].ref_primary);
>>   @@ -520,6 +639,8 @@ static void test_display_mpo(data_t *data, enum 
>> test test, uint32_t format, int
>>             if (test == MPO_SINGLE_PAN)
>>               test_panning_1_display(data, display_count, 
>> videos[i][0], videos[i][1], fb);
>> +        if (test == MPO_MULTI_OVERLAY)
>> +            test_multi_overlay(data, display_count, videos[i][0], 
>> videos[i][1], fb);
>>           if (test == MPO_MULTI_PAN)
>>               test_panning_2_display(data, videos[i][0], 
>> videos[i][1], fb);
>>           if(test == MPO_SCALE)
>> @@ -536,6 +657,7 @@ static void test_display_mpo(data_t *data, enum 
>> test test, uint32_t format, int
>>       for (int n = 0; n < display_count; n++) {
>>           igt_remove_fb(data->fd, &fb[n].ref_primary);
>>           igt_remove_fb(data->fd, &fb[n].test_overlay);
>> +        igt_remove_fb(data->fd, &fb[n].test_overlay2);
>>       }
>>   }
>>   /*
>> @@ -798,6 +920,10 @@ igt_main
>>       igt_subtest("mpo-pan-multi-p010")
>>           test_display_mpo(&data, MPO_MULTI_PAN, DRM_FORMAT_P010, 
>> DISPLAYS_TO_TEST);
>>   +    igt_describe("Multi MPO");
>> +    igt_subtest("multi-mpo")
>> +        test_display_mpo(&data, MPO_MULTI_OVERLAY, DRM_FORMAT_NV12, 1);
>> +
>>       igt_describe("MPO and scaling RGB primary plane");
>>       igt_subtest("mpo-scale-rgb")
>>           test_display_mpo(&data, MPO_SCALE, DRM_FORMAT_XRGB8888, 1);

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

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

* [igt-dev] [PATCH 1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test
  2023-02-17 20:24 ` [igt-dev] [PATCH 1/2] " Leo Li
  2023-02-17 20:43   ` Bhawanpreet Lakha
@ 2023-03-13 16:32   ` Bhawanpreet Lakha
  2023-03-15 20:30     ` Leo Li
  1 sibling, 1 reply; 18+ messages in thread
From: Bhawanpreet Lakha @ 2023-03-13 16:32 UTC (permalink / raw)
  To: igt-dev, rodrigo.siqueira, sunpeng.li, harry.wentland,
	nicholas.kazlauskas
  Cc: Bhawanpreet Lakha

[Why]
Some of our ASICs  support multiple overlay planes, so create
a test to test them

[How]
Create a plane with two holes and fill them up with 2 overlay planes

*v2
create a overlap/non overlap test instead of using rand()

Signed-off-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
---
 tests/amdgpu/amd_plane.c | 118 ++++++++++++++++++++++++++++++++++++++-
 1 file changed, 117 insertions(+), 1 deletion(-)

diff --git a/tests/amdgpu/amd_plane.c b/tests/amdgpu/amd_plane.c
index b9eec677..3e8b1f31 100644
--- a/tests/amdgpu/amd_plane.c
+++ b/tests/amdgpu/amd_plane.c
@@ -42,6 +42,7 @@ typedef struct data {
         igt_plane_t *primary[MAX_PIPES];
         igt_plane_t *cursor[MAX_PIPES];
 	igt_plane_t *overlay[MAX_PIPES];
+	igt_plane_t *overlay2[MAX_PIPES];
         igt_output_t *output[MAX_PIPES];
         igt_pipe_t *pipe[MAX_PIPES];
         igt_pipe_crc_t *pipe_crc[MAX_PIPES];
@@ -144,7 +145,8 @@ static void lut_free(lut_t *lut)
 enum test {
 	MPO_SINGLE_PAN,
 	MPO_MULTI_PAN,
-	MPO_SCALE
+	MPO_SCALE,
+	MPO_MULTI_OVERLAY
 };
 
 static void test_init(data_t *data)
@@ -159,6 +161,8 @@ static void test_init(data_t *data)
 			data->pipe[i], DRM_PLANE_TYPE_PRIMARY);
 		data->overlay[i] = igt_pipe_get_plane_type_index(
 			data->pipe[i], DRM_PLANE_TYPE_OVERLAY, 0);
+		data->overlay2[i] = igt_pipe_get_plane_type_index(
+			data->pipe[i], DRM_PLANE_TYPE_OVERLAY, 1);
 		data->cursor[i] = igt_pipe_get_plane_type(
 			data->pipe[i], DRM_PLANE_TYPE_CURSOR);
 		data->pipe_crc[i] =
@@ -252,6 +256,7 @@ struct fbc {
 	igt_fb_t ref_primary;
 	igt_fb_t test_primary;
 	igt_fb_t test_overlay;
+	igt_fb_t test_overlay2;
 	igt_crc_t ref_crc;
 };
 
@@ -264,6 +269,105 @@ static void set_regamma_lut(data_t *data, lut_t const *lut, int n)
 				       size);
 }
 
+/*
+ * Compares the result of white backgroud with white window with and without MPO
+ *
+ * Reference crc:
+ * Draws a White background of size (pw,ph).
+ *
+ * Test crc:
+ * Draws a White Overlay of size (pw,ph) then creates a cutout of size (w,h) at location (x1, y1) and (x2, y2)
+ * Draws a White Primary plane of size (w, h) at location (x1,y1) (under the overlay)
+ * Draws a White Overlay of size (w, h) at location (x2,y2)
+ *
+ * NOTE: The reason for using White+White is to speed up the crc (reuse the ref crc for all cases vs taking
+ * a ref crc per flip)
+ */
+static void test_plane2(data_t *data, int n, int x1, int y1, int x2, int y2, int w, int h, int pw, int ph, struct fbc *fbc){
+
+	igt_crc_t test_crc;
+	igt_display_t *display = &data->display;
+
+	/* Reference: */
+
+	igt_plane_set_fb(data->primary[n], &fbc[n].ref_primary);
+
+	igt_plane_set_position(data->primary[n], 0, 0);
+	igt_plane_set_size(data->primary[n], pw, ph);
+
+	igt_display_commit_atomic(display, 0, 0);
+
+	/* Test: */
+	/* Draw a white overlay with two cutouts at (x1,y1) and (x2,y2) */
+	draw_color_alpha(&fbc[n].test_overlay2, 0, 0, pw, ph, 1.0, 1.0, 1.0, 1.0);
+	draw_color_alpha(&fbc[n].test_overlay2, x1, y1, w, h, 0.0, 0.0, 0.0, 0.0);
+	draw_color_alpha(&fbc[n].test_overlay2, x2, y2, w, h, 0.0, 0.0, 0.0, 0.0);
+
+	/* Draw a overlay to cover up one hole */
+	draw_color_alpha(&fbc[n].test_overlay, 0, 0, pw, ph, 0.0, 0.0, 0.0, 0.0);
+	draw_color_alpha(&fbc[n].test_overlay, x2, y2, w, h, 1.0, 1.0, 1.0, 1.0);
+
+	/* Draw a primary to cover up the other hole */
+	draw_color_alpha(&fbc[n].test_primary, 0, 0, w, h, 0.0, 0.0, 0.0, 0.0);
+	draw_color_alpha(&fbc[n].test_primary, 0, 0, w, h, 1.0, 1.0, 1.0, 1.0);
+
+	igt_plane_set_fb(data->primary[n], &fbc[n].test_primary);
+	igt_plane_set_fb(data->overlay[n], &fbc[n].test_overlay);
+	igt_plane_set_fb(data->overlay2[n], &fbc[n].test_overlay2);
+
+	/* Move the primary to cover one of the holes*/
+	igt_plane_set_position(data->primary[n], x1, y1);
+	igt_plane_set_size(data->primary[n], w, h);
+
+
+	igt_display_commit_atomic(display, 0, 0);
+	igt_pipe_crc_collect_crc(data->pipe_crc[n], &test_crc);
+	igt_plane_set_fb(data->overlay[n], NULL);
+	igt_plane_set_fb(data->overlay2[n], NULL);
+
+	igt_assert_crc_equal(&fbc[n].ref_crc, &test_crc);
+
+	/* Set window to white, this is to avoid flashing between black/white after each flip */
+	draw_color_alpha(&fbc[n].ref_primary, 0, 0, w, h, 1.0, 1.0, 1.0, 1.00);
+	igt_plane_set_fb(data->primary[n], &fbc[n].ref_primary);
+	igt_plane_set_position(data->primary[n], 0, 0);
+	igt_plane_set_size(data->primary[n], pw, ph);
+	igt_display_commit_atomic(display, 0, 0);
+
+
+}
+
+/*
+ * MPO_MULTI_OVERLAY: This test takes the plane sizes and assigns random position within the screen
+ *
+ * The test creates a white screen with 2 cutouts which are to be filled with 2 overlay planes.
+ * Testing multiple overlay planes
+ */
+static void test_multi_overlay(data_t *data, int display_count, int w, int h, struct fbc *fb)
+{
+
+	for (int n = 0; n < display_count; n++) {
+
+		int pw = data->w[n];
+		int ph = data->h[n];
+
+		if (pw <= w && ph <= h)
+			break;
+
+		/* Don't overlap the planes */
+		test_plane2(data, n, 0, 0, pw - w, ph - h, w, h, pw, ph, fb);
+
+		if (w/2 > pw - w || h/2 > ph - h)
+			break;
+
+		/* Overlap the planes */
+		test_plane2(data, n, 0, 0, w/2, h/2, w, h, pw, ph, fb);
+	}
+
+	return;
+
+}
+
 /*
  * Compares the result of white backgroud with white window with and without MPO
  *
@@ -467,6 +571,10 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
 
 	test_init(data);
 
+	/* Skip test if we don't have 2 overlay planes */
+	if (test == MPO_MULTI_OVERLAY)
+		igt_skip_on(!data->overlay2[0]);
+
 	/* Skip if there is less valid outputs than the required. */
 	for_each_connected_output(display, output)
 		valid_outputs++;
@@ -494,6 +602,7 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
 		igt_create_fb(data->fd, w, h, DRM_FORMAT_XRGB8888, 0, &fb[n].ref_primary);
 		igt_create_color_fb(data->fd, w, h, DRM_FORMAT_XRGB8888, 0, 1.0, 1.0, 1.0, &fb[n].ref_primary);
 		igt_create_fb(data->fd, w, h, DRM_FORMAT_ARGB8888, 0, &fb[n].test_overlay);
+		igt_create_fb(data->fd, w, h, DRM_FORMAT_ARGB8888, 0, &fb[n].test_overlay2);
 
 		igt_plane_set_fb(data->primary[n], &fb[n].ref_primary);
 
@@ -520,6 +629,8 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
 
 		if (test == MPO_SINGLE_PAN)
 			test_panning_1_display(data, display_count, videos[i][0], videos[i][1], fb);
+		if (test == MPO_MULTI_OVERLAY)
+			test_multi_overlay(data, display_count, videos[i][0], videos[i][1], fb);
 		if (test == MPO_MULTI_PAN)
 			test_panning_2_display(data, videos[i][0], videos[i][1], fb);
 		if(test == MPO_SCALE)
@@ -536,6 +647,7 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
 	for (int n = 0; n < display_count; n++) {
 		igt_remove_fb(data->fd, &fb[n].ref_primary);
 		igt_remove_fb(data->fd, &fb[n].test_overlay);
+		igt_remove_fb(data->fd, &fb[n].test_overlay2);
 	}
 }
 /*
@@ -798,6 +910,10 @@ igt_main
 	igt_subtest("mpo-pan-multi-p010")
 		test_display_mpo(&data, MPO_MULTI_PAN, DRM_FORMAT_P010, DISPLAYS_TO_TEST);
 
+	igt_describe("Multi MPO");
+	igt_subtest("multi-mpo")
+		test_display_mpo(&data, MPO_MULTI_OVERLAY, DRM_FORMAT_NV12, 1);
+
 	igt_describe("MPO and scaling RGB primary plane");
 	igt_subtest("mpo-scale-rgb")
 		test_display_mpo(&data, MPO_SCALE, DRM_FORMAT_XRGB8888, 1);
-- 
2.25.1

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

* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test (rev2)
  2023-02-13 18:16 [igt-dev] [PATCH 1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test Bhawanpreet Lakha
                   ` (3 preceding siblings ...)
  2023-02-17 20:24 ` [igt-dev] [PATCH 1/2] " Leo Li
@ 2023-03-13 17:18 ` Patchwork
  2023-03-14 20:55 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 18+ messages in thread
From: Patchwork @ 2023-03-13 17:18 UTC (permalink / raw)
  To: Bhawanpreet Lakha; +Cc: igt-dev

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

== Series Details ==

Series: series starting with [1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test (rev2)
URL   : https://patchwork.freedesktop.org/series/113966/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_12853 -> IGTPW_8597
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (39 -> 38)
------------------------------

  Missing    (1): fi-kbl-soraka 

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

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

### IGT changes ###

#### Issues hit ####

  * igt@i915_selftest@live@execlists:
    - fi-bsw-n3050:       [PASS][1] -> [ABORT][2] ([i915#7911])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/fi-bsw-n3050/igt@i915_selftest@live@execlists.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/fi-bsw-n3050/igt@i915_selftest@live@execlists.html

  * igt@i915_selftest@live@gt_lrc:
    - bat-dg2-11:         [PASS][3] -> [INCOMPLETE][4] ([i915#7609] / [i915#7913])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/bat-dg2-11/igt@i915_selftest@live@gt_lrc.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/bat-dg2-11/igt@i915_selftest@live@gt_lrc.html

  * igt@i915_selftest@live@slpc:
    - bat-rpls-2:         NOTRUN -> [DMESG-FAIL][5] ([i915#6367] / [i915#7913] / [i915#7996])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/bat-rpls-2/igt@i915_selftest@live@slpc.html
    - bat-rpls-1:         [PASS][6] -> [DMESG-FAIL][7] ([i915#6367] / [i915#7996])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/bat-rpls-1/igt@i915_selftest@live@slpc.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/bat-rpls-1/igt@i915_selftest@live@slpc.html

  * igt@kms_chamelium_hpd@common-hpd-after-suspend:
    - bat-rpls-2:         NOTRUN -> [SKIP][8] ([i915#7828])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/bat-rpls-2/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
    - fi-bsw-nick:        NOTRUN -> [SKIP][9] ([fdo#109271]) +1 similar issue
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/fi-bsw-nick/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
    - bat-rpls-1:         NOTRUN -> [SKIP][10] ([i915#7828])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/bat-rpls-1/igt@kms_chamelium_hpd@common-hpd-after-suspend.html

  * igt@kms_pipe_crc_basic@suspend-read-crc:
    - bat-rpls-1:         NOTRUN -> [SKIP][11] ([i915#1845])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/bat-rpls-1/igt@kms_pipe_crc_basic@suspend-read-crc.html
    - bat-rpls-2:         NOTRUN -> [SKIP][12] ([i915#1845])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/bat-rpls-2/igt@kms_pipe_crc_basic@suspend-read-crc.html

  
#### Possible fixes ####

  * igt@gem_exec_suspend@basic-s3@smem:
    - bat-rpls-1:         [ABORT][13] ([i915#6687] / [i915#7978]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/bat-rpls-1/igt@gem_exec_suspend@basic-s3@smem.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/bat-rpls-1/igt@gem_exec_suspend@basic-s3@smem.html

  * igt@i915_selftest@live@dmabuf:
    - fi-bsw-nick:        [DMESG-FAIL][15] ([i915#7562] / [i915#7913]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/fi-bsw-nick/igt@i915_selftest@live@dmabuf.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/fi-bsw-nick/igt@i915_selftest@live@dmabuf.html

  * igt@i915_selftest@live@execlists:
    - fi-bsw-nick:        [ABORT][17] ([i915#7911] / [i915#7913]) -> [PASS][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/fi-bsw-nick/igt@i915_selftest@live@execlists.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/fi-bsw-nick/igt@i915_selftest@live@execlists.html

  * igt@i915_selftest@live@hangcheck:
    - fi-skl-guc:         [DMESG-WARN][19] ([i915#8073]) -> [PASS][20]
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/fi-skl-guc/igt@i915_selftest@live@hangcheck.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/fi-skl-guc/igt@i915_selftest@live@hangcheck.html

  * igt@i915_selftest@live@requests:
    - bat-rpls-2:         [ABORT][21] ([i915#4983] / [i915#7694] / [i915#7913]) -> [PASS][22]
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/bat-rpls-2/igt@i915_selftest@live@requests.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/bat-rpls-2/igt@i915_selftest@live@requests.html

  
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
  [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
  [i915#6687]: https://gitlab.freedesktop.org/drm/intel/issues/6687
  [i915#7562]: https://gitlab.freedesktop.org/drm/intel/issues/7562
  [i915#7609]: https://gitlab.freedesktop.org/drm/intel/issues/7609
  [i915#7694]: https://gitlab.freedesktop.org/drm/intel/issues/7694
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#7911]: https://gitlab.freedesktop.org/drm/intel/issues/7911
  [i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
  [i915#7978]: https://gitlab.freedesktop.org/drm/intel/issues/7978
  [i915#7996]: https://gitlab.freedesktop.org/drm/intel/issues/7996
  [i915#8073]: https://gitlab.freedesktop.org/drm/intel/issues/8073


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7192 -> IGTPW_8597

  CI-20190529: 20190529
  CI_DRM_12853: 7cfe22e6f72f5328dded16b38e215ff290e8d7f8 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8597: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/index.html
  IGT_7192: 18beb515ff127e64302a491ed321125b5116aa23 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

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

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

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

* [igt-dev] ✓ Fi.CI.IGT: success for series starting with [1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test (rev2)
  2023-02-13 18:16 [igt-dev] [PATCH 1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test Bhawanpreet Lakha
                   ` (4 preceding siblings ...)
  2023-03-13 17:18 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test (rev2) Patchwork
@ 2023-03-14 20:55 ` Patchwork
  2023-03-17 17:26 ` [igt-dev] [PATCH 1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test Kamil Konieczny
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 18+ messages in thread
From: Patchwork @ 2023-03-14 20:55 UTC (permalink / raw)
  To: Bhawanpreet Lakha; +Cc: igt-dev

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

== Series Details ==

Series: series starting with [1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test (rev2)
URL   : https://patchwork.freedesktop.org/series/113966/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_12853_full -> IGTPW_8597_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/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_8597_full:

### IGT changes ###

#### Suppressed ####

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

  * igt@gem_ctx_sseu@invalid-args:
    - {shard-rkl}:        [SKIP][1] ([i915#280]) -> [ABORT][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-rkl-5/igt@gem_ctx_sseu@invalid-args.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-rkl-5/igt@gem_ctx_sseu@invalid-args.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_fair@basic-none-share@rcs0:
    - shard-apl:          [PASS][3] -> [SKIP][4] ([fdo#109271])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-apl1/igt@gem_exec_fair@basic-none-share@rcs0.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-apl2/igt@gem_exec_fair@basic-none-share@rcs0.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-glk:          [PASS][5] -> [FAIL][6] ([i915#2842]) +4 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-glk4/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-glk1/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gen9_exec_parse@allowed-single:
    - shard-apl:          [PASS][7] -> [ABORT][8] ([i915#5566])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-apl1/igt@gen9_exec_parse@allowed-single.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-apl1/igt@gen9_exec_parse@allowed-single.html

  * igt@kms_cursor_crc@cursor-offscreen-32x32:
    - shard-snb:          NOTRUN -> [SKIP][9] ([fdo#109271]) +34 similar issues
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-snb2/igt@kms_cursor_crc@cursor-offscreen-32x32.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
    - shard-glk:          [PASS][10] -> [FAIL][11] ([i915#2346]) +1 similar issue
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-glk6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-glk7/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html

  
#### Possible fixes ####

  * igt@dumb_buffer@create-clear:
    - {shard-tglu}:       [INCOMPLETE][12] -> [PASS][13]
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-tglu-4/igt@dumb_buffer@create-clear.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-tglu-2/igt@dumb_buffer@create-clear.html

  * igt@fbdev@write:
    - {shard-rkl}:        [SKIP][14] ([i915#2582]) -> [PASS][15]
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-rkl-3/igt@fbdev@write.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-rkl-6/igt@fbdev@write.html

  * igt@gem_ctx_persistence@engines-hang@bcs0:
    - {shard-rkl}:        [SKIP][16] ([i915#6252]) -> [PASS][17]
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-rkl-5/igt@gem_ctx_persistence@engines-hang@bcs0.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-rkl-1/igt@gem_ctx_persistence@engines-hang@bcs0.html

  * igt@gem_exec_fair@basic-deadline:
    - {shard-rkl}:        [FAIL][18] ([i915#2846]) -> [PASS][19]
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-rkl-6/igt@gem_exec_fair@basic-deadline.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-rkl-2/igt@gem_exec_fair@basic-deadline.html

  * igt@gem_exec_fair@basic-pace@rcs0:
    - {shard-rkl}:        [FAIL][20] ([i915#2842]) -> [PASS][21] +2 similar issues
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-rkl-4/igt@gem_exec_fair@basic-pace@rcs0.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-rkl-5/igt@gem_exec_fair@basic-pace@rcs0.html

  * igt@gem_exec_fair@basic-throttle@rcs0:
    - shard-glk:          [FAIL][22] ([i915#2842]) -> [PASS][23]
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-glk7/igt@gem_exec_fair@basic-throttle@rcs0.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-glk4/igt@gem_exec_fair@basic-throttle@rcs0.html

  * igt@gem_exec_reloc@basic-gtt-read-active:
    - {shard-rkl}:        [SKIP][24] ([i915#3281]) -> [PASS][25] +3 similar issues
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-rkl-3/igt@gem_exec_reloc@basic-gtt-read-active.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-rkl-5/igt@gem_exec_reloc@basic-gtt-read-active.html

  * igt@gem_exec_reloc@basic-scanout@vcs0:
    - {shard-tglu}:       [SKIP][26] ([i915#3639]) -> [PASS][27] +4 similar issues
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-tglu-9/igt@gem_exec_reloc@basic-scanout@vcs0.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-tglu-4/igt@gem_exec_reloc@basic-scanout@vcs0.html

  * igt@gem_mmap_gtt@fault-concurrent-y:
    - shard-snb:          [ABORT][28] ([i915#5161]) -> [PASS][29]
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-snb4/igt@gem_mmap_gtt@fault-concurrent-y.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-snb5/igt@gem_mmap_gtt@fault-concurrent-y.html

  * igt@gem_tiled_pread_pwrite:
    - {shard-rkl}:        [SKIP][30] ([i915#3282]) -> [PASS][31]
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-rkl-1/igt@gem_tiled_pread_pwrite.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-rkl-5/igt@gem_tiled_pread_pwrite.html

  * igt@gem_workarounds@suspend-resume-fd:
    - {shard-rkl}:        [FAIL][32] ([fdo#103375]) -> [PASS][33]
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-rkl-3/igt@gem_workarounds@suspend-resume-fd.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-rkl-5/igt@gem_workarounds@suspend-resume-fd.html

  * igt@gen9_exec_parse@batch-zero-length:
    - {shard-rkl}:        [SKIP][34] ([i915#2527]) -> [PASS][35]
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-rkl-3/igt@gen9_exec_parse@batch-zero-length.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-rkl-5/igt@gen9_exec_parse@batch-zero-length.html

  * igt@i915_pm_dc@dc9-dpms:
    - shard-apl:          [SKIP][36] ([fdo#109271]) -> [PASS][37]
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-apl1/igt@i915_pm_dc@dc9-dpms.html
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-apl1/igt@i915_pm_dc@dc9-dpms.html

  * igt@i915_pm_rc6_residency@rc6-idle@rcs0:
    - {shard-tglu}:       [WARN][38] ([i915#2681]) -> [PASS][39]
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-tglu-6/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-tglu-7/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html

  * igt@i915_pm_rpm@i2c:
    - {shard-rkl}:        [SKIP][40] ([fdo#109308]) -> [PASS][41]
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-rkl-4/igt@i915_pm_rpm@i2c.html
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-rkl-6/igt@i915_pm_rpm@i2c.html

  * igt@i915_pm_rpm@modeset-lpsp:
    - {shard-rkl}:        [SKIP][42] ([i915#1397]) -> [PASS][43]
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-rkl-1/igt@i915_pm_rpm@modeset-lpsp.html
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-rkl-6/igt@i915_pm_rpm@modeset-lpsp.html

  * igt@i915_pm_rpm@modeset-lpsp-stress-no-wait:
    - {shard-tglu}:       [SKIP][44] ([i915#1397]) -> [PASS][45]
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-tglu-9/igt@i915_pm_rpm@modeset-lpsp-stress-no-wait.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-tglu-5/igt@i915_pm_rpm@modeset-lpsp-stress-no-wait.html

  * igt@i915_pm_rpm@modeset-non-lpsp-stress:
    - {shard-dg1}:        [SKIP][46] ([i915#1397]) -> [PASS][47]
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-dg1-14/igt@i915_pm_rpm@modeset-non-lpsp-stress.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-dg1-16/igt@i915_pm_rpm@modeset-non-lpsp-stress.html

  * igt@i915_pm_sseu@full-enable:
    - {shard-rkl}:        [SKIP][48] ([i915#4387]) -> [PASS][49]
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-rkl-3/igt@i915_pm_sseu@full-enable.html
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-rkl-5/igt@i915_pm_sseu@full-enable.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0:
    - {shard-tglu}:       [SKIP][50] ([i915#1845] / [i915#7651]) -> [PASS][51] +26 similar issues
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-tglu-6/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0.html
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-tglu-2/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0.html

  * igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc:
    - {shard-rkl}:        [SKIP][52] ([i915#1845] / [i915#4098]) -> [PASS][53] +25 similar issues
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-rkl-5/igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc.html
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-rkl-6/igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_cursor_legacy@cursor-vs-flip-atomic:
    - {shard-tglu}:       [SKIP][54] ([i915#1845]) -> [PASS][55] +6 similar issues
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-tglu-6/igt@kms_cursor_legacy@cursor-vs-flip-atomic.html
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-tglu-3/igt@kms_cursor_legacy@cursor-vs-flip-atomic.html

  * igt@kms_flip@2x-plain-flip-ts-check-interruptible@ac-hdmi-a1-hdmi-a2:
    - shard-glk:          [FAIL][56] ([i915#2122]) -> [PASS][57]
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-glk7/igt@kms_flip@2x-plain-flip-ts-check-interruptible@ac-hdmi-a1-hdmi-a2.html
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-glk1/igt@kms_flip@2x-plain-flip-ts-check-interruptible@ac-hdmi-a1-hdmi-a2.html

  * igt@kms_frontbuffer_tracking@fbc-badstride:
    - {shard-rkl}:        [SKIP][58] ([i915#1849] / [i915#4098]) -> [PASS][59] +17 similar issues
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-rkl-1/igt@kms_frontbuffer_tracking@fbc-badstride.html
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-badstride.html

  * igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a-planes:
    - {shard-rkl}:        [SKIP][60] ([i915#1849]) -> [PASS][61] +1 similar issue
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-rkl-5/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a-planes.html
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-rkl-6/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a-planes.html

  * igt@kms_plane@plane-panning-bottom-right@pipe-a-planes:
    - {shard-tglu}:       [SKIP][62] ([i915#1849] / [i915#3558]) -> [PASS][63] +1 similar issue
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-tglu-6/igt@kms_plane@plane-panning-bottom-right@pipe-a-planes.html
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-tglu-1/igt@kms_plane@plane-panning-bottom-right@pipe-a-planes.html

  * igt@kms_properties@crtc-properties-atomic:
    - {shard-tglu}:       [SKIP][64] ([i915#1849]) -> [PASS][65] +8 similar issues
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-tglu-9/igt@kms_properties@crtc-properties-atomic.html
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-tglu-4/igt@kms_properties@crtc-properties-atomic.html

  * igt@kms_psr@suspend:
    - {shard-rkl}:        [SKIP][66] ([i915#1072]) -> [PASS][67]
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-rkl-4/igt@kms_psr@suspend.html
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-rkl-6/igt@kms_psr@suspend.html

  * igt@kms_universal_plane@disable-primary-vs-flip-pipe-b:
    - {shard-tglu}:       [SKIP][68] ([fdo#109274]) -> [PASS][69] +1 similar issue
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-tglu-6/igt@kms_universal_plane@disable-primary-vs-flip-pipe-b.html
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-tglu-8/igt@kms_universal_plane@disable-primary-vs-flip-pipe-b.html

  * igt@perf@gen12-mi-rpc:
    - {shard-rkl}:        [SKIP][70] ([fdo#109289]) -> [PASS][71]
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-rkl-5/igt@perf@gen12-mi-rpc.html
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-rkl-4/igt@perf@gen12-mi-rpc.html

  * igt@perf@polling-small-buf:
    - {shard-tglu}:       [FAIL][72] ([i915#1722]) -> [PASS][73]
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-tglu-9/igt@perf@polling-small-buf.html
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-tglu-7/igt@perf@polling-small-buf.html

  * igt@prime_vgem@basic-fence-read:
    - {shard-rkl}:        [SKIP][74] ([fdo#109295] / [i915#3291] / [i915#3708]) -> [PASS][75]
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12853/shard-rkl-6/igt@prime_vgem@basic-fence-read.html
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/shard-rkl-5/igt@prime_vgem@basic-fence-read.html

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

  [IGT#2]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/2
  [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109279]: https://bugs.freedesktop.org/show_bug.cgi?id=109279
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
  [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [fdo#109302]: https://bugs.freedesktop.org/show_bug.cgi?id=109302
  [fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308
  [fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309
  [fdo#109312]: https://bugs.freedesktop.org/show_bug.cgi?id=109312
  [fdo#109313]: https://bugs.freedesktop.org/show_bug.cgi?id=109313
  [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#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
  [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
  [fdo#111644]: https://bugs.freedesktop.org/show_bug.cgi?id=111644
  [fdo#111656]: https://bugs.freedesktop.org/show_bug.cgi?id=111656
  [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [i915#1722]: https://gitlab.freedesktop.org/drm/intel/issues/1722
  [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
  [i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
  [i915#1937]: https://gitlab.freedesktop.org/drm/intel/issues/1937
  [i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2232]: https://gitlab.freedesktop.org/drm/intel/issues/2232
  [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
  [i915#2434]: https://gitlab.freedesktop.org/drm/intel/issues/2434
  [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
  [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
  [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
  [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
  [i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
  [i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
  [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
  [i915#284]: https://gitlab.freedesktop.org/drm/intel/issues/284
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
  [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
  [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
  [i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116
  [i915#315]: https://gitlab.freedesktop.org/drm/intel/issues/315
  [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#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#3528]: https://gitlab.freedesktop.org/drm/intel/issues/3528
  [i915#3536]: https://gitlab.freedesktop.org/drm/intel/issues/3536
  [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
  [i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
  [i915#3547]: https://gitlab.freedesktop.org/drm/intel/issues/3547
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3558]: https://gitlab.freedesktop.org/drm/intel/issues/3558
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
  [i915#3639]: https://gitlab.freedesktop.org/drm/intel/issues/3639
  [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
  [i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
  [i915#3804]: https://gitlab.freedesktop.org/drm/intel/issues/3804
  [i915#3825]: https://gitlab.freedesktop.org/drm/intel/issues/3825
  [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#3938]: https://gitlab.freedesktop.org/drm/intel/issues/3938
  [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
  [i915#3989]: https://gitlab.freedesktop.org/drm/intel/issues/3989
  [i915#404]: https://gitlab.freedesktop.org/drm/intel/issues/404
  [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078
  [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
  [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#4387]: https://gitlab.freedesktop.org/drm/intel/issues/4387
  [i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
  [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
  [i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
  [i915#4778]: https://gitlab.freedesktop.org/drm/intel/issues/4778
  [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
  [i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
  [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
  [i915#4859]: https://gitlab.freedesktop.org/drm/intel/issues/4859
  [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
  [i915#4879]: https://gitlab.freedesktop.org/drm/intel/issues/4879
  [i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880
  [i915#4881]: https://gitlab.freedesktop.org/drm/intel/issues/4881
  [i915#4884]: https://gitlab.freedesktop.org/drm/intel/issues/4884
  [i915#4958]: https://gitlab.freedesktop.org/drm/intel/issues/4958
  [i915#5161]: https://gitlab.freedesktop.org/drm/intel/issues/5161
  [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
  [i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288
  [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
  [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439
  [i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
  [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
  [i915#5723]: https://gitlab.freedesktop.org/drm/intel/issues/5723
  [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#6117]: https://gitlab.freedesktop.org/drm/intel/issues/6117
  [i915#6230]: https://gitlab.freedesktop.org/drm/intel/issues/6230
  [i915#6247]: https://gitlab.freedesktop.org/drm/intel/issues/6247
  [i915#6248]: https://gitlab.freedesktop.org/drm/intel/issues/6248
  [i915#6252]: https://gitlab.freedesktop.org/drm/intel/issues/6252
  [i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301
  [i915#6334]: https://gitlab.freedesktop.org/drm/intel/issues/6334
  [i915#6493]: https://gitlab.freedesktop.org/drm/intel/issues/6493
  [i915#6497]: https://gitlab.freedesktop.org/drm/intel/issues/6497
  [i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
  [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
  [i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768
  [i915#6944]: https://gitlab.freedesktop.org/drm/intel/issues/6944
  [i915#6946]: https://gitlab.freedesktop.org/drm/intel/issues/6946
  [i915#6953]: https://gitlab.freedesktop.org/drm/intel/issues/6953
  [i915#7037]: https://gitlab.freedesktop.org/drm/intel/issues/7037
  [i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
  [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
  [i915#7178]: https://gitlab.freedesktop.org/drm/intel/issues/7178
  [i915#7276]: https://gitlab.freedesktop.org/drm/intel/issues/7276
  [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
  [i915#7651]: https://gitlab.freedesktop.org/drm/intel/issues/7651
  [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#7949]: https://gitlab.freedesktop.org/drm/intel/issues/7949
  [i915#7957]: https://gitlab.freedesktop.org/drm/intel/issues/7957
  [i915#7975]: https://gitlab.freedesktop.org/drm/intel/issues/7975
  [i915#8150]: https://gitlab.freedesktop.org/drm/intel/issues/8150
  [i915#8152]: https://gitlab.freedesktop.org/drm/intel/issues/8152
  [i915#8228]: https://gitlab.freedesktop.org/drm/intel/issues/8228
  [i915#8273]: https://gitlab.freedesktop.org/drm/intel/issues/8273
  [i915#8282]: https://gitlab.freedesktop.org/drm/intel/issues/8282


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7192 -> IGTPW_8597
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_12853: 7cfe22e6f72f5328dded16b38e215ff290e8d7f8 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8597: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8597/index.html
  IGT_7192: 18beb515ff127e64302a491ed321125b5116aa23 @ 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_8597/index.html

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

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

* Re: [igt-dev] [PATCH 1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test
  2023-03-13 16:32   ` Bhawanpreet Lakha
@ 2023-03-15 20:30     ` Leo Li
  2023-03-15 21:02       ` Bhawanpreet Lakha
  2023-03-23 17:29       ` Bhawanpreet Lakha
  0 siblings, 2 replies; 18+ messages in thread
From: Leo Li @ 2023-03-15 20:30 UTC (permalink / raw)
  To: Bhawanpreet Lakha, igt-dev, rodrigo.siqueira, harry.wentland,
	nicholas.kazlauskas



On 3/13/23 12:32, Bhawanpreet Lakha wrote:
> [Why]
> Some of our ASICs  support multiple overlay planes, so create
> a test to test them
> 
> [How]
> Create a plane with two holes and fill them up with 2 overlay planes
> 
> *v2
> create a overlap/non overlap test instead of using rand()
> 
> Signed-off-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
> ---
>   tests/amdgpu/amd_plane.c | 118 ++++++++++++++++++++++++++++++++++++++-
>   1 file changed, 117 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/amdgpu/amd_plane.c b/tests/amdgpu/amd_plane.c
> index b9eec677..3e8b1f31 100644
> --- a/tests/amdgpu/amd_plane.c
> +++ b/tests/amdgpu/amd_plane.c
> @@ -42,6 +42,7 @@ typedef struct data {
>           igt_plane_t *primary[MAX_PIPES];
>           igt_plane_t *cursor[MAX_PIPES];
>   	igt_plane_t *overlay[MAX_PIPES];
> +	igt_plane_t *overlay2[MAX_PIPES];
>           igt_output_t *output[MAX_PIPES];
>           igt_pipe_t *pipe[MAX_PIPES];
>           igt_pipe_crc_t *pipe_crc[MAX_PIPES];
> @@ -144,7 +145,8 @@ static void lut_free(lut_t *lut)
>   enum test {
>   	MPO_SINGLE_PAN,
>   	MPO_MULTI_PAN,
> -	MPO_SCALE
> +	MPO_SCALE,
> +	MPO_MULTI_OVERLAY
>   };
>   
>   static void test_init(data_t *data)
> @@ -159,6 +161,8 @@ static void test_init(data_t *data)
>   			data->pipe[i], DRM_PLANE_TYPE_PRIMARY);
>   		data->overlay[i] = igt_pipe_get_plane_type_index(
>   			data->pipe[i], DRM_PLANE_TYPE_OVERLAY, 0);
> +		data->overlay2[i] = igt_pipe_get_plane_type_index(
> +			data->pipe[i], DRM_PLANE_TYPE_OVERLAY, 1);
>   		data->cursor[i] = igt_pipe_get_plane_type(
>   			data->pipe[i], DRM_PLANE_TYPE_CURSOR);
>   		data->pipe_crc[i] =
> @@ -252,6 +256,7 @@ struct fbc {
>   	igt_fb_t ref_primary;
>   	igt_fb_t test_primary;
>   	igt_fb_t test_overlay;
> +	igt_fb_t test_overlay2;
>   	igt_crc_t ref_crc;
>   };
>   
> @@ -264,6 +269,105 @@ static void set_regamma_lut(data_t *data, lut_t const *lut, int n)
>   				       size);
>   }
>   
> +/*
> + * Compares the result of white backgroud with white window with and without MPO
> + *
> + * Reference crc:
> + * Draws a White background of size (pw,ph).
> + *
> + * Test crc:
> + * Draws a White Overlay of size (pw,ph) then creates a cutout of size (w,h) at location (x1, y1) and (x2, y2)
> + * Draws a White Primary plane of size (w, h) at location (x1,y1) (under the overlay)
> + * Draws a White Overlay of size (w, h) at location (x2,y2)
> + *
> + * NOTE: The reason for using White+White is to speed up the crc (reuse the ref crc for all cases vs taking
> + * a ref crc per flip)
> + */
> +static void test_plane2(data_t *data, int n, int x1, int y1, int x2, int y2, int w, int h, int pw, int ph, struct fbc *fbc){
> +
> +	igt_crc_t test_crc;
> +	igt_display_t *display = &data->display;
> +
> +	/* Reference: */
> +
> +	igt_plane_set_fb(data->primary[n], &fbc[n].ref_primary);
> +
> +	igt_plane_set_position(data->primary[n], 0, 0);
> +	igt_plane_set_size(data->primary[n], pw, ph);
> +
> +	igt_display_commit_atomic(display, 0, 0);
> +
> +	/* Test: */
> +	/* Draw a white overlay with two cutouts at (x1,y1) and (x2,y2) */
> +	draw_color_alpha(&fbc[n].test_overlay2, 0, 0, pw, ph, 1.0, 1.0, 1.0, 1.0);
> +	draw_color_alpha(&fbc[n].test_overlay2, x1, y1, w, h, 0.0, 0.0, 0.0, 0.0);
> +	draw_color_alpha(&fbc[n].test_overlay2, x2, y2, w, h, 0.0, 0.0, 0.0, 0.0);
> +
> +	/* Draw a overlay to cover up one hole */
> +	draw_color_alpha(&fbc[n].test_overlay, 0, 0, pw, ph, 0.0, 0.0, 0.0, 0.0);
> +	draw_color_alpha(&fbc[n].test_overlay, x2, y2, w, h, 1.0, 1.0, 1.0, 1.0);
> +
> +	/* Draw a primary to cover up the other hole */
> +	draw_color_alpha(&fbc[n].test_primary, 0, 0, w, h, 0.0, 0.0, 0.0, 0.0);
> +	draw_color_alpha(&fbc[n].test_primary, 0, 0, w, h, 1.0, 1.0, 1.0, 1.0);
> +
> +	igt_plane_set_fb(data->primary[n], &fbc[n].test_primary);
> +	igt_plane_set_fb(data->overlay[n], &fbc[n].test_overlay);
> +	igt_plane_set_fb(data->overlay2[n], &fbc[n].test_overlay2);
> +
> +	/* Move the primary to cover one of the holes*/
> +	igt_plane_set_position(data->primary[n], x1, y1);
> +	igt_plane_set_size(data->primary[n], w, h);

Hi Bhawan,

For the primary plane, it looks like we're drawing at (0,0), then moving
to (x1, y1). For the overlay plane, we're drawing directly at (x2, y2)
without moving the plane. Is that on purpose?

> +
> +
> +	igt_display_commit_atomic(display, 0, 0);
> +	igt_pipe_crc_collect_crc(data->pipe_crc[n], &test_crc);
> +	igt_plane_set_fb(data->overlay[n], NULL);
> +	igt_plane_set_fb(data->overlay2[n], NULL);
> +
> +	igt_assert_crc_equal(&fbc[n].ref_crc, &test_crc);
> +
> +	/* Set window to white, this is to avoid flashing between black/white after each flip */
> +	draw_color_alpha(&fbc[n].ref_primary, 0, 0, w, h, 1.0, 1.0, 1.0, 1.00);
> +	igt_plane_set_fb(data->primary[n], &fbc[n].ref_primary);
> +	igt_plane_set_position(data->primary[n], 0, 0);
> +	igt_plane_set_size(data->primary[n], pw, ph);
> +	igt_display_commit_atomic(display, 0, 0);
> +
> +
> +}
> +
> +/*
> + * MPO_MULTI_OVERLAY: This test takes the plane sizes and assigns random position within the screen

Drop "random"

> + *
> + * The test creates a white screen with 2 cutouts which are to be filled with 2 overlay planes.
> + * Testing multiple overlay planes
> + */
> +static void test_multi_overlay(data_t *data, int display_count, int w, int h, struct fbc *fb)
> +{
> +
> +	for (int n = 0; n < display_count; n++) {
> +
> +		int pw = data->w[n];
> +		int ph = data->h[n];
> +
> +		if (pw <= w && ph <= h)
> +			break;
> +
> +		/* Don't overlap the planes */
> +		test_plane2(data, n, 0, 0, pw - w, ph - h, w, h, pw, ph, fb);

If my mental plotter is working, the overlay and primary can overlap in
the center if (2*w > pw && 2*h > ph). I suppose that's ok as long as the
desired case (top and bottom corner positioning) is tested.

Thanks,
Leo

> +
> +		if (w/2 > pw - w || h/2 > ph - h)
> +			break;
> +
> +		/* Overlap the planes */
> +		test_plane2(data, n, 0, 0, w/2, h/2, w, h, pw, ph, fb);
> +	}
> +
> +	return;
> +
> +}
> +
>   /*
>    * Compares the result of white backgroud with white window with and without MPO
>    *
> @@ -467,6 +571,10 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
>   
>   	test_init(data);
>   
> +	/* Skip test if we don't have 2 overlay planes */
> +	if (test == MPO_MULTI_OVERLAY)
> +		igt_skip_on(!data->overlay2[0]);
> +
>   	/* Skip if there is less valid outputs than the required. */
>   	for_each_connected_output(display, output)
>   		valid_outputs++;
> @@ -494,6 +602,7 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
>   		igt_create_fb(data->fd, w, h, DRM_FORMAT_XRGB8888, 0, &fb[n].ref_primary);
>   		igt_create_color_fb(data->fd, w, h, DRM_FORMAT_XRGB8888, 0, 1.0, 1.0, 1.0, &fb[n].ref_primary);
>   		igt_create_fb(data->fd, w, h, DRM_FORMAT_ARGB8888, 0, &fb[n].test_overlay);
> +		igt_create_fb(data->fd, w, h, DRM_FORMAT_ARGB8888, 0, &fb[n].test_overlay2);
>   
>   		igt_plane_set_fb(data->primary[n], &fb[n].ref_primary);
>   
> @@ -520,6 +629,8 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
>   
>   		if (test == MPO_SINGLE_PAN)
>   			test_panning_1_display(data, display_count, videos[i][0], videos[i][1], fb);
> +		if (test == MPO_MULTI_OVERLAY)
> +			test_multi_overlay(data, display_count, videos[i][0], videos[i][1], fb);
>   		if (test == MPO_MULTI_PAN)
>   			test_panning_2_display(data, videos[i][0], videos[i][1], fb);
>   		if(test == MPO_SCALE)
> @@ -536,6 +647,7 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
>   	for (int n = 0; n < display_count; n++) {
>   		igt_remove_fb(data->fd, &fb[n].ref_primary);
>   		igt_remove_fb(data->fd, &fb[n].test_overlay);
> +		igt_remove_fb(data->fd, &fb[n].test_overlay2);
>   	}
>   }
>   /*
> @@ -798,6 +910,10 @@ igt_main
>   	igt_subtest("mpo-pan-multi-p010")
>   		test_display_mpo(&data, MPO_MULTI_PAN, DRM_FORMAT_P010, DISPLAYS_TO_TEST);
>   
> +	igt_describe("Multi MPO");
> +	igt_subtest("multi-mpo")
> +		test_display_mpo(&data, MPO_MULTI_OVERLAY, DRM_FORMAT_NV12, 1);
> +
>   	igt_describe("MPO and scaling RGB primary plane");
>   	igt_subtest("mpo-scale-rgb")
>   		test_display_mpo(&data, MPO_SCALE, DRM_FORMAT_XRGB8888, 1);

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

* Re: [igt-dev] [PATCH 1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test
  2023-03-15 20:30     ` Leo Li
@ 2023-03-15 21:02       ` Bhawanpreet Lakha
  2023-03-23 17:29       ` Bhawanpreet Lakha
  1 sibling, 0 replies; 18+ messages in thread
From: Bhawanpreet Lakha @ 2023-03-15 21:02 UTC (permalink / raw)
  To: Leo Li, igt-dev, rodrigo.siqueira, harry.wentland, nicholas.kazlauskas


On 2023-03-15 16:30, Leo Li wrote:
>
>
> On 3/13/23 12:32, Bhawanpreet Lakha wrote:
>> [Why]
>> Some of our ASICs  support multiple overlay planes, so create
>> a test to test them
>>
>> [How]
>> Create a plane with two holes and fill them up with 2 overlay planes
>>
>> *v2
>> create a overlap/non overlap test instead of using rand()
>>
>> Signed-off-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
>> ---
>>   tests/amdgpu/amd_plane.c | 118 ++++++++++++++++++++++++++++++++++++++-
>>   1 file changed, 117 insertions(+), 1 deletion(-)
>>
>> diff --git a/tests/amdgpu/amd_plane.c b/tests/amdgpu/amd_plane.c
>> index b9eec677..3e8b1f31 100644
>> --- a/tests/amdgpu/amd_plane.c
>> +++ b/tests/amdgpu/amd_plane.c
>> @@ -42,6 +42,7 @@ typedef struct data {
>>           igt_plane_t *primary[MAX_PIPES];
>>           igt_plane_t *cursor[MAX_PIPES];
>>       igt_plane_t *overlay[MAX_PIPES];
>> +    igt_plane_t *overlay2[MAX_PIPES];
>>           igt_output_t *output[MAX_PIPES];
>>           igt_pipe_t *pipe[MAX_PIPES];
>>           igt_pipe_crc_t *pipe_crc[MAX_PIPES];
>> @@ -144,7 +145,8 @@ static void lut_free(lut_t *lut)
>>   enum test {
>>       MPO_SINGLE_PAN,
>>       MPO_MULTI_PAN,
>> -    MPO_SCALE
>> +    MPO_SCALE,
>> +    MPO_MULTI_OVERLAY
>>   };
>>     static void test_init(data_t *data)
>> @@ -159,6 +161,8 @@ static void test_init(data_t *data)
>>               data->pipe[i], DRM_PLANE_TYPE_PRIMARY);
>>           data->overlay[i] = igt_pipe_get_plane_type_index(
>>               data->pipe[i], DRM_PLANE_TYPE_OVERLAY, 0);
>> +        data->overlay2[i] = igt_pipe_get_plane_type_index(
>> +            data->pipe[i], DRM_PLANE_TYPE_OVERLAY, 1);
>>           data->cursor[i] = igt_pipe_get_plane_type(
>>               data->pipe[i], DRM_PLANE_TYPE_CURSOR);
>>           data->pipe_crc[i] =
>> @@ -252,6 +256,7 @@ struct fbc {
>>       igt_fb_t ref_primary;
>>       igt_fb_t test_primary;
>>       igt_fb_t test_overlay;
>> +    igt_fb_t test_overlay2;
>>       igt_crc_t ref_crc;
>>   };
>>   @@ -264,6 +269,105 @@ static void set_regamma_lut(data_t *data, 
>> lut_t const *lut, int n)
>>                          size);
>>   }
>>   +/*
>> + * Compares the result of white backgroud with white window with and 
>> without MPO
>> + *
>> + * Reference crc:
>> + * Draws a White background of size (pw,ph).
>> + *
>> + * Test crc:
>> + * Draws a White Overlay of size (pw,ph) then creates a cutout of 
>> size (w,h) at location (x1, y1) and (x2, y2)
>> + * Draws a White Primary plane of size (w, h) at location (x1,y1) 
>> (under the overlay)
>> + * Draws a White Overlay of size (w, h) at location (x2,y2)
>> + *
>> + * NOTE: The reason for using White+White is to speed up the crc 
>> (reuse the ref crc for all cases vs taking
>> + * a ref crc per flip)
>> + */
>> +static void test_plane2(data_t *data, int n, int x1, int y1, int x2, 
>> int y2, int w, int h, int pw, int ph, struct fbc *fbc){
>> +
>> +    igt_crc_t test_crc;
>> +    igt_display_t *display = &data->display;
>> +
>> +    /* Reference: */
>> +
>> +    igt_plane_set_fb(data->primary[n], &fbc[n].ref_primary);
>> +
>> +    igt_plane_set_position(data->primary[n], 0, 0);
>> +    igt_plane_set_size(data->primary[n], pw, ph);
>> +
>> +    igt_display_commit_atomic(display, 0, 0);
>> +
>> +    /* Test: */
>> +    /* Draw a white overlay with two cutouts at (x1,y1) and (x2,y2) */
>> +    draw_color_alpha(&fbc[n].test_overlay2, 0, 0, pw, ph, 1.0, 1.0, 
>> 1.0, 1.0);
>> +    draw_color_alpha(&fbc[n].test_overlay2, x1, y1, w, h, 0.0, 0.0, 
>> 0.0, 0.0);
>> +    draw_color_alpha(&fbc[n].test_overlay2, x2, y2, w, h, 0.0, 0.0, 
>> 0.0, 0.0);
>> +
>> +    /* Draw a overlay to cover up one hole */
>> +    draw_color_alpha(&fbc[n].test_overlay, 0, 0, pw, ph, 0.0, 0.0, 
>> 0.0, 0.0);
>> +    draw_color_alpha(&fbc[n].test_overlay, x2, y2, w, h, 1.0, 1.0, 
>> 1.0, 1.0);
>> +
>> +    /* Draw a primary to cover up the other hole */
>> +    draw_color_alpha(&fbc[n].test_primary, 0, 0, w, h, 0.0, 0.0, 
>> 0.0, 0.0);
>> +    draw_color_alpha(&fbc[n].test_primary, 0, 0, w, h, 1.0, 1.0, 
>> 1.0, 1.0);
>> +
>> +    igt_plane_set_fb(data->primary[n], &fbc[n].test_primary);
>> +    igt_plane_set_fb(data->overlay[n], &fbc[n].test_overlay);
>> +    igt_plane_set_fb(data->overlay2[n], &fbc[n].test_overlay2);
>> +
>> +    /* Move the primary to cover one of the holes*/
>> +    igt_plane_set_position(data->primary[n], x1, y1);
>> +    igt_plane_set_size(data->primary[n], w, h);
>
> Hi Bhawan,
>
> For the primary plane, it looks like we're drawing at (0,0), then moving
> to (x1, y1). For the overlay plane, we're drawing directly at (x2, y2)
> without moving the plane. Is that on purpose?

Its done on purpose since the code is shared between normal MPO test the 
second overlay is also full screen. Would need to redo the testing logic 
to fit this in. Since this is mostly just a basic "multi mpo works" 
test, its good enough.

>
>> +
>> +
>> +    igt_display_commit_atomic(display, 0, 0);
>> +    igt_pipe_crc_collect_crc(data->pipe_crc[n], &test_crc);
>> +    igt_plane_set_fb(data->overlay[n], NULL);
>> +    igt_plane_set_fb(data->overlay2[n], NULL);
>> +
>> +    igt_assert_crc_equal(&fbc[n].ref_crc, &test_crc);
>> +
>> +    /* Set window to white, this is to avoid flashing between 
>> black/white after each flip */
>> +    draw_color_alpha(&fbc[n].ref_primary, 0, 0, w, h, 1.0, 1.0, 1.0, 
>> 1.00);
>> +    igt_plane_set_fb(data->primary[n], &fbc[n].ref_primary);
>> +    igt_plane_set_position(data->primary[n], 0, 0);
>> +    igt_plane_set_size(data->primary[n], pw, ph);
>> +    igt_display_commit_atomic(display, 0, 0);
>> +
>> +
>> +}
>> +
>> +/*
>> + * MPO_MULTI_OVERLAY: This test takes the plane sizes and assigns 
>> random position within the screen
>
> Drop "random"
>
>> + *
>> + * The test creates a white screen with 2 cutouts which are to be 
>> filled with 2 overlay planes.
>> + * Testing multiple overlay planes
>> + */
>> +static void test_multi_overlay(data_t *data, int display_count, int 
>> w, int h, struct fbc *fb)
>> +{
>> +
>> +    for (int n = 0; n < display_count; n++) {
>> +
>> +        int pw = data->w[n];
>> +        int ph = data->h[n];
>> +
>> +        if (pw <= w && ph <= h)
>> +            break;
>> +
>> +        /* Don't overlap the planes */
>> +        test_plane2(data, n, 0, 0, pw - w, ph - h, w, h, pw, ph, fb);
>
> If my mental plotter is working, the overlay and primary can overlap in
> the center if (2*w > pw && 2*h > ph). I suppose that's ok as long as the
> desired case (top and bottom corner positioning) is tested.
>
> Thanks,
> Leo
>
>> +
>> +        if (w/2 > pw - w || h/2 > ph - h)
>> +            break;
>> +
>> +        /* Overlap the planes */
>> +        test_plane2(data, n, 0, 0, w/2, h/2, w, h, pw, ph, fb);
>> +    }
>> +
>> +    return;
>> +
>> +}
>> +
>>   /*
>>    * Compares the result of white backgroud with white window with 
>> and without MPO
>>    *
>> @@ -467,6 +571,10 @@ static void test_display_mpo(data_t *data, enum 
>> test test, uint32_t format, int
>>         test_init(data);
>>   +    /* Skip test if we don't have 2 overlay planes */
>> +    if (test == MPO_MULTI_OVERLAY)
>> +        igt_skip_on(!data->overlay2[0]);
>> +
>>       /* Skip if there is less valid outputs than the required. */
>>       for_each_connected_output(display, output)
>>           valid_outputs++;
>> @@ -494,6 +602,7 @@ static void test_display_mpo(data_t *data, enum 
>> test test, uint32_t format, int
>>           igt_create_fb(data->fd, w, h, DRM_FORMAT_XRGB8888, 0, 
>> &fb[n].ref_primary);
>>           igt_create_color_fb(data->fd, w, h, DRM_FORMAT_XRGB8888, 0, 
>> 1.0, 1.0, 1.0, &fb[n].ref_primary);
>>           igt_create_fb(data->fd, w, h, DRM_FORMAT_ARGB8888, 0, 
>> &fb[n].test_overlay);
>> +        igt_create_fb(data->fd, w, h, DRM_FORMAT_ARGB8888, 0, 
>> &fb[n].test_overlay2);
>>             igt_plane_set_fb(data->primary[n], &fb[n].ref_primary);
>>   @@ -520,6 +629,8 @@ static void test_display_mpo(data_t *data, enum 
>> test test, uint32_t format, int
>>             if (test == MPO_SINGLE_PAN)
>>               test_panning_1_display(data, display_count, 
>> videos[i][0], videos[i][1], fb);
>> +        if (test == MPO_MULTI_OVERLAY)
>> +            test_multi_overlay(data, display_count, videos[i][0], 
>> videos[i][1], fb);
>>           if (test == MPO_MULTI_PAN)
>>               test_panning_2_display(data, videos[i][0], 
>> videos[i][1], fb);
>>           if(test == MPO_SCALE)
>> @@ -536,6 +647,7 @@ static void test_display_mpo(data_t *data, enum 
>> test test, uint32_t format, int
>>       for (int n = 0; n < display_count; n++) {
>>           igt_remove_fb(data->fd, &fb[n].ref_primary);
>>           igt_remove_fb(data->fd, &fb[n].test_overlay);
>> +        igt_remove_fb(data->fd, &fb[n].test_overlay2);
>>       }
>>   }
>>   /*
>> @@ -798,6 +910,10 @@ igt_main
>>       igt_subtest("mpo-pan-multi-p010")
>>           test_display_mpo(&data, MPO_MULTI_PAN, DRM_FORMAT_P010, 
>> DISPLAYS_TO_TEST);
>>   +    igt_describe("Multi MPO");
>> +    igt_subtest("multi-mpo")
>> +        test_display_mpo(&data, MPO_MULTI_OVERLAY, DRM_FORMAT_NV12, 1);
>> +
>>       igt_describe("MPO and scaling RGB primary plane");
>>       igt_subtest("mpo-scale-rgb")
>>           test_display_mpo(&data, MPO_SCALE, DRM_FORMAT_XRGB8888, 1);

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

* Re: [igt-dev] [PATCH 1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test
  2023-02-13 18:16 [igt-dev] [PATCH 1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test Bhawanpreet Lakha
                   ` (5 preceding siblings ...)
  2023-03-14 20:55 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
@ 2023-03-17 17:26 ` Kamil Konieczny
  2023-03-23 18:09 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test (rev4) Patchwork
  2023-03-23 23:41 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  8 siblings, 0 replies; 18+ messages in thread
From: Kamil Konieczny @ 2023-03-17 17:26 UTC (permalink / raw)
  To: igt-dev; +Cc: Bhawanpreet Lakha

Hi Bhawanpreet,

On 2023-02-13 at 13:16:50 -0500, Bhawanpreet Lakha wrote:
> [Why]
> Some of our ASICs  support multiple overlay planes, so create
> a test to test them
> 
> [How]
> Create a plane with two holes and fill them up with 2 overlay planes
> 
> Signed-off-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
> Change-Id: If527d67ead59f64906a97c340845ac423d93a0aa
> ---
>  tests/amdgpu/amd_plane.c | 128 ++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 127 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/amdgpu/amd_plane.c b/tests/amdgpu/amd_plane.c
> index b9eec677..d34cd1d9 100644
> --- a/tests/amdgpu/amd_plane.c
> +++ b/tests/amdgpu/amd_plane.c
> @@ -42,6 +42,7 @@ typedef struct data {
>          igt_plane_t *primary[MAX_PIPES];
>          igt_plane_t *cursor[MAX_PIPES];
>  	igt_plane_t *overlay[MAX_PIPES];
> +	igt_plane_t *overlay2[MAX_PIPES];
>          igt_output_t *output[MAX_PIPES];
>          igt_pipe_t *pipe[MAX_PIPES];
>          igt_pipe_crc_t *pipe_crc[MAX_PIPES];
> @@ -144,7 +145,8 @@ static void lut_free(lut_t *lut)
>  enum test {
>  	MPO_SINGLE_PAN,
>  	MPO_MULTI_PAN,
> -	MPO_SCALE
> +	MPO_SCALE,
> +	MPO_MULTI_OVERLAY
>  };
>  
>  static void test_init(data_t *data)
> @@ -159,6 +161,8 @@ static void test_init(data_t *data)
>  			data->pipe[i], DRM_PLANE_TYPE_PRIMARY);
>  		data->overlay[i] = igt_pipe_get_plane_type_index(
>  			data->pipe[i], DRM_PLANE_TYPE_OVERLAY, 0);
> +		data->overlay2[i] = igt_pipe_get_plane_type_index(
> +			data->pipe[i], DRM_PLANE_TYPE_OVERLAY, 1);
>  		data->cursor[i] = igt_pipe_get_plane_type(
>  			data->pipe[i], DRM_PLANE_TYPE_CURSOR);
>  		data->pipe_crc[i] =
> @@ -252,6 +256,7 @@ struct fbc {
>  	igt_fb_t ref_primary;
>  	igt_fb_t test_primary;
>  	igt_fb_t test_overlay;
> +	igt_fb_t test_overlay2;
>  	igt_crc_t ref_crc;
>  };
>  
> @@ -264,6 +269,115 @@ static void set_regamma_lut(data_t *data, lut_t const *lut, int n)
>  				       size);
>  }
>  
> +/*
> + * Compares the result of white backgroud with white window with and without MPO
> + *
> + * Reference crc:
> + * Draws a White background of size (pw,ph).
> + *
> + * Test crc:
> + * Draws a White Overlay of size (pw,ph) then creates a cutout of size (w,h) at location (x1, y1) and (x2, y2)
> + * Draws a White Primary plane of size (w, h) at location (x1,y1) (under the overlay)
> + * Draws a White Overlay of size (w, h) at location (x2,y2)
> + *
> + * NOTE: The reason for using White+White is to speed up the crc (reuse the ref crc for all cases vs taking
> + * a ref crc per flip)
> + */
> +static void test_plane2(data_t *data, int n, int x1, int y1, int x2, int y2, int w, int h, int pw, int ph, struct fbc *fbc){
> +
> +	igt_crc_t test_crc;
> +	igt_display_t *display = &data->display;
> +
> +	/* Reference: */
> +
> +	igt_plane_set_fb(data->primary[n], &fbc[n].ref_primary);
> +
> +	igt_plane_set_position(data->primary[n], 0, 0);
> +	igt_plane_set_size(data->primary[n], pw, ph);
> +
> +	igt_display_commit_atomic(display, 0, 0);
> +
> +	/* Test: */
> +	/* Draw a white overlay with two cutouts at (x1,y1) and (x2,y2) */
> +	draw_color_alpha(&fbc[n].test_overlay2, 0, 0, pw, ph, 1.0, 1.0, 1.0, 1.0);
> +	draw_color_alpha(&fbc[n].test_overlay2, x1, y1, w, h, 0.0, 0.0, 0.0, 0.0);
> +	draw_color_alpha(&fbc[n].test_overlay2, x2, y2, w, h, 0.0, 0.0, 0.0, 0.0);
> +
> +	/* Draw a overlay to cover up one hole */
> +	draw_color_alpha(&fbc[n].test_overlay, 0, 0, pw, ph, 0.0, 0.0, 0.0, 0.0);
> +	draw_color_alpha(&fbc[n].test_overlay, x2, y2, w, h, 1.0, 1.0, 1.0, 1.0);
> +
> +	/* Draw a primary to cover up the other hole */
> +	draw_color_alpha(&fbc[n].test_primary, 0, 0, w, h, 0.0, 0.0, 0.0, 0.0);
> +	draw_color_alpha(&fbc[n].test_primary, 0, 0, w, h, 1.0, 1.0, 1.0, 1.0);
> +
> +	igt_plane_set_fb(data->primary[n], &fbc[n].test_primary);
> +	igt_plane_set_fb(data->overlay[n], &fbc[n].test_overlay);
> +	igt_plane_set_fb(data->overlay2[n], &fbc[n].test_overlay2);
> +
> +	/* Move the primary to cover one of the holes*/
> +	igt_plane_set_position(data->primary[n], x1, y1);
> +	igt_plane_set_size(data->primary[n], w, h);
> +
> +
> +	igt_display_commit_atomic(display, 0, 0);
> +	igt_pipe_crc_collect_crc(data->pipe_crc[n], &test_crc);
> +	igt_plane_set_fb(data->overlay[n], NULL);
> +	igt_plane_set_fb(data->overlay2[n], NULL);
> +
> +	igt_assert_crc_equal(&fbc[n].ref_crc, &test_crc);
> +
> +	/* Set window to white, this is to avoid flashing between black/white after each flip */
> +	draw_color_alpha(&fbc[n].ref_primary, 0, 0, w, h, 1.0, 1.0, 1.0, 1.00);
> +	igt_plane_set_fb(data->primary[n], &fbc[n].ref_primary);
> +	igt_plane_set_position(data->primary[n], 0, 0);
> +	igt_plane_set_size(data->primary[n], pw, ph);
> +	igt_display_commit_atomic(display, 0, 0);
> +
> +
> +}
> +
> +/*
> + * MPO_MULTI_OVERLAY: This test takes the plane sizes and assigns random position within the screen
> + *
> + * The test creates a white screen with 2 cutouts which are to be filled with 2 overlay planes.
> + * Testing multiple overlay planes
> + */
> +static void test_multi_overlay(data_t *data, int display_count, int w, int h, struct fbc *fb)
> +{
> +
> +	int x1,x2,y1,y2;
> +
> +	for (int n = 0; n < display_count; n++) {
> +
> +		int pw = data->w[n];
> +		int ph = data->h[n];
> +
> +		for (int i = 0; i < 1; i++){
> +
> +			if (pw <= w && ph <= h)
> +				break;
> +
> +			srand(time(NULL));
> +
> +			/* Generate random x,y positions for two cutouts*/
> +			x1 = (rand() % (pw-w));
> +			y1 = (rand() % (ph-h));
> +
> +			x2 = (rand() % (pw-w));
> +			y2 = (rand() % (ph-h));
> +
> +

Delete this line, one is enough.

> +			test_plane2(data, n, x1, y1, x2, y2, w,h, pw, ph, fb);
> +
> +		}
> +	}
> +
> +	return;

No need for return from void.

> +
> +

Delete two empty lines.

> +}
> +
>  /*
>   * Compares the result of white backgroud with white window with and without MPO
>   *
> @@ -467,6 +581,10 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
>  
>  	test_init(data);
>  
> +	/* Skip test if we don't have 2 overlay planes */
> +	if (test == MPO_MULTI_OVERLAY)
> +		igt_skip_on(!data->overlay2[0]);
> +
>  	/* Skip if there is less valid outputs than the required. */
>  	for_each_connected_output(display, output)
>  		valid_outputs++;
> @@ -494,6 +612,7 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
>  		igt_create_fb(data->fd, w, h, DRM_FORMAT_XRGB8888, 0, &fb[n].ref_primary);
>  		igt_create_color_fb(data->fd, w, h, DRM_FORMAT_XRGB8888, 0, 1.0, 1.0, 1.0, &fb[n].ref_primary);
>  		igt_create_fb(data->fd, w, h, DRM_FORMAT_ARGB8888, 0, &fb[n].test_overlay);
> +		igt_create_fb(data->fd, w, h, DRM_FORMAT_ARGB8888, 0, &fb[n].test_overlay2);
>  
>  		igt_plane_set_fb(data->primary[n], &fb[n].ref_primary);
>  
> @@ -520,6 +639,8 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
>  
>  		if (test == MPO_SINGLE_PAN)
>  			test_panning_1_display(data, display_count, videos[i][0], videos[i][1], fb);
> +		if (test == MPO_MULTI_OVERLAY)
> +			test_multi_overlay(data, display_count, videos[i][0], videos[i][1], fb);
>  		if (test == MPO_MULTI_PAN)
>  			test_panning_2_display(data, videos[i][0], videos[i][1], fb);
>  		if(test == MPO_SCALE)
> @@ -536,6 +657,7 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
>  	for (int n = 0; n < display_count; n++) {
>  		igt_remove_fb(data->fd, &fb[n].ref_primary);
>  		igt_remove_fb(data->fd, &fb[n].test_overlay);
> +		igt_remove_fb(data->fd, &fb[n].test_overlay2);
>  	}
>  }
>  /*
> @@ -798,6 +920,10 @@ igt_main
>  	igt_subtest("mpo-pan-multi-p010")
>  		test_display_mpo(&data, MPO_MULTI_PAN, DRM_FORMAT_P010, DISPLAYS_TO_TEST);
>  
> +	igt_describe("Multi MPO");

Could you put a little more description here ? Now it seems
like you repeated test name and it do not help much.
The same ask apply for your other patch.

Btw please use checkpatch.pl from linnux kernel, it can help catch
some empty lines and some other errors.

Regards,
Kamil

> +	igt_subtest("multi-mpo")
> +		test_display_mpo(&data, MPO_MULTI_OVERLAY, DRM_FORMAT_NV12, 1);
> +
>  	igt_describe("MPO and scaling RGB primary plane");
>  	igt_subtest("mpo-scale-rgb")
>  		test_display_mpo(&data, MPO_SCALE, DRM_FORMAT_XRGB8888, 1);
> -- 
> 2.25.1
> 

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

* [igt-dev] [PATCH 1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test
  2023-03-15 20:30     ` Leo Li
  2023-03-15 21:02       ` Bhawanpreet Lakha
@ 2023-03-23 17:29       ` Bhawanpreet Lakha
  2023-03-23 17:36         ` Leo Li
  1 sibling, 1 reply; 18+ messages in thread
From: Bhawanpreet Lakha @ 2023-03-23 17:29 UTC (permalink / raw)
  To: igt-dev, rodrigo.siqueira, sunpeng.li, harry.wentland,
	nicholas.kazlauskas
  Cc: Bhawanpreet Lakha

[Why]
Some of our ASICs  support multiple overlay planes, so create
a test to test them

[How]
Create a plane with two holes and fill them up with 2 overlay planes

*v2
- Create a overlap/non overlap test instead of using rand()
- Update test description
- Formatting fixes

Signed-off-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
---
 tests/amdgpu/amd_plane.c | 115 ++++++++++++++++++++++++++++++++++++++-
 1 file changed, 114 insertions(+), 1 deletion(-)

diff --git a/tests/amdgpu/amd_plane.c b/tests/amdgpu/amd_plane.c
index b9eec677..4115d692 100644
--- a/tests/amdgpu/amd_plane.c
+++ b/tests/amdgpu/amd_plane.c
@@ -42,6 +42,7 @@ typedef struct data {
         igt_plane_t *primary[MAX_PIPES];
         igt_plane_t *cursor[MAX_PIPES];
 	igt_plane_t *overlay[MAX_PIPES];
+	igt_plane_t *overlay2[MAX_PIPES];
         igt_output_t *output[MAX_PIPES];
         igt_pipe_t *pipe[MAX_PIPES];
         igt_pipe_crc_t *pipe_crc[MAX_PIPES];
@@ -144,7 +145,8 @@ static void lut_free(lut_t *lut)
 enum test {
 	MPO_SINGLE_PAN,
 	MPO_MULTI_PAN,
-	MPO_SCALE
+	MPO_SCALE,
+	MPO_MULTI_OVERLAY
 };
 
 static void test_init(data_t *data)
@@ -159,6 +161,8 @@ static void test_init(data_t *data)
 			data->pipe[i], DRM_PLANE_TYPE_PRIMARY);
 		data->overlay[i] = igt_pipe_get_plane_type_index(
 			data->pipe[i], DRM_PLANE_TYPE_OVERLAY, 0);
+		data->overlay2[i] = igt_pipe_get_plane_type_index(
+			data->pipe[i], DRM_PLANE_TYPE_OVERLAY, 1);
 		data->cursor[i] = igt_pipe_get_plane_type(
 			data->pipe[i], DRM_PLANE_TYPE_CURSOR);
 		data->pipe_crc[i] =
@@ -252,6 +256,7 @@ struct fbc {
 	igt_fb_t ref_primary;
 	igt_fb_t test_primary;
 	igt_fb_t test_overlay;
+	igt_fb_t test_overlay2;
 	igt_crc_t ref_crc;
 };
 
@@ -264,6 +269,102 @@ static void set_regamma_lut(data_t *data, lut_t const *lut, int n)
 				       size);
 }
 
+/*
+ * Compares the result of white background with white window with and without MPO
+ *
+ * Reference crc:
+ * Draws a White background of size (pw,ph).
+ *
+ * Test crc:
+ * Draws a White Overlay of size (pw,ph) then creates a cutout of size (w,h) at location (x1, y1) and (x2, y2)
+ * Draws a White Primary plane of size (w, h) at location (x1,y1) (under the overlay)
+ * Draws a White Overlay of size (w, h) at location (x2,y2)
+ *
+ * NOTE: The reason for using White+White is to speed up the crc (reuse the ref crc for all cases vs taking
+ * a ref crc per flip)
+ */
+static void test_plane2(data_t *data, int n, int x1, int y1, int x2, int y2, int w, int h, int pw, int ph, struct fbc *fbc)
+{
+
+	igt_crc_t test_crc;
+	igt_display_t *display = &data->display;
+
+	/* Reference: */
+
+	igt_plane_set_fb(data->primary[n], &fbc[n].ref_primary);
+
+	igt_plane_set_position(data->primary[n], 0, 0);
+	igt_plane_set_size(data->primary[n], pw, ph);
+
+	igt_display_commit_atomic(display, 0, 0);
+
+	/* Test: */
+	/* Draw a white overlay with two cutouts at (x1,y1) and (x2,y2) */
+	draw_color_alpha(&fbc[n].test_overlay2, 0, 0, pw, ph, 1.0, 1.0, 1.0, 1.0);
+	draw_color_alpha(&fbc[n].test_overlay2, x1, y1, w, h, 0.0, 0.0, 0.0, 0.0);
+	draw_color_alpha(&fbc[n].test_overlay2, x2, y2, w, h, 0.0, 0.0, 0.0, 0.0);
+
+	/* Draw a overlay to cover up one hole */
+	draw_color_alpha(&fbc[n].test_overlay, 0, 0, pw, ph, 0.0, 0.0, 0.0, 0.0);
+	draw_color_alpha(&fbc[n].test_overlay, x2, y2, w, h, 1.0, 1.0, 1.0, 1.0);
+
+	/* Draw a primary to cover up the other hole */
+	draw_color_alpha(&fbc[n].test_primary, 0, 0, w, h, 0.0, 0.0, 0.0, 0.0);
+	draw_color_alpha(&fbc[n].test_primary, 0, 0, w, h, 1.0, 1.0, 1.0, 1.0);
+
+	igt_plane_set_fb(data->primary[n], &fbc[n].test_primary);
+	igt_plane_set_fb(data->overlay[n], &fbc[n].test_overlay);
+	igt_plane_set_fb(data->overlay2[n], &fbc[n].test_overlay2);
+
+	/* Move the primary to cover one of the holes*/
+	igt_plane_set_position(data->primary[n], x1, y1);
+	igt_plane_set_size(data->primary[n], w, h);
+
+
+	igt_display_commit_atomic(display, 0, 0);
+	igt_pipe_crc_collect_crc(data->pipe_crc[n], &test_crc);
+	igt_plane_set_fb(data->overlay[n], NULL);
+	igt_plane_set_fb(data->overlay2[n], NULL);
+
+	igt_assert_crc_equal(&fbc[n].ref_crc, &test_crc);
+
+	/* Set window to white, this is to avoid flashing between black/white after each flip */
+	draw_color_alpha(&fbc[n].ref_primary, 0, 0, w, h, 1.0, 1.0, 1.0, 1.00);
+	igt_plane_set_fb(data->primary[n], &fbc[n].ref_primary);
+	igt_plane_set_position(data->primary[n], 0, 0);
+	igt_plane_set_size(data->primary[n], pw, ph);
+	igt_display_commit_atomic(display, 0, 0);
+}
+
+/*
+ * MPO_MULTI_OVERLAY: This test takes the plane sizes and assigns random position within the screen
+ *
+ * The test creates a white screen with 2 cutouts which are to be filled with 2 overlay planes.
+ * Testing multiple overlay planes
+ */
+static void test_multi_overlay(data_t *data, int display_count, int w, int h, struct fbc *fb)
+{
+
+	for (int n = 0; n < display_count; n++) {
+
+		int pw = data->w[n];
+		int ph = data->h[n];
+
+		if (pw <= w && ph <= h)
+			break;
+
+		/* Don't overlap the planes */
+		test_plane2(data, n, 0, 0, pw - w, ph - h, w, h, pw, ph, fb);
+
+		if (w/2 > pw - w || h/2 > ph - h)
+			break;
+
+		/* Overlap the planes */
+		test_plane2(data, n, 0, 0, w/2, h/2, w, h, pw, ph, fb);
+	}
+
+}
+
 /*
  * Compares the result of white backgroud with white window with and without MPO
  *
@@ -467,6 +568,10 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
 
 	test_init(data);
 
+	/* Skip test if we don't have 2 overlay planes */
+	if (test == MPO_MULTI_OVERLAY)
+		igt_skip_on(!data->overlay2[0]);
+
 	/* Skip if there is less valid outputs than the required. */
 	for_each_connected_output(display, output)
 		valid_outputs++;
@@ -494,6 +599,7 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
 		igt_create_fb(data->fd, w, h, DRM_FORMAT_XRGB8888, 0, &fb[n].ref_primary);
 		igt_create_color_fb(data->fd, w, h, DRM_FORMAT_XRGB8888, 0, 1.0, 1.0, 1.0, &fb[n].ref_primary);
 		igt_create_fb(data->fd, w, h, DRM_FORMAT_ARGB8888, 0, &fb[n].test_overlay);
+		igt_create_fb(data->fd, w, h, DRM_FORMAT_ARGB8888, 0, &fb[n].test_overlay2);
 
 		igt_plane_set_fb(data->primary[n], &fb[n].ref_primary);
 
@@ -520,6 +626,8 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
 
 		if (test == MPO_SINGLE_PAN)
 			test_panning_1_display(data, display_count, videos[i][0], videos[i][1], fb);
+		if (test == MPO_MULTI_OVERLAY)
+			test_multi_overlay(data, display_count, videos[i][0], videos[i][1], fb);
 		if (test == MPO_MULTI_PAN)
 			test_panning_2_display(data, videos[i][0], videos[i][1], fb);
 		if(test == MPO_SCALE)
@@ -536,6 +644,7 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
 	for (int n = 0; n < display_count; n++) {
 		igt_remove_fb(data->fd, &fb[n].ref_primary);
 		igt_remove_fb(data->fd, &fb[n].test_overlay);
+		igt_remove_fb(data->fd, &fb[n].test_overlay2);
 	}
 }
 /*
@@ -798,6 +907,10 @@ igt_main
 	igt_subtest("mpo-pan-multi-p010")
 		test_display_mpo(&data, MPO_MULTI_PAN, DRM_FORMAT_P010, DISPLAYS_TO_TEST);
 
+	igt_describe("MPO with 2 overlay planes and a primary plane");
+	igt_subtest("multi-overlay")
+		test_display_mpo(&data, MPO_MULTI_OVERLAY, DRM_FORMAT_NV12, 1);
+
 	igt_describe("MPO and scaling RGB primary plane");
 	igt_subtest("mpo-scale-rgb")
 		test_display_mpo(&data, MPO_SCALE, DRM_FORMAT_XRGB8888, 1);
-- 
2.25.1

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

* [igt-dev] [PATCH 2/2] amdgpu_amd_plane: Add Multi MPO invalid test
  2023-02-17 20:38   ` Leo Li
@ 2023-03-23 17:30     ` Bhawanpreet Lakha
  0 siblings, 0 replies; 18+ messages in thread
From: Bhawanpreet Lakha @ 2023-03-23 17:30 UTC (permalink / raw)
  To: igt-dev, rodrigo.siqueira, sunpeng.li, harry.wentland,
	nicholas.kazlauskas
  Cc: Bhawanpreet Lakha

[Why]
We cannot draw cursor on a video plane so if the usermode trys to use
the topmost plane as a video plane we should reject that commit

[How]
Trying to use a video format (NV12) as the topmost plane should fail
atomic check

*v2
- Update test description
- Formatting fixes

Signed-off-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
---
 tests/amdgpu/amd_plane.c | 55 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/tests/amdgpu/amd_plane.c b/tests/amdgpu/amd_plane.c
index 4115d692..fd46fb04 100644
--- a/tests/amdgpu/amd_plane.c
+++ b/tests/amdgpu/amd_plane.c
@@ -544,6 +544,57 @@ static void test_panning_2_display(data_t *data, int w, int h, struct fbc *fbc)
 
 }
 
+/*
+ * This tests invalid plane format order
+ *
+ * Since we cannot draw a cursor on a video plane the top most plane cannot be a video plane.
+ * This test tries to commit a configuration where the topmost plane is a video plane. This is
+ * expected to fail since we do not support that configuration.
+ */
+static void test_multi_mpo_invalid(data_t *data)
+{
+	igt_display_t *display = &data->display;
+	igt_output_t *output;
+	uint32_t regamma_lut_size;
+	lut_t lut;
+	struct fbc fb[4];
+	int valid_outputs = 0;
+	int w, h;
+	int ret;
+
+	test_init(data);
+
+	w = data->w[0];
+	h = data->h[0];
+
+	/* Skip test if we don't have 2 overlay planes */
+	igt_skip_on(!data->overlay2[0]);
+
+	igt_output_set_pipe(data->output[0], data->pipe_id[0]);
+
+	igt_create_color_fb(data->fd, w, h, DRM_FORMAT_XRGB8888, 0, 1.0, 1.0, 1.0, &fb[0].test_primary);
+	igt_create_fb(data->fd, w, h, DRM_FORMAT_NV12, 0, &fb[0].test_overlay);
+
+	/* Top most plane is NV12 (video plane) */
+	igt_create_fb(data->fd, w, h, DRM_FORMAT_NV12, 0, &fb[0].test_overlay2);
+
+	igt_plane_set_fb(data->primary[0], &fb[0].test_primary);
+	igt_plane_set_fb(data->overlay[0], &fb[0].test_overlay);
+	igt_plane_set_fb(data->overlay2[0], &fb[0].test_overlay2);
+
+	/* This should fail as the topmost plane is NV12 */
+	ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_TEST_ONLY, NULL);
+
+	if (!ret)
+		igt_assert(0);
+
+	test_fini(data);
+
+	igt_remove_fb(data->fd, &fb[0].test_primary);
+	igt_remove_fb(data->fd, &fb[0].test_overlay);
+	igt_remove_fb(data->fd, &fb[0].test_overlay2);
+}
+
 /*
  * Setup and runner for panning test. Creates common video sizes and pans them across the display
  */
@@ -911,6 +962,10 @@ igt_main
 	igt_subtest("multi-overlay")
 		test_display_mpo(&data, MPO_MULTI_OVERLAY, DRM_FORMAT_NV12, 1);
 
+	igt_describe("Invalid MPO with 2 overlays planes and a primary plane");
+	igt_subtest("multi-overlay-invalid")
+		test_multi_mpo_invalid(&data);
+
 	igt_describe("MPO and scaling RGB primary plane");
 	igt_subtest("mpo-scale-rgb")
 		test_display_mpo(&data, MPO_SCALE, DRM_FORMAT_XRGB8888, 1);
-- 
2.25.1

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

* Re: [igt-dev] [PATCH 1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test
  2023-03-23 17:29       ` Bhawanpreet Lakha
@ 2023-03-23 17:36         ` Leo Li
  0 siblings, 0 replies; 18+ messages in thread
From: Leo Li @ 2023-03-23 17:36 UTC (permalink / raw)
  To: Bhawanpreet Lakha, igt-dev, rodrigo.siqueira, harry.wentland,
	nicholas.kazlauskas



On 3/23/23 13:29, Bhawanpreet Lakha wrote:
> [Why]
> Some of our ASICs  support multiple overlay planes, so create
> a test to test them
> 
> [How]
> Create a plane with two holes and fill them up with 2 overlay planes
> 
> *v2
> - Create a overlap/non overlap test instead of using rand()
> - Update test description
> - Formatting fixes
> 
> Signed-off-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
> ---
>   tests/amdgpu/amd_plane.c | 115 ++++++++++++++++++++++++++++++++++++++-
>   1 file changed, 114 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/amdgpu/amd_plane.c b/tests/amdgpu/amd_plane.c
> index b9eec677..4115d692 100644
> --- a/tests/amdgpu/amd_plane.c
> +++ b/tests/amdgpu/amd_plane.c
> @@ -42,6 +42,7 @@ typedef struct data {
>           igt_plane_t *primary[MAX_PIPES];
>           igt_plane_t *cursor[MAX_PIPES];
>   	igt_plane_t *overlay[MAX_PIPES];
> +	igt_plane_t *overlay2[MAX_PIPES];
>           igt_output_t *output[MAX_PIPES];
>           igt_pipe_t *pipe[MAX_PIPES];
>           igt_pipe_crc_t *pipe_crc[MAX_PIPES];
> @@ -144,7 +145,8 @@ static void lut_free(lut_t *lut)
>   enum test {
>   	MPO_SINGLE_PAN,
>   	MPO_MULTI_PAN,
> -	MPO_SCALE
> +	MPO_SCALE,
> +	MPO_MULTI_OVERLAY
>   };
>   
>   static void test_init(data_t *data)
> @@ -159,6 +161,8 @@ static void test_init(data_t *data)
>   			data->pipe[i], DRM_PLANE_TYPE_PRIMARY);
>   		data->overlay[i] = igt_pipe_get_plane_type_index(
>   			data->pipe[i], DRM_PLANE_TYPE_OVERLAY, 0);
> +		data->overlay2[i] = igt_pipe_get_plane_type_index(
> +			data->pipe[i], DRM_PLANE_TYPE_OVERLAY, 1);
>   		data->cursor[i] = igt_pipe_get_plane_type(
>   			data->pipe[i], DRM_PLANE_TYPE_CURSOR);
>   		data->pipe_crc[i] =
> @@ -252,6 +256,7 @@ struct fbc {
>   	igt_fb_t ref_primary;
>   	igt_fb_t test_primary;
>   	igt_fb_t test_overlay;
> +	igt_fb_t test_overlay2;
>   	igt_crc_t ref_crc;
>   };
>   
> @@ -264,6 +269,102 @@ static void set_regamma_lut(data_t *data, lut_t const *lut, int n)
>   				       size);
>   }
>   
> +/*
> + * Compares the result of white background with white window with and without MPO
> + *
> + * Reference crc:
> + * Draws a White background of size (pw,ph).
> + *
> + * Test crc:
> + * Draws a White Overlay of size (pw,ph) then creates a cutout of size (w,h) at location (x1, y1) and (x2, y2)
> + * Draws a White Primary plane of size (w, h) at location (x1,y1) (under the overlay)
> + * Draws a White Overlay of size (w, h) at location (x2,y2)
> + *
> + * NOTE: The reason for using White+White is to speed up the crc (reuse the ref crc for all cases vs taking
> + * a ref crc per flip)
> + */
> +static void test_plane2(data_t *data, int n, int x1, int y1, int x2, int y2, int w, int h, int pw, int ph, struct fbc *fbc)
> +{
> +
> +	igt_crc_t test_crc;
> +	igt_display_t *display = &data->display;
> +
> +	/* Reference: */
> +
> +	igt_plane_set_fb(data->primary[n], &fbc[n].ref_primary);
> +
> +	igt_plane_set_position(data->primary[n], 0, 0);
> +	igt_plane_set_size(data->primary[n], pw, ph);
> +
> +	igt_display_commit_atomic(display, 0, 0);
> +
> +	/* Test: */
> +	/* Draw a white overlay with two cutouts at (x1,y1) and (x2,y2) */
> +	draw_color_alpha(&fbc[n].test_overlay2, 0, 0, pw, ph, 1.0, 1.0, 1.0, 1.0);
> +	draw_color_alpha(&fbc[n].test_overlay2, x1, y1, w, h, 0.0, 0.0, 0.0, 0.0);
> +	draw_color_alpha(&fbc[n].test_overlay2, x2, y2, w, h, 0.0, 0.0, 0.0, 0.0);
> +
> +	/* Draw a overlay to cover up one hole */
> +	draw_color_alpha(&fbc[n].test_overlay, 0, 0, pw, ph, 0.0, 0.0, 0.0, 0.0);
> +	draw_color_alpha(&fbc[n].test_overlay, x2, y2, w, h, 1.0, 1.0, 1.0, 1.0);
> +
> +	/* Draw a primary to cover up the other hole */
> +	draw_color_alpha(&fbc[n].test_primary, 0, 0, w, h, 0.0, 0.0, 0.0, 0.0);
> +	draw_color_alpha(&fbc[n].test_primary, 0, 0, w, h, 1.0, 1.0, 1.0, 1.0);
> +
> +	igt_plane_set_fb(data->primary[n], &fbc[n].test_primary);
> +	igt_plane_set_fb(data->overlay[n], &fbc[n].test_overlay);
> +	igt_plane_set_fb(data->overlay2[n], &fbc[n].test_overlay2);
> +
> +	/* Move the primary to cover one of the holes*/
> +	igt_plane_set_position(data->primary[n], x1, y1);
> +	igt_plane_set_size(data->primary[n], w, h);
> +
> +
> +	igt_display_commit_atomic(display, 0, 0);
> +	igt_pipe_crc_collect_crc(data->pipe_crc[n], &test_crc);
> +	igt_plane_set_fb(data->overlay[n], NULL);
> +	igt_plane_set_fb(data->overlay2[n], NULL);
> +
> +	igt_assert_crc_equal(&fbc[n].ref_crc, &test_crc);
> +
> +	/* Set window to white, this is to avoid flashing between black/white after each flip */
> +	draw_color_alpha(&fbc[n].ref_primary, 0, 0, w, h, 1.0, 1.0, 1.0, 1.00);
> +	igt_plane_set_fb(data->primary[n], &fbc[n].ref_primary);
> +	igt_plane_set_position(data->primary[n], 0, 0);
> +	igt_plane_set_size(data->primary[n], pw, ph);
> +	igt_display_commit_atomic(display, 0, 0);
> +}
> +
> +/*
> + * MPO_MULTI_OVERLAY: This test takes the plane sizes and assigns random position within the screen

With "random" removed,

Reviewed-by: Leo Li <sunpeng.li@amd.com>

Thanks,
leo

> + *
> + * The test creates a white screen with 2 cutouts which are to be filled with 2 overlay planes.
> + * Testing multiple overlay planes
> + */
> +static void test_multi_overlay(data_t *data, int display_count, int w, int h, struct fbc *fb)
> +{
> +
> +	for (int n = 0; n < display_count; n++) {
> +
> +		int pw = data->w[n];
> +		int ph = data->h[n];
> +
> +		if (pw <= w && ph <= h)
> +			break;
> +
> +		/* Don't overlap the planes */
> +		test_plane2(data, n, 0, 0, pw - w, ph - h, w, h, pw, ph, fb);
> +
> +		if (w/2 > pw - w || h/2 > ph - h)
> +			break;
> +
> +		/* Overlap the planes */
> +		test_plane2(data, n, 0, 0, w/2, h/2, w, h, pw, ph, fb);
> +	}
> +
> +}
> +
>   /*
>    * Compares the result of white backgroud with white window with and without MPO
>    *
> @@ -467,6 +568,10 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
>   
>   	test_init(data);
>   
> +	/* Skip test if we don't have 2 overlay planes */
> +	if (test == MPO_MULTI_OVERLAY)
> +		igt_skip_on(!data->overlay2[0]);
> +
>   	/* Skip if there is less valid outputs than the required. */
>   	for_each_connected_output(display, output)
>   		valid_outputs++;
> @@ -494,6 +599,7 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
>   		igt_create_fb(data->fd, w, h, DRM_FORMAT_XRGB8888, 0, &fb[n].ref_primary);
>   		igt_create_color_fb(data->fd, w, h, DRM_FORMAT_XRGB8888, 0, 1.0, 1.0, 1.0, &fb[n].ref_primary);
>   		igt_create_fb(data->fd, w, h, DRM_FORMAT_ARGB8888, 0, &fb[n].test_overlay);
> +		igt_create_fb(data->fd, w, h, DRM_FORMAT_ARGB8888, 0, &fb[n].test_overlay2);
>   
>   		igt_plane_set_fb(data->primary[n], &fb[n].ref_primary);
>   
> @@ -520,6 +626,8 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
>   
>   		if (test == MPO_SINGLE_PAN)
>   			test_panning_1_display(data, display_count, videos[i][0], videos[i][1], fb);
> +		if (test == MPO_MULTI_OVERLAY)
> +			test_multi_overlay(data, display_count, videos[i][0], videos[i][1], fb);
>   		if (test == MPO_MULTI_PAN)
>   			test_panning_2_display(data, videos[i][0], videos[i][1], fb);
>   		if(test == MPO_SCALE)
> @@ -536,6 +644,7 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
>   	for (int n = 0; n < display_count; n++) {
>   		igt_remove_fb(data->fd, &fb[n].ref_primary);
>   		igt_remove_fb(data->fd, &fb[n].test_overlay);
> +		igt_remove_fb(data->fd, &fb[n].test_overlay2);
>   	}
>   }
>   /*
> @@ -798,6 +907,10 @@ igt_main
>   	igt_subtest("mpo-pan-multi-p010")
>   		test_display_mpo(&data, MPO_MULTI_PAN, DRM_FORMAT_P010, DISPLAYS_TO_TEST);
>   
> +	igt_describe("MPO with 2 overlay planes and a primary plane");
> +	igt_subtest("multi-overlay")
> +		test_display_mpo(&data, MPO_MULTI_OVERLAY, DRM_FORMAT_NV12, 1);
> +
>   	igt_describe("MPO and scaling RGB primary plane");
>   	igt_subtest("mpo-scale-rgb")
>   		test_display_mpo(&data, MPO_SCALE, DRM_FORMAT_XRGB8888, 1);

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

* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test (rev4)
  2023-02-13 18:16 [igt-dev] [PATCH 1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test Bhawanpreet Lakha
                   ` (6 preceding siblings ...)
  2023-03-17 17:26 ` [igt-dev] [PATCH 1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test Kamil Konieczny
@ 2023-03-23 18:09 ` Patchwork
  2023-03-23 23:41 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  8 siblings, 0 replies; 18+ messages in thread
From: Patchwork @ 2023-03-23 18:09 UTC (permalink / raw)
  To: Bhawanpreet Lakha; +Cc: igt-dev

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

== Series Details ==

Series: series starting with [1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test (rev4)
URL   : https://patchwork.freedesktop.org/series/113966/
State : success

== Summary ==

CI Bug Log - changes from IGT_7212 -> IGTPW_8671
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

  Additional (1): fi-pnv-d510 
  Missing    (1): fi-snb-2520m 

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

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

### IGT changes ###

#### Issues hit ####

  * igt@i915_selftest@live@guc:
    - bat-rpls-2:         NOTRUN -> [DMESG-WARN][1] ([i915#7852])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/bat-rpls-2/igt@i915_selftest@live@guc.html

  * igt@i915_selftest@live@reset:
    - bat-rpls-1:         [PASS][2] -> [ABORT][3] ([i915#4983])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/bat-rpls-1/igt@i915_selftest@live@reset.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/bat-rpls-1/igt@i915_selftest@live@reset.html

  * igt@i915_selftest@live@slpc:
    - bat-rpls-2:         NOTRUN -> [DMESG-FAIL][4] ([i915#6367] / [i915#7913])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/bat-rpls-2/igt@i915_selftest@live@slpc.html

  * igt@kms_chamelium_hpd@common-hpd-after-suspend:
    - bat-rpls-2:         NOTRUN -> [SKIP][5] ([i915#7828])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/bat-rpls-2/igt@kms_chamelium_hpd@common-hpd-after-suspend.html

  * igt@kms_pipe_crc_basic@suspend-read-crc:
    - bat-rpls-2:         NOTRUN -> [SKIP][6] ([i915#1845])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/bat-rpls-2/igt@kms_pipe_crc_basic@suspend-read-crc.html

  * igt@kms_psr@primary_page_flip:
    - fi-pnv-d510:        NOTRUN -> [SKIP][7] ([fdo#109271]) +38 similar issues
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/fi-pnv-d510/igt@kms_psr@primary_page_flip.html

  
#### Possible fixes ####

  * igt@i915_selftest@live@gt_heartbeat:
    - fi-apl-guc:         [DMESG-FAIL][8] ([i915#5334]) -> [PASS][9]
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html

  * igt@i915_selftest@live@reset:
    - bat-rpls-2:         [ABORT][10] ([i915#4983] / [i915#7913]) -> [PASS][11]
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/bat-rpls-2/igt@i915_selftest@live@reset.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/bat-rpls-2/igt@i915_selftest@live@reset.html

  
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
  [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
  [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#7852]: https://gitlab.freedesktop.org/drm/intel/issues/7852
  [i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7212 -> IGTPW_8671

  CI-20190529: 20190529
  CI_DRM_12905: 3a266f994a6b752953eb974ab7bf1dc382a2d1b8 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8671: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/index.html
  IGT_7212: c67b6c8993c509ca06eca222287c58ade43292e6 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

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

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

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

* [igt-dev] ✓ Fi.CI.IGT: success for series starting with [1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test (rev4)
  2023-02-13 18:16 [igt-dev] [PATCH 1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test Bhawanpreet Lakha
                   ` (7 preceding siblings ...)
  2023-03-23 18:09 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test (rev4) Patchwork
@ 2023-03-23 23:41 ` Patchwork
  8 siblings, 0 replies; 18+ messages in thread
From: Patchwork @ 2023-03-23 23:41 UTC (permalink / raw)
  To: Bhawanpreet Lakha; +Cc: igt-dev

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

== Series Details ==

Series: series starting with [1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test (rev4)
URL   : https://patchwork.freedesktop.org/series/113966/
State : success

== Summary ==

CI Bug Log - changes from IGT_7212_full -> IGTPW_8671_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (7 -> 7)
------------------------------

  No changes in participating hosts

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_userptr_blits@access-control:
    - shard-glk:          NOTRUN -> [SKIP][1] ([fdo#109271]) +17 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-glk8/igt@gem_userptr_blits@access-control.html

  * igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc:
    - shard-glk:          NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#3886])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-glk3/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_mc_ccs:
    - shard-apl:          NOTRUN -> [SKIP][3] ([fdo#109271] / [i915#3886])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-apl7/igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_mc_ccs.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc:
    - shard-apl:          NOTRUN -> [SKIP][4] ([fdo#109271]) +24 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-apl7/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc.html

  
#### Possible fixes ####

  * igt@drm_read@short-buffer-block:
    - {shard-rkl}:        [SKIP][5] ([i915#4098]) -> [PASS][6] +1 similar issue
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-rkl-3/igt@drm_read@short-buffer-block.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-rkl-6/igt@drm_read@short-buffer-block.html

  * igt@fbdev@eof:
    - {shard-rkl}:        [SKIP][7] ([i915#2582]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-rkl-3/igt@fbdev@eof.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-rkl-6/igt@fbdev@eof.html

  * igt@fbdev@write:
    - {shard-tglu}:       [SKIP][9] ([i915#2582]) -> [PASS][10] +1 similar issue
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-tglu-9/igt@fbdev@write.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-tglu-8/igt@fbdev@write.html

  * igt@feature_discovery@psr2:
    - {shard-rkl}:        [SKIP][11] ([i915#658]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-rkl-3/igt@feature_discovery@psr2.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-rkl-6/igt@feature_discovery@psr2.html

  * {igt@gem_barrier_race@remote-request@rcs0}:
    - shard-glk:          [ABORT][13] ([i915#8190]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-glk3/igt@gem_barrier_race@remote-request@rcs0.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-glk1/igt@gem_barrier_race@remote-request@rcs0.html

  * igt@gem_ctx_exec@basic-nohangcheck:
    - {shard-tglu}:       [FAIL][15] ([i915#6268]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-tglu-7/igt@gem_ctx_exec@basic-nohangcheck.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-tglu-7/igt@gem_ctx_exec@basic-nohangcheck.html

  * igt@gem_eio@suspend:
    - {shard-rkl}:        [FAIL][17] ([i915#5115] / [i915#7052]) -> [PASS][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-rkl-4/igt@gem_eio@suspend.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-rkl-6/igt@gem_eio@suspend.html

  * igt@gem_exec_fair@basic-none-solo@rcs0:
    - shard-apl:          [FAIL][19] ([i915#2842]) -> [PASS][20]
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-apl4/igt@gem_exec_fair@basic-none-solo@rcs0.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-apl4/igt@gem_exec_fair@basic-none-solo@rcs0.html

  * igt@gem_exec_fair@basic-pace@rcs0:
    - {shard-rkl}:        [FAIL][21] ([i915#2842]) -> [PASS][22]
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-rkl-5/igt@gem_exec_fair@basic-pace@rcs0.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-rkl-5/igt@gem_exec_fair@basic-pace@rcs0.html

  * igt@gem_exec_reloc@basic-cpu-noreloc:
    - {shard-rkl}:        [SKIP][23] ([i915#3281]) -> [PASS][24] +3 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-rkl-1/igt@gem_exec_reloc@basic-cpu-noreloc.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-rkl-5/igt@gem_exec_reloc@basic-cpu-noreloc.html

  * igt@gem_partial_pwrite_pread@writes-after-reads-uncached:
    - {shard-rkl}:        [SKIP][25] ([i915#3282]) -> [PASS][26] +6 similar issues
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-rkl-3/igt@gem_partial_pwrite_pread@writes-after-reads-uncached.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-rkl-5/igt@gem_partial_pwrite_pread@writes-after-reads-uncached.html

  * igt@gem_workarounds@suspend-resume:
    - {shard-rkl}:        [FAIL][27] ([fdo#103375]) -> [PASS][28]
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-rkl-4/igt@gem_workarounds@suspend-resume.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-rkl-2/igt@gem_workarounds@suspend-resume.html

  * igt@gen9_exec_parse@bb-start-cmd:
    - {shard-rkl}:        [SKIP][29] ([i915#2527]) -> [PASS][30]
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-rkl-3/igt@gen9_exec_parse@bb-start-cmd.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-rkl-5/igt@gen9_exec_parse@bb-start-cmd.html

  * igt@i915_pm_dc@dc5-dpms:
    - {shard-rkl}:        [FAIL][31] ([i915#7330]) -> [PASS][32]
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-rkl-5/igt@i915_pm_dc@dc5-dpms.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-rkl-1/igt@i915_pm_dc@dc5-dpms.html

  * igt@i915_pm_dc@dc6-dpms:
    - {shard-rkl}:        [SKIP][33] ([i915#3361]) -> [PASS][34]
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-rkl-5/igt@i915_pm_dc@dc6-dpms.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-rkl-4/igt@i915_pm_dc@dc6-dpms.html
    - {shard-tglu}:       [FAIL][35] ([i915#3989] / [i915#454]) -> [PASS][36]
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-tglu-8/igt@i915_pm_dc@dc6-dpms.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-tglu-4/igt@i915_pm_dc@dc6-dpms.html

  * igt@i915_pm_dc@dc9-dpms:
    - shard-apl:          [SKIP][37] ([fdo#109271]) -> [PASS][38]
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-apl1/igt@i915_pm_dc@dc9-dpms.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-apl4/igt@i915_pm_dc@dc9-dpms.html

  * igt@i915_pm_rpm@dpms-mode-unset-lpsp:
    - {shard-tglu}:       [SKIP][39] ([i915#1397]) -> [PASS][40] +1 similar issue
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-tglu-9/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-tglu-4/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html

  * igt@kms_cursor_crc@cursor-suspend@pipe-a-dp-1:
    - shard-apl:          [ABORT][41] ([i915#180]) -> [PASS][42]
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-apl7/igt@kms_cursor_crc@cursor-suspend@pipe-a-dp-1.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-apl6/igt@kms_cursor_crc@cursor-suspend@pipe-a-dp-1.html

  * igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size:
    - {shard-rkl}:        [SKIP][43] ([i915#1845] / [i915#4098]) -> [PASS][44] +28 similar issues
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-rkl-3/igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-rkl-6/igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
    - shard-glk:          [FAIL][45] ([i915#2346]) -> [PASS][46]
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-glk7/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-glk7/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html

  * igt@kms_cursor_legacy@single-bo@pipe-a:
    - {shard-rkl}:        [INCOMPLETE][47] -> [PASS][48]
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-rkl-1/igt@kms_cursor_legacy@single-bo@pipe-a.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-rkl-1/igt@kms_cursor_legacy@single-bo@pipe-a.html

  * igt@kms_cursor_legacy@single-bo@pipe-b:
    - {shard-tglu}:       [INCOMPLETE][49] ([i915#8011]) -> [PASS][50]
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-tglu-1/igt@kms_cursor_legacy@single-bo@pipe-b.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-tglu-9/igt@kms_cursor_legacy@single-bo@pipe-b.html

  * igt@kms_cursor_legacy@single-move@pipe-b:
    - {shard-dg1}:        [INCOMPLETE][51] ([i915#8011]) -> [PASS][52]
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-dg1-14/igt@kms_cursor_legacy@single-move@pipe-b.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-dg1-16/igt@kms_cursor_legacy@single-move@pipe-b.html

  * igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible@ab-hdmi-a1-hdmi-a2:
    - shard-glk:          [FAIL][53] ([i915#2122]) -> [PASS][54]
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-glk7/igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible@ab-hdmi-a1-hdmi-a2.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-glk4/igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible@ab-hdmi-a1-hdmi-a2.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@b-hdmi-a1:
    - shard-glk:          [FAIL][55] ([i915#79]) -> [PASS][56]
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-glk6/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-hdmi-a1.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-glk7/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-hdmi-a1.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@c-dp1:
    - shard-apl:          [FAIL][57] ([i915#79]) -> [PASS][58]
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-apl2/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-dp1.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-apl6/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-dp1.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-pwrite:
    - {shard-tglu}:       [SKIP][59] ([i915#1849]) -> [PASS][60] +11 similar issues
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-tglu-10/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-pwrite.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-tglu-3/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite:
    - {shard-rkl}:        [SKIP][61] ([i915#1849] / [i915#4098]) -> [PASS][62] +11 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-rkl-5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite.html

  * igt@kms_psr@primary_mmap_gtt:
    - {shard-rkl}:        [SKIP][63] ([i915#1072]) -> [PASS][64] +1 similar issue
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-rkl-4/igt@kms_psr@primary_mmap_gtt.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-rkl-6/igt@kms_psr@primary_mmap_gtt.html

  * igt@kms_universal_plane@universal-plane-pipe-c-sanity:
    - {shard-tglu}:       [SKIP][65] ([i915#1845]) -> [PASS][66] +22 similar issues
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-tglu-9/igt@kms_universal_plane@universal-plane-pipe-c-sanity.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-tglu-6/igt@kms_universal_plane@universal-plane-pipe-c-sanity.html

  * igt@kms_vblank@pipe-a-query-forked:
    - {shard-tglu}:       [SKIP][67] ([i915#1845] / [i915#7651]) -> [PASS][68] +26 similar issues
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-tglu-9/igt@kms_vblank@pipe-a-query-forked.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-tglu-6/igt@kms_vblank@pipe-a-query-forked.html

  * igt@perf_pmu@idle@rcs0:
    - {shard-rkl}:        [FAIL][69] ([i915#4349]) -> [PASS][70]
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-rkl-2/igt@perf_pmu@idle@rcs0.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-rkl-3/igt@perf_pmu@idle@rcs0.html

  * igt@prime_mmap_kms@buffer-sharing:
    - {shard-tglu}:       [SKIP][71] ([fdo#109274]) -> [PASS][72]
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-tglu-9/igt@prime_mmap_kms@buffer-sharing.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-tglu-5/igt@prime_mmap_kms@buffer-sharing.html

  * igt@prime_vgem@basic-fence-flip:
    - {shard-rkl}:        [SKIP][73] ([fdo#109295] / [i915#3708] / [i915#4098]) -> [PASS][74]
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7212/shard-rkl-1/igt@prime_vgem@basic-fence-flip.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/shard-rkl-6/igt@prime_vgem@basic-fence-flip.html

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

  [IGT#2]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/2
  [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109279]: https://bugs.freedesktop.org/show_bug.cgi?id=109279
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [fdo#109300]: https://bugs.freedesktop.org/show_bug.cgi?id=109300
  [fdo#109303]: https://bugs.freedesktop.org/show_bug.cgi?id=109303
  [fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308
  [fdo#109313]: https://bugs.freedesktop.org/show_bug.cgi?id=109313
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
  [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
  [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
  [fdo#111644]: https://bugs.freedesktop.org/show_bug.cgi?id=111644
  [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [i915#1722]: https://gitlab.freedesktop.org/drm/intel/issues/1722
  [i915#1755]: https://gitlab.freedesktop.org/drm/intel/issues/1755
  [i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
  [i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
  [i915#1850]: https://gitlab.freedesktop.org/drm/intel/issues/1850
  [i915#1937]: https://gitlab.freedesktop.org/drm/intel/issues/1937
  [i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
  [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
  [i915#2433]: https://gitlab.freedesktop.org/drm/intel/issues/2433
  [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
  [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
  [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
  [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
  [i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
  [i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
  [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
  [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
  [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
  [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#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#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
  [i915#3547]: https://gitlab.freedesktop.org/drm/intel/issues/3547
  [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#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
  [i915#3639]: https://gitlab.freedesktop.org/drm/intel/issues/3639
  [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
  [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#3952]: https://gitlab.freedesktop.org/drm/intel/issues/3952
  [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
  [i915#3989]: https://gitlab.freedesktop.org/drm/intel/issues/3989
  [i915#404]: https://gitlab.freedesktop.org/drm/intel/issues/404
  [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
  [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#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
  [i915#426]: https://gitlab.freedesktop.org/drm/intel/issues/426
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#433]: https://gitlab.freedesktop.org/drm/intel/issues/433
  [i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
  [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
  [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
  [i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
  [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
  [i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
  [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
  [i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
  [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
  [i915#4859]: https://gitlab.freedesktop.org/drm/intel/issues/4859
  [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
  [i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880
  [i915#4958]: https://gitlab.freedesktop.org/drm/intel/issues/4958
  [i915#5115]: https://gitlab.freedesktop.org/drm/intel/issues/5115
  [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
  [i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288
  [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
  [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
  [i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439
  [i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461
  [i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
  [i915#5723]: https://gitlab.freedesktop.org/drm/intel/issues/5723
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#6230]: https://gitlab.freedesktop.org/drm/intel/issues/6230
  [i915#6252]: https://gitlab.freedesktop.org/drm/intel/issues/6252
  [i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
  [i915#6493]: https://gitlab.freedesktop.org/drm/intel/issues/6493
  [i915#6497]: https://gitlab.freedesktop.org/drm/intel/issues/6497
  [i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
  [i915#6590]: https://gitlab.freedesktop.org/drm/intel/issues/6590
  [i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768
  [i915#6944]: https://gitlab.freedesktop.org/drm/intel/issues/6944
  [i915#6953]: https://gitlab.freedesktop.org/drm/intel/issues/6953
  [i915#7037]: https://gitlab.freedesktop.org/drm/intel/issues/7037
  [i915#7052]: https://gitlab.freedesktop.org/drm/intel/issues/7052
  [i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
  [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
  [i915#7128]: https://gitlab.freedesktop.org/drm/intel/issues/7128
  [i915#7294]: https://gitlab.freedesktop.org/drm/intel/issues/7294
  [i915#7330]: https://gitlab.freedesktop.org/drm/intel/issues/7330
  [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
  [i915#7651]: https://gitlab.freedesktop.org/drm/intel/issues/7651
  [i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
  [i915#7949]: https://gitlab.freedesktop.org/drm/intel/issues/7949
  [i915#7957]: https://gitlab.freedesktop.org/drm/intel/issues/7957
  [i915#8011]: https://gitlab.freedesktop.org/drm/intel/issues/8011
  [i915#8150]: https://gitlab.freedesktop.org/drm/intel/issues/8150
  [i915#8152]: https://gitlab.freedesktop.org/drm/intel/issues/8152
  [i915#8154]: https://gitlab.freedesktop.org/drm/intel/issues/8154
  [i915#8190]: https://gitlab.freedesktop.org/drm/intel/issues/8190
  [i915#8211]: https://gitlab.freedesktop.org/drm/intel/issues/8211
  [i915#8228]: https://gitlab.freedesktop.org/drm/intel/issues/8228
  [i915#8292]: https://gitlab.freedesktop.org/drm/intel/issues/8292
  [i915#8308]: https://gitlab.freedesktop.org/drm/intel/issues/8308


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7212 -> IGTPW_8671

  CI-20190529: 20190529
  CI_DRM_12905: 3a266f994a6b752953eb974ab7bf1dc382a2d1b8 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8671: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8671/index.html
  IGT_7212: c67b6c8993c509ca06eca222287c58ade43292e6 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

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

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

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

end of thread, other threads:[~2023-03-23 23:41 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-13 18:16 [igt-dev] [PATCH 1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test Bhawanpreet Lakha
2023-02-13 18:16 ` [igt-dev] [PATCH 2/2] amdgpu_amd_plane: Add Multi MPO invalid test Bhawanpreet Lakha
2023-02-17 20:38   ` Leo Li
2023-03-23 17:30     ` Bhawanpreet Lakha
2023-02-13 19:33 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test Patchwork
2023-02-13 21:14 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2023-02-17 20:24 ` [igt-dev] [PATCH 1/2] " Leo Li
2023-02-17 20:43   ` Bhawanpreet Lakha
2023-03-13 16:32   ` Bhawanpreet Lakha
2023-03-15 20:30     ` Leo Li
2023-03-15 21:02       ` Bhawanpreet Lakha
2023-03-23 17:29       ` Bhawanpreet Lakha
2023-03-23 17:36         ` Leo Li
2023-03-13 17:18 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test (rev2) Patchwork
2023-03-14 20:55 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2023-03-17 17:26 ` [igt-dev] [PATCH 1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test Kamil Konieczny
2023-03-23 18:09 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [1/2] amdgpu/amd_plane: Add multi MPO XRGB8888 test (rev4) Patchwork
2023-03-23 23:41 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.