All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t v3 0/3] Fix kms_psr2_sf test and add new test for FB_DAMAGE_CLIPS plane property
@ 2021-11-09 19:55 Jeevan B
  2021-11-09 19:55 ` [igt-dev] [PATCH i-g-t v3 1/3] lib/igt_aux: Rename igt_debug_manual_check and assert check if all is supplied Jeevan B
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Jeevan B @ 2021-11-09 19:55 UTC (permalink / raw)
  To: igt-dev; +Cc: daniel, petri.latvala

Change kms_psr2_sf test design, rename igt_debug_manual_check, patch the igt
functions igt_debug_wait_for_keypress() to assert if "all" is supplied and
change testcase design and add simple test cases to use FB_DAMAGE_CLIPS plane property.

Deepak Rawat (1):
  tests/kms_atomic: Add a new test case for FB_DAMAGE_CLIPS plane
    property

Jeevan B (2):
  lib/igt_aux: Rename igt_debug_manual_check and assert check if all is
    supplied
  tests/kms_psr2_sf: Change testcase design

 lib/igt_aux.c            |   9 +-
 lib/igt_aux.h            |   2 +-
 tests/i915/kms_dsc.c     |   2 +-
 tests/i915/kms_psr.c     |   2 +-
 tests/i915/kms_psr2_sf.c |  28 ++---
 tests/kms_atomic.c       | 232 +++++++++++++++++++++++++++++++++++++++
 6 files changed, 255 insertions(+), 20 deletions(-)

-- 
2.19.1

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

* [igt-dev] [PATCH i-g-t v3 1/3] lib/igt_aux: Rename igt_debug_manual_check and assert check if all is supplied
  2021-11-09 19:55 [igt-dev] [PATCH i-g-t v3 0/3] Fix kms_psr2_sf test and add new test for FB_DAMAGE_CLIPS plane property Jeevan B
@ 2021-11-09 19:55 ` Jeevan B
  2021-11-10 12:03   ` Petri Latvala
  2021-11-09 19:55 ` [igt-dev] [PATCH i-g-t v3 2/3] tests/kms_psr2_sf: Change testcase design Jeevan B
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 9+ messages in thread
From: Jeevan B @ 2021-11-09 19:55 UTC (permalink / raw)
  To: igt-dev; +Cc: daniel, petri.latvala

rename igt_debug_manual_check and patch the igt function
igt_debug_wait_for_keypress() to assert if "all" is supplied.

v2: calling igt_debug_wait_for_keypress() with "all" will assert.

v3: Change igt_assert to igt_assert_f for adding clear log message.

Signed-off-by: Jeevan B <jeevan.b@intel.com>
---
 lib/igt_aux.c            | 9 ++++++---
 lib/igt_aux.h            | 2 +-
 tests/i915/kms_dsc.c     | 2 +-
 tests/i915/kms_psr.c     | 2 +-
 tests/i915/kms_psr2_sf.c | 2 +-
 5 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/lib/igt_aux.c b/lib/igt_aux.c
index 2445e483..c0e5b01a 100644
--- a/lib/igt_aux.c
+++ b/lib/igt_aux.c
@@ -972,7 +972,7 @@ void igt_drop_root(void)
  * Waits for a key press when run interactively and when the corresponding debug
  * var is set in the --interactive-debug=$var variable. Multiple keys
  * can be specified as a comma-separated list or alternatively "all" if a wait
- * should happen for all cases.
+ * should happen for all cases. Calling this fucntion with "all" will assert.
  *
  * When not connected to a terminal interactive_debug is ignored
  * and execution immediately continues.
@@ -993,6 +993,9 @@ void igt_debug_wait_for_keypress(const char *var)
 	if (!igt_interactive_debug)
 		return;
 
+	if (strstr(var, "all"))
+		igt_assert_f(false, "Bug in test: Do not call igt_debug_wait_for_keypress with \"all\"\n");
+
 	if (!strstr(igt_interactive_debug, var) &&
 	    !strstr(igt_interactive_debug, "all"))
 		return;
@@ -1008,7 +1011,7 @@ void igt_debug_wait_for_keypress(const char *var)
 }
 
 /**
- * igt_debug_manual_check:
+ * igt_debug_interactive_mode_check:
  * @var: var lookup to to enable this wait
  * @expected: message to be printed as expected behaviour before wait for keys Y/n
  *
@@ -1028,7 +1031,7 @@ void igt_debug_wait_for_keypress(const char *var)
  *
  * Force test fail when N/n is pressed.
  */
-void igt_debug_manual_check(const char *var, const char *expected)
+void igt_debug_interactive_mode_check(const char *var, const char *expected)
 {
 	struct termios oldt, newt;
 	char key;
diff --git a/lib/igt_aux.h b/lib/igt_aux.h
index a3c477ab..9f2588ae 100644
--- a/lib/igt_aux.h
+++ b/lib/igt_aux.h
@@ -195,7 +195,7 @@ int igt_get_autoresume_delay(enum igt_suspend_state state);
 void igt_drop_root(void);
 
 void igt_debug_wait_for_keypress(const char *var);
-void igt_debug_manual_check(const char *var, const char *expected);
+void igt_debug_interactive_mode_check(const char *var, const char *expected);
 
 /* sysinfo cross-arch wrappers from intel_os.c */
 
diff --git a/tests/i915/kms_dsc.c b/tests/i915/kms_dsc.c
index dcfe8b96..0292ed34 100644
--- a/tests/i915/kms_dsc.c
+++ b/tests/i915/kms_dsc.c
@@ -72,7 +72,7 @@ int force_dsc_restore_fd = -1;
 
 static inline void manual(const char *expected)
 {
-	igt_debug_manual_check("all", expected);
+	igt_debug_interactive_mode_check("all", expected);
 }
 
 static void force_dsc_enable(data_t *data)
diff --git a/tests/i915/kms_psr.c b/tests/i915/kms_psr.c
index 83b8b709..480e2cc7 100644
--- a/tests/i915/kms_psr.c
+++ b/tests/i915/kms_psr.c
@@ -246,7 +246,7 @@ static bool psr_enable_if_enabled(data_t *data)
 
 static inline void manual(const char *expected)
 {
-	igt_debug_manual_check("all", expected);
+	igt_debug_interactive_mode_check("all", expected);
 }
 
 static bool drrs_disabled(data_t *data)
diff --git a/tests/i915/kms_psr2_sf.c b/tests/i915/kms_psr2_sf.c
index a50c3e14..dca2d030 100644
--- a/tests/i915/kms_psr2_sf.c
+++ b/tests/i915/kms_psr2_sf.c
@@ -331,7 +331,7 @@ static void prepare(data_t *data)
 
 static inline void manual(const char *expected)
 {
-	igt_debug_manual_check("all", expected);
+	igt_debug_interactive_mode_check("all", expected);
 }
 
 static void plane_update_expected_output(int plane_type, int box_count)
-- 
2.19.1

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

* [igt-dev] [PATCH i-g-t v3 2/3] tests/kms_psr2_sf: Change testcase design
  2021-11-09 19:55 [igt-dev] [PATCH i-g-t v3 0/3] Fix kms_psr2_sf test and add new test for FB_DAMAGE_CLIPS plane property Jeevan B
  2021-11-09 19:55 ` [igt-dev] [PATCH i-g-t v3 1/3] lib/igt_aux: Rename igt_debug_manual_check and assert check if all is supplied Jeevan B
@ 2021-11-09 19:55 ` Jeevan B
  2021-11-10 12:04   ` Petri Latvala
  2021-11-09 19:55 ` [igt-dev] [PATCH i-g-t v3 3/3] tests/kms_atomic: Add a new test case for FB_DAMAGE_CLIPS plane property Jeevan B
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 9+ messages in thread
From: Jeevan B @ 2021-11-09 19:55 UTC (permalink / raw)
  To: igt-dev; +Cc: daniel, petri.latvala

Change testcase design so that it avoids new subtest for each block position.

Signed-off-by: Jeevan B <jeevan.b@intel.com>
---
 tests/i915/kms_psr2_sf.c | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/tests/i915/kms_psr2_sf.c b/tests/i915/kms_psr2_sf.c
index dca2d030..7f88b514 100644
--- a/tests/i915/kms_psr2_sf.c
+++ b/tests/i915/kms_psr2_sf.c
@@ -582,9 +582,9 @@ igt_main
 	}
 
 	/* Verify primary plane selective fetch */
-	for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
-		igt_describe("Test that selective fetch works on primary plane");
-		igt_subtest_f("primary-%s-sf-dmg-area-%d", op_str(data.op), i) {
+	igt_describe("Test that selective fetch works on primary plane");
+	igt_subtest_f("primary-%s-sf-dmg-area", op_str(data.op)) {
+		for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
 			data.damage_area_count = i;
 			data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
 			prepare(&data);
@@ -594,9 +594,9 @@ igt_main
 	}
 
 	/* Verify overlay plane selective fetch */
-	for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
-		igt_describe("Test that selective fetch works on overlay plane");
-		igt_subtest_f("overlay-%s-sf-dmg-area-%d", op_str(data.op), i) {
+	igt_describe("Test that selective fetch works on overlay plane");
+	igt_subtest_f("overlay-%s-sf-dmg-area", op_str(data.op)) {
+		for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
 			data.damage_area_count = i;
 			data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
 			prepare(&data);
@@ -618,9 +618,9 @@ igt_main
 	/* Only for overlay plane */
 	data.op = PLANE_MOVE;
 	/* Verify overlay plane move selective fetch */
-	for (i = POS_TOP_LEFT; i <= POS_BOTTOM_RIGHT ; i++) {
-		igt_describe("Test that selective fetch works on moving overlay plane");
-		igt_subtest_f("%s-sf-dmg-area-%d", op_str(data.op), i) {
+	igt_describe("Test that selective fetch works on moving overlay plane");
+	igt_subtest_f("%s-sf-dmg-area", op_str(data.op)) {
+		for (i = POS_TOP_LEFT; i <= POS_BOTTOM_RIGHT ; i++) {
 			data.pos = i;
 			data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
 			prepare(&data);
@@ -631,10 +631,10 @@ igt_main
 
 	/* Verify primary plane selective fetch with overplay plane blended */
 	data.op = OVERLAY_PRIM_UPDATE;
-	for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
-		igt_describe("Test that selective fetch works on primary plane "
-			     "with blended overlay plane");
-		igt_subtest_f("%s-sf-dmg-area-%d", op_str(data.op), i) {
+	igt_describe("Test that selective fetch works on primary plane "
+		     "with blended overlay plane");
+	igt_subtest_f("%s-sf-dmg-area", op_str(data.op)) {
+		for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
 			data.damage_area_count = i;
 			data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
 			prepare(&data);
-- 
2.19.1

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

* [igt-dev] [PATCH i-g-t v3 3/3] tests/kms_atomic: Add a new test case for FB_DAMAGE_CLIPS plane property
  2021-11-09 19:55 [igt-dev] [PATCH i-g-t v3 0/3] Fix kms_psr2_sf test and add new test for FB_DAMAGE_CLIPS plane property Jeevan B
  2021-11-09 19:55 ` [igt-dev] [PATCH i-g-t v3 1/3] lib/igt_aux: Rename igt_debug_manual_check and assert check if all is supplied Jeevan B
  2021-11-09 19:55 ` [igt-dev] [PATCH i-g-t v3 2/3] tests/kms_psr2_sf: Change testcase design Jeevan B
@ 2021-11-09 19:55 ` Jeevan B
  2021-11-23 11:33   ` Hogander, Jouni
  2021-11-09 20:44 ` [igt-dev] ✓ Fi.CI.BAT: success for Fix kms_psr2_sf test and add new test for FB_DAMAGE_CLIPS plane property (rev3) Patchwork
  2021-11-09 21:50 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  4 siblings, 1 reply; 9+ messages in thread
From: Jeevan B @ 2021-11-09 19:55 UTC (permalink / raw)
  To: igt-dev; +Cc: daniel, Deepak Rawat, petri.latvala

From: Deepak Rawat <drawat@vmware.com>

Some simple test cases to use FB_DAMAGE_CLIPS plane property.

Signed-off-by: Deepak Rawat <drawat@vmware.com>
Signed-off-by: Jeevan B <jeevan.b@intel.com>
---
 tests/kms_atomic.c | 232 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 232 insertions(+)

diff --git a/tests/kms_atomic.c b/tests/kms_atomic.c
index 1657624e..4b7b6d38 100644
--- a/tests/kms_atomic.c
+++ b/tests/kms_atomic.c
@@ -62,6 +62,25 @@ enum kms_atomic_check_relax {
 	PLANE_RELAX_FB = (1 << 1)
 };
 
+/* signed32 drm_mode_rect declared here for use with drm damage for page-flip */
+struct damage_rect {
+	int x1;
+	int y1;
+	int x2;
+	int y2;
+};
+
+static inline int damage_rect_width(struct damage_rect *r)
+{
+	return r->x2 - r->x1;
+}
+
+static inline int damage_rect_height(struct damage_rect *r)
+{
+	return r->y2 - r->y1;
+}
+
+
 static bool plane_filter(enum igt_atomic_plane_properties prop)
 {
 	if ((1 << prop) & IGT_PLANE_COORD_CHANGED_MASK)
@@ -1060,6 +1079,210 @@ static void atomic_invalid_params(igt_pipe_t *pipe,
 	do_ioctl_err(display->drm_fd, DRM_IOCTL_MODE_ATOMIC, &ioc, EFAULT);
 }
 
+static void atomic_plane_damage(igt_pipe_t *pipe, igt_plane_t *plane, struct igt_fb *fb)
+{
+	struct damage_rect *damage;
+	struct igt_fb fb_1, fb_2;
+	cairo_t *cr_1, *cr_2;
+
+	damage = malloc(sizeof(*damage) * 2);
+	igt_assert(damage);
+
+	/* Color fb with white rect at center */
+	igt_create_color_fb(pipe->display->drm_fd, fb->width, fb->height,
+			    fb->drm_format, I915_TILING_NONE, 0.2, 0.2, 0.2,
+			    &fb_1);
+	cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
+	igt_paint_color(cr_1, fb->width/4, fb->height/4, fb->width/2,
+			fb->height/2, 1.0, 1.0, 1.0);
+	igt_put_cairo_ctx(cr_1);
+
+	/*
+	 * Flip the primary plane to new color fb using atomic API and check the
+	 * state.
+	 */
+	igt_plane_set_fb(plane, &fb_1);
+	crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
+
+	/*
+	 * Change the color of top left clip from center and issue plane update
+	 * with damage and verify the state.
+	 */
+	damage[0].x1 = 0;
+	damage[0].y1 = 0;
+	damage[0].x2 = fb->width/2;
+	damage[0].y2 = fb->height/2;
+
+	cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
+	igt_paint_color(cr_1, damage[0].x1, damage[0].y1,
+			damage_rect_width(&damage[0]),
+			damage_rect_height(&damage[0]), 1.0, 0, 0);
+	igt_put_cairo_ctx(cr_1);
+
+	igt_plane_set_fb(plane, &fb_1);
+	igt_plane_replace_prop_blob(plane, IGT_PLANE_FB_DAMAGE_CLIPS, damage,
+				    sizeof(*damage));
+	crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
+
+	/*
+	 * Change the color of top left and bottom right clip from center and
+	 * issue plane update with damage and verify the state.
+	 */
+	igt_create_color_fb(pipe->display->drm_fd, fb->width, fb->height,
+			    fb->drm_format, I915_TILING_NONE, 0.2, 0.2, 0.2,
+			    &fb_2);
+
+	damage[0].x1 = fb->width/2;
+	damage[0].y1 = 0;
+	damage[0].x2 = fb->width;
+	damage[0].y2 = fb->height/2;
+
+	cr_2 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_2);
+	cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
+	cairo_set_source_surface(cr_2, fb_1.cairo_surface, 0, 0);
+	cairo_paint(cr_2);
+	igt_paint_color(cr_2, damage[0].x1, damage[0].y1,
+			damage_rect_width(&damage[0]),
+			damage_rect_height(&damage[0]), 0, 1.0, 0);
+	igt_put_cairo_ctx(cr_1);
+	igt_put_cairo_ctx(cr_2);
+	igt_plane_set_fb(plane, &fb_2);
+	igt_plane_replace_prop_blob(plane, IGT_PLANE_FB_DAMAGE_CLIPS, damage,
+				    sizeof(*damage));
+	crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
+
+	/*
+	 * Issue plane update with damage with a clip outside of plane src.
+	 * NOTE: This will result in no update on plane as damage is outside, so
+	 * will see no change on the screen.
+	 */
+	/* Reszie fb_1 to be bigger than plane */
+	igt_remove_fb(pipe->display->drm_fd, &fb_1);
+	igt_create_color_fb(pipe->display->drm_fd, fb->width * 2, fb->height,
+			    fb->drm_format, I915_TILING_NONE, 0.2, 0.2, 0.2,
+			    &fb_1);
+
+	damage[0].x1 = fb->width;
+	damage[0].y1 = 0;
+	damage[0].x2 = fb->width + fb->width/2;
+	damage[0].y2 = fb->height/2;
+
+	cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
+	cr_2 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_2);
+	cairo_set_source_surface(cr_1, fb_2.cairo_surface, 0, 0);
+	cairo_paint(cr_1);
+	igt_paint_color(cr_1, damage[0].x1, damage[0].y1,
+			damage_rect_width(&damage[0]),
+			damage_rect_height(&damage[0]), 0, 1.0, 0);
+	igt_put_cairo_ctx(cr_2);
+	igt_put_cairo_ctx(cr_1);
+	igt_plane_set_fb(plane, &fb_1);
+	igt_plane_set_size(plane, fb->width, fb->height);
+	igt_fb_set_position(&fb_1, plane, 0, 0);
+	igt_fb_set_size(&fb_1, plane, fb->width, fb->height);
+	igt_plane_replace_prop_blob(plane, IGT_PLANE_FB_DAMAGE_CLIPS, damage,
+				    sizeof(*damage));
+	crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
+
+	/*
+	 * Issue a plane update with damage with a clip that overlap with plane
+	 * src (Top right from center extending outside src in below case).
+	 * NOTE: Here drm core should take care of intersecting the clip to
+	 * plane src.
+	 */
+	damage[0].x1 = fb->width/2;
+	damage[0].y1 = 0;
+	damage[0].x2 = fb->width/2 + fb->width;
+	damage[0].y2 = fb->height/2;
+
+	cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
+	igt_paint_color(cr_1, damage[0].x1, damage[0].y1,
+			damage_rect_width(&damage[0]),
+			damage_rect_height(&damage[0]), 1.0, 1.0, 0);
+	igt_put_cairo_ctx(cr_1);
+	igt_plane_set_fb(plane, &fb_1);
+	igt_plane_set_size(plane, fb->width, fb->height);
+	igt_fb_set_position(&fb_1, plane, 0, 0);
+	igt_fb_set_size(&fb_1, plane, fb->width, fb->height);
+	igt_plane_replace_prop_blob(plane, IGT_PLANE_FB_DAMAGE_CLIPS, damage,
+				    sizeof(*damage));
+	crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
+
+	/*
+	 * Issue a plane update with damage with two clips one inside plane src
+	 * and one outside
+	 * NOTE: This will result in plane update with clip inside plane src.
+	 */
+	damage[0].x1 = 0;
+	damage[0].y1 = fb->height/2;
+	damage[0].x2 = fb->width/2;
+	damage[0].y2 = fb->height;
+
+	damage[1].x1 = fb->width + fb->width/2;
+	damage[1].y1 = fb->height/2;
+	damage[1].x2 = fb->width * 2;
+	damage[1].y2 = fb->height;
+
+	cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
+	igt_paint_color(cr_1, damage[0].x1, damage[0].y1,
+			damage_rect_width(&damage[0]),
+			damage_rect_height(&damage[0]), 0, 1.0, 1.0);
+	igt_paint_color(cr_1, damage[1].x1, damage[1].y1,
+			damage_rect_width(&damage[1]),
+			damage_rect_height(&damage[1]), 0, 1.0, 0);
+	igt_put_cairo_ctx(cr_1);
+	igt_plane_set_fb(plane, &fb_1);
+	igt_plane_set_size(plane, fb->width, fb->height);
+	igt_fb_set_position(&fb_1, plane, 0, 0);
+	igt_fb_set_size(&fb_1, plane, fb->width, fb->height);
+	igt_plane_replace_prop_blob(plane, IGT_PLANE_FB_DAMAGE_CLIPS, damage,
+				    sizeof(*damage) * 2);
+	crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
+
+	/*
+	 * Issue a plane update with overlapping damage clips. White rect in
+	 * center overlap partially with top left red rect.
+	 * NOTE: Drm core does not error for overlapping damage clips so if any
+	 * driver does not support overlapping should have their own
+	 * validations.
+	 */
+	damage[0].x1 = 0;
+	damage[0].y1 = 0;
+	damage[0].x2 = fb->width/2;
+	damage[0].y2 = fb->height/2;
+
+	damage[1].x1 = fb->width/4;
+	damage[1].y1 = fb->height/4;
+	damage[1].x2 = fb->width/4 + fb->width/2;
+	damage[1].y2 = fb->height/4 + fb->height/2;
+
+	cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
+	igt_paint_color(cr_1, damage[0].x1, damage[0].y1,
+			damage_rect_width(&damage[0]),
+			damage_rect_height(&damage[0]), 1.0, 0, 0);
+	igt_paint_color(cr_1, damage[1].x1, damage[1].y1,
+			damage_rect_width(&damage[1]),
+			damage_rect_height(&damage[1]), 1.0, 1.0, 1.0);
+	igt_put_cairo_ctx(cr_1);
+	igt_plane_set_fb(plane, &fb_1);
+	igt_plane_set_size(plane, fb->width, fb->height);
+	igt_fb_set_position(&fb_1, plane, 0, 0);
+	igt_fb_set_size(&fb_1, plane, fb->width, fb->height);
+	igt_plane_replace_prop_blob(plane, IGT_PLANE_FB_DAMAGE_CLIPS, damage,
+				    sizeof(*damage) * 2);
+	crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
+
+	/* Restore the primary plane */
+	igt_plane_set_fb(plane, fb);
+	plane_commit(plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
+
+	/* Remove the fb created for this test */
+	igt_remove_fb(pipe->display->drm_fd, &fb_1);
+	igt_remove_fb(pipe->display->drm_fd, &fb_2);
+
+	free(damage);
+}
+
 static void atomic_setup(igt_display_t *display, enum pipe pipe, igt_output_t *output, igt_plane_t *primary, struct igt_fb *fb)
 {
 	igt_output_set_pipe(output, pipe);
@@ -1219,6 +1442,15 @@ igt_main
 		atomic_invalid_params(pipe_obj, primary, output, &fb);
 	}
 
+	igt_describe("Simple test cases to use FB_DAMAGE_CLIPS plane property");
+	igt_subtest("atomic_plane_damage") {
+		igt_require(igt_plane_has_prop(primary, IGT_PLANE_FB_DAMAGE_CLIPS));
+
+		atomic_setup(&display, pipe, output, primary, &fb);
+
+		atomic_plane_damage(pipe_obj, primary, &fb);
+	}
+
 	igt_fixture {
 		atomic_clear(&display, pipe, primary, output);
 		igt_remove_fb(display.drm_fd, &fb);
-- 
2.19.1

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

* [igt-dev] ✓ Fi.CI.BAT: success for Fix kms_psr2_sf test and add new test for FB_DAMAGE_CLIPS plane property (rev3)
  2021-11-09 19:55 [igt-dev] [PATCH i-g-t v3 0/3] Fix kms_psr2_sf test and add new test for FB_DAMAGE_CLIPS plane property Jeevan B
                   ` (2 preceding siblings ...)
  2021-11-09 19:55 ` [igt-dev] [PATCH i-g-t v3 3/3] tests/kms_atomic: Add a new test case for FB_DAMAGE_CLIPS plane property Jeevan B
@ 2021-11-09 20:44 ` Patchwork
  2021-11-09 21:50 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  4 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2021-11-09 20:44 UTC (permalink / raw)
  To: Jeevan B; +Cc: igt-dev

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

== Series Details ==

Series: Fix kms_psr2_sf test and add new test for FB_DAMAGE_CLIPS plane property (rev3)
URL   : https://patchwork.freedesktop.org/series/94883/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_10858 -> IGTPW_6386
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

  Additional (1): fi-tgl-1115g4 
  Missing    (6): fi-kbl-soraka bat-dg1-6 fi-tgl-u2 fi-bsw-cyan bat-adlp-4 fi-ctg-p8600 

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

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

### IGT changes ###

#### Issues hit ####

  * igt@amdgpu/amd_basic@query-info:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][1] ([fdo#109315])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/fi-tgl-1115g4/igt@amdgpu/amd_basic@query-info.html

  * igt@amdgpu/amd_cs_nop@nop-gfx0:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][2] ([fdo#109315] / [i915#2575]) +16 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/fi-tgl-1115g4/igt@amdgpu/amd_cs_nop@nop-gfx0.html

  * igt@amdgpu/amd_cs_nop@sync-fork-compute0:
    - fi-snb-2600:        NOTRUN -> [SKIP][3] ([fdo#109271]) +17 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/fi-snb-2600/igt@amdgpu/amd_cs_nop@sync-fork-compute0.html

  * igt@gem_huc_copy@huc-copy:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][4] ([i915#2190])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/fi-tgl-1115g4/igt@gem_huc_copy@huc-copy.html

  * igt@i915_pm_backlight@basic-brightness:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][5] ([i915#1155])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/fi-tgl-1115g4/igt@i915_pm_backlight@basic-brightness.html

  * igt@kms_chamelium@common-hpd-after-suspend:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][6] ([fdo#111827]) +8 similar issues
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/fi-tgl-1115g4/igt@kms_chamelium@common-hpd-after-suspend.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][7] ([i915#4103]) +1 similar issue
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/fi-tgl-1115g4/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_force_connector_basic@force-load-detect:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][8] ([fdo#109285])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/fi-tgl-1115g4/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_psr@primary_mmap_gtt:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][9] ([i915#1072]) +3 similar issues
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/fi-tgl-1115g4/igt@kms_psr@primary_mmap_gtt.html

  * igt@prime_vgem@basic-userptr:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][10] ([i915#3301])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/fi-tgl-1115g4/igt@prime_vgem@basic-userptr.html

  * igt@runner@aborted:
    - fi-bdw-5557u:       NOTRUN -> [FAIL][11] ([i915#1602] / [i915#2426] / [i915#4312])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/fi-bdw-5557u/igt@runner@aborted.html

  
#### Possible fixes ####

  * igt@i915_selftest@live@hangcheck:
    - fi-snb-2600:        [INCOMPLETE][12] ([i915#3921]) -> [PASS][13]
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10858/fi-snb-2600/igt@i915_selftest@live@hangcheck.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/fi-snb-2600/igt@i915_selftest@live@hangcheck.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-cml-u2:          [DMESG-WARN][14] ([i915#4269]) -> [PASS][15]
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10858/fi-cml-u2/igt@kms_frontbuffer_tracking@basic.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/fi-cml-u2/igt@kms_frontbuffer_tracking@basic.html

  
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155
  [i915#1602]: https://gitlab.freedesktop.org/drm/intel/issues/1602
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2426]: https://gitlab.freedesktop.org/drm/intel/issues/2426
  [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
  [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
  [i915#3921]: https://gitlab.freedesktop.org/drm/intel/issues/3921
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4269]: https://gitlab.freedesktop.org/drm/intel/issues/4269
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312


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

  * CI: CI-20190529 -> None
  * IGT: IGT_6275 -> IGTPW_6386

  CI-20190529: 20190529
  CI_DRM_10858: 241dcaaa2bcb6503179c9a01194b399052c7e9d1 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_6386: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/index.html
  IGT_6275: 6d172a5cf51ffff5f2780e2837860d613db5067f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git



== Testlist changes ==

+igt@kms_atomic@atomic_plane_damage
+igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area
+igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area
+igt@kms_psr2_sf@plane-move-sf-dmg-area
+igt@kms_psr2_sf@primary-plane-update-sf-dmg-area
-igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-1
-igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-2
-igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-3
-igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-4
-igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-5
-igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-1
-igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-2
-igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-3
-igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-4
-igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-5
-igt@kms_psr2_sf@plane-move-sf-dmg-area-0
-igt@kms_psr2_sf@plane-move-sf-dmg-area-1
-igt@kms_psr2_sf@plane-move-sf-dmg-area-2
-igt@kms_psr2_sf@plane-move-sf-dmg-area-3
-igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-1
-igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-2
-igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-3
-igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-4
-igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-5

== Logs ==

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

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

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

* [igt-dev] ✓ Fi.CI.IGT: success for Fix kms_psr2_sf test and add new test for FB_DAMAGE_CLIPS plane property (rev3)
  2021-11-09 19:55 [igt-dev] [PATCH i-g-t v3 0/3] Fix kms_psr2_sf test and add new test for FB_DAMAGE_CLIPS plane property Jeevan B
                   ` (3 preceding siblings ...)
  2021-11-09 20:44 ` [igt-dev] ✓ Fi.CI.BAT: success for Fix kms_psr2_sf test and add new test for FB_DAMAGE_CLIPS plane property (rev3) Patchwork
@ 2021-11-09 21:50 ` Patchwork
  4 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2021-11-09 21:50 UTC (permalink / raw)
  To: Jeevan B; +Cc: igt-dev

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

== Series Details ==

Series: Fix kms_psr2_sf test and add new test for FB_DAMAGE_CLIPS plane property (rev3)
URL   : https://patchwork.freedesktop.org/series/94883/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_10858_full -> IGTPW_6386_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

  Missing    (3): pig-skl-6260u pig-glk-j5005 shard-rkl 

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

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

### IGT changes ###

#### Possible regressions ####

  * {igt@kms_psr2_sf@primary-plane-update-sf-dmg-area} (NEW):
    - shard-iclb:         NOTRUN -> [SKIP][1] +4 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-iclb7/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area.html
    - shard-tglb:         NOTRUN -> [SKIP][2] +3 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb7/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area.html

  
New tests
---------

  New tests have been introduced between CI_DRM_10858_full and IGTPW_6386_full:

### New IGT tests (5) ###

  * igt@kms_atomic@atomic_plane_damage:
    - Statuses : 1 pass(s) 3 skip(s)
    - Exec time: [0.0, 0.25] s

  * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr2_sf@plane-move-sf-dmg-area:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@feature_discovery@chamelium:
    - shard-tglb:         NOTRUN -> [SKIP][3] ([fdo#111827])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb2/igt@feature_discovery@chamelium.html

  * igt@gem_create@create-massive:
    - shard-apl:          NOTRUN -> [DMESG-WARN][4] ([i915#3002])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-apl4/igt@gem_create@create-massive.html

  * igt@gem_ctx_persistence@legacy-engines-hostile-preempt:
    - shard-snb:          NOTRUN -> [SKIP][5] ([fdo#109271] / [i915#1099])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-snb6/igt@gem_ctx_persistence@legacy-engines-hostile-preempt.html

  * igt@gem_ctx_sseu@engines:
    - shard-tglb:         NOTRUN -> [SKIP][6] ([i915#280])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb6/igt@gem_ctx_sseu@engines.html

  * igt@gem_exec_fair@basic-deadline:
    - shard-apl:          NOTRUN -> [FAIL][7] ([i915#2846])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-apl8/igt@gem_exec_fair@basic-deadline.html

  * igt@gem_exec_fair@basic-none-rrul@rcs0:
    - shard-iclb:         NOTRUN -> [FAIL][8] ([i915#2852])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-iclb5/igt@gem_exec_fair@basic-none-rrul@rcs0.html
    - shard-tglb:         NOTRUN -> [FAIL][9] ([i915#2842])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb3/igt@gem_exec_fair@basic-none-rrul@rcs0.html

  * igt@gem_exec_fair@basic-pace@bcs0:
    - shard-tglb:         [PASS][10] -> [FAIL][11] ([i915#2842]) +1 similar issue
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10858/shard-tglb8/igt@gem_exec_fair@basic-pace@bcs0.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb5/igt@gem_exec_fair@basic-pace@bcs0.html

  * igt@gem_exec_fair@basic-pace@rcs0:
    - shard-kbl:          [PASS][12] -> [FAIL][13] ([i915#2842]) +1 similar issue
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10858/shard-kbl3/igt@gem_exec_fair@basic-pace@rcs0.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-kbl6/igt@gem_exec_fair@basic-pace@rcs0.html

  * igt@gem_exec_fair@basic-pace@vecs0:
    - shard-glk:          [PASS][14] -> [FAIL][15] ([i915#2842]) +3 similar issues
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10858/shard-glk1/igt@gem_exec_fair@basic-pace@vecs0.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-glk6/igt@gem_exec_fair@basic-pace@vecs0.html
    - shard-iclb:         [PASS][16] -> [FAIL][17] ([i915#2842])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10858/shard-iclb3/igt@gem_exec_fair@basic-pace@vecs0.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-iclb3/igt@gem_exec_fair@basic-pace@vecs0.html

  * igt@gem_huc_copy@huc-copy:
    - shard-tglb:         [PASS][18] -> [SKIP][19] ([i915#2190])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10858/shard-tglb3/igt@gem_huc_copy@huc-copy.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb6/igt@gem_huc_copy@huc-copy.html

  * igt@gem_pxp@regular-baseline-src-copy-readible:
    - shard-tglb:         NOTRUN -> [SKIP][20] ([i915#4270]) +6 similar issues
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb7/igt@gem_pxp@regular-baseline-src-copy-readible.html

  * igt@gem_pxp@verify-pxp-stale-buf-execution:
    - shard-iclb:         NOTRUN -> [SKIP][21] ([i915#4270])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-iclb2/igt@gem_pxp@verify-pxp-stale-buf-execution.html

  * igt@gem_render_copy@y-tiled-ccs-to-y-tiled-mc-ccs:
    - shard-iclb:         NOTRUN -> [SKIP][22] ([i915#768]) +1 similar issue
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-iclb2/igt@gem_render_copy@y-tiled-ccs-to-y-tiled-mc-ccs.html

  * igt@gem_userptr_blits@coherency-unsync:
    - shard-iclb:         NOTRUN -> [SKIP][23] ([i915#3297])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-iclb3/igt@gem_userptr_blits@coherency-unsync.html

  * igt@gem_userptr_blits@dmabuf-unsync:
    - shard-tglb:         NOTRUN -> [SKIP][24] ([i915#3297])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb8/igt@gem_userptr_blits@dmabuf-unsync.html

  * igt@gem_workarounds@suspend-resume-fd:
    - shard-kbl:          NOTRUN -> [DMESG-WARN][25] ([i915#180]) +1 similar issue
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-kbl1/igt@gem_workarounds@suspend-resume-fd.html

  * igt@gen3_render_tiledy_blits:
    - shard-tglb:         NOTRUN -> [SKIP][26] ([fdo#109289]) +5 similar issues
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb3/igt@gen3_render_tiledy_blits.html

  * igt@gen7_exec_parse@oacontrol-tracking:
    - shard-iclb:         NOTRUN -> [SKIP][27] ([fdo#109289]) +2 similar issues
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-iclb8/igt@gen7_exec_parse@oacontrol-tracking.html

  * igt@gen9_exec_parse@shadow-peek:
    - shard-tglb:         NOTRUN -> [SKIP][28] ([i915#2856]) +4 similar issues
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb6/igt@gen9_exec_parse@shadow-peek.html

  * igt@gen9_exec_parse@valid-registers:
    - shard-iclb:         NOTRUN -> [SKIP][29] ([i915#2856]) +1 similar issue
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-iclb7/igt@gen9_exec_parse@valid-registers.html

  * igt@i915_pm_dc@dc6-dpms:
    - shard-tglb:         NOTRUN -> [FAIL][30] ([i915#454])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb5/igt@i915_pm_dc@dc6-dpms.html

  * igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait:
    - shard-tglb:         NOTRUN -> [SKIP][31] ([fdo#111644] / [i915#1397] / [i915#2411])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb3/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html

  * igt@i915_suspend@forcewake:
    - shard-tglb:         [PASS][32] -> [INCOMPLETE][33] ([i915#2411] / [i915#456])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10858/shard-tglb2/igt@i915_suspend@forcewake.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb7/igt@i915_suspend@forcewake.html

  * igt@kms_atomic_transition@plane-all-modeset-transition:
    - shard-tglb:         NOTRUN -> [SKIP][34] ([i915#1769])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb5/igt@kms_atomic_transition@plane-all-modeset-transition.html

  * igt@kms_big_fb@linear-32bpp-rotate-90:
    - shard-tglb:         NOTRUN -> [SKIP][35] ([fdo#111614]) +2 similar issues
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb3/igt@kms_big_fb@linear-32bpp-rotate-90.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip:
    - shard-kbl:          NOTRUN -> [SKIP][36] ([fdo#109271] / [i915#3777]) +2 similar issues
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-kbl4/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip:
    - shard-apl:          NOTRUN -> [SKIP][37] ([fdo#109271] / [i915#3777])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-apl1/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip.html

  * igt@kms_big_fb@yf-tiled-8bpp-rotate-0:
    - shard-iclb:         NOTRUN -> [SKIP][38] ([fdo#110723]) +2 similar issues
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-iclb5/igt@kms_big_fb@yf-tiled-8bpp-rotate-0.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip:
    - shard-kbl:          NOTRUN -> [SKIP][39] ([fdo#109271]) +239 similar issues
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-kbl1/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip:
    - shard-tglb:         NOTRUN -> [SKIP][40] ([fdo#111615]) +3 similar issues
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb6/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip.html

  * igt@kms_big_joiner@2x-modeset:
    - shard-tglb:         NOTRUN -> [SKIP][41] ([i915#2705])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb5/igt@kms_big_joiner@2x-modeset.html

  * igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs:
    - shard-apl:          NOTRUN -> [SKIP][42] ([fdo#109271]) +140 similar issues
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-apl8/igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs.html

  * igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs:
    - shard-iclb:         NOTRUN -> [SKIP][43] ([fdo#109278] / [i915#3886]) +4 similar issues
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-iclb3/igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_mc_ccs:
    - shard-glk:          NOTRUN -> [SKIP][44] ([fdo#109271] / [i915#3886]) +6 similar issues
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-glk4/igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_mc_ccs.html
    - shard-tglb:         NOTRUN -> [SKIP][45] ([i915#3689] / [i915#3886]) +1 similar issue
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb6/igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_mc_ccs.html
    - shard-apl:          NOTRUN -> [SKIP][46] ([fdo#109271] / [i915#3886]) +4 similar issues
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-apl3/igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-b-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc:
    - shard-kbl:          NOTRUN -> [SKIP][47] ([fdo#109271] / [i915#3886]) +12 similar issues
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-kbl4/igt@kms_ccs@pipe-b-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-d-bad-rotation-90-yf_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][48] ([i915#3689]) +11 similar issues
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb5/igt@kms_ccs@pipe-d-bad-rotation-90-yf_tiled_ccs.html

  * igt@kms_chamelium@hdmi-cmp-planar-formats:
    - shard-iclb:         NOTRUN -> [SKIP][49] ([fdo#109284] / [fdo#111827]) +2 similar issues
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-iclb5/igt@kms_chamelium@hdmi-cmp-planar-formats.html
    - shard-glk:          NOTRUN -> [SKIP][50] ([fdo#109271] / [fdo#111827]) +4 similar issues
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-glk4/igt@kms_chamelium@hdmi-cmp-planar-formats.html

  * igt@kms_chamelium@hdmi-edid-change-during-suspend:
    - shard-apl:          NOTRUN -> [SKIP][51] ([fdo#109271] / [fdo#111827]) +6 similar issues
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-apl4/igt@kms_chamelium@hdmi-edid-change-during-suspend.html

  * igt@kms_chamelium@vga-hpd-for-each-pipe:
    - shard-kbl:          NOTRUN -> [SKIP][52] ([fdo#109271] / [fdo#111827]) +21 similar issues
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-kbl4/igt@kms_chamelium@vga-hpd-for-each-pipe.html

  * igt@kms_color@pipe-d-ctm-0-25:
    - shard-iclb:         NOTRUN -> [SKIP][53] ([fdo#109278] / [i915#1149])
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-iclb6/igt@kms_color@pipe-d-ctm-0-25.html

  * igt@kms_color_chamelium@pipe-b-ctm-0-75:
    - shard-tglb:         NOTRUN -> [SKIP][54] ([fdo#109284] / [fdo#111827]) +8 similar issues
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb1/igt@kms_color_chamelium@pipe-b-ctm-0-75.html

  * igt@kms_color_chamelium@pipe-b-ctm-blue-to-red:
    - shard-snb:          NOTRUN -> [SKIP][55] ([fdo#109271] / [fdo#111827])
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-snb7/igt@kms_color_chamelium@pipe-b-ctm-blue-to-red.html

  * igt@kms_content_protection@content_type_change:
    - shard-tglb:         NOTRUN -> [SKIP][56] ([fdo#111828])
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb5/igt@kms_content_protection@content_type_change.html

  * igt@kms_content_protection@legacy:
    - shard-apl:          NOTRUN -> [TIMEOUT][57] ([i915#1319])
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-apl7/igt@kms_content_protection@legacy.html

  * igt@kms_content_protection@srm:
    - shard-kbl:          NOTRUN -> [TIMEOUT][58] ([i915#1319])
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-kbl7/igt@kms_content_protection@srm.html

  * igt@kms_cursor_crc@pipe-a-cursor-32x10-offscreen:
    - shard-tglb:         NOTRUN -> [SKIP][59] ([i915#3359]) +7 similar issues
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb5/igt@kms_cursor_crc@pipe-a-cursor-32x10-offscreen.html

  * igt@kms_cursor_crc@pipe-a-cursor-32x32-rapid-movement:
    - shard-tglb:         NOTRUN -> [SKIP][60] ([i915#3319]) +1 similar issue
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb6/igt@kms_cursor_crc@pipe-a-cursor-32x32-rapid-movement.html

  * igt@kms_cursor_crc@pipe-a-cursor-suspend:
    - shard-kbl:          [PASS][61] -> [DMESG-WARN][62] ([i915#180]) +3 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10858/shard-kbl7/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-kbl1/igt@kms_cursor_crc@pipe-a-cursor-suspend.html

  * igt@kms_cursor_crc@pipe-b-cursor-512x512-onscreen:
    - shard-iclb:         NOTRUN -> [SKIP][63] ([fdo#109278] / [fdo#109279]) +1 similar issue
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-iclb4/igt@kms_cursor_crc@pipe-b-cursor-512x512-onscreen.html

  * igt@kms_cursor_crc@pipe-d-cursor-512x512-onscreen:
    - shard-tglb:         NOTRUN -> [SKIP][64] ([fdo#109279] / [i915#3359]) +2 similar issues
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb6/igt@kms_cursor_crc@pipe-d-cursor-512x512-onscreen.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions:
    - shard-iclb:         NOTRUN -> [SKIP][65] ([fdo#109274] / [fdo#109278]) +2 similar issues
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-iclb4/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
    - shard-iclb:         [PASS][66] -> [FAIL][67] ([i915#2346])
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10858/shard-iclb3/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-iclb7/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html

  * igt@kms_cursor_legacy@pipe-d-single-bo:
    - shard-glk:          NOTRUN -> [SKIP][68] ([fdo#109271] / [i915#533])
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-glk5/igt@kms_cursor_legacy@pipe-d-single-bo.html

  * igt@kms_cursor_legacy@pipe-d-single-move:
    - shard-iclb:         NOTRUN -> [SKIP][69] ([fdo#109278]) +15 similar issues
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-iclb4/igt@kms_cursor_legacy@pipe-d-single-move.html

  * igt@kms_dither@fb-8bpc-vs-panel-8bpc@edp-1-pipe-a:
    - shard-tglb:         NOTRUN -> [SKIP][70] ([i915#3788])
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb7/igt@kms_dither@fb-8bpc-vs-panel-8bpc@edp-1-pipe-a.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-kbl:          [PASS][71] -> [INCOMPLETE][72] ([i915#180] / [i915#636])
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10858/shard-kbl3/igt@kms_fbcon_fbt@fbc-suspend.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-kbl6/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_flip@2x-flip-vs-suspend:
    - shard-iclb:         NOTRUN -> [SKIP][73] ([fdo#109274]) +3 similar issues
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-iclb4/igt@kms_flip@2x-flip-vs-suspend.html

  * igt@kms_flip@2x-plain-flip-ts-check:
    - shard-tglb:         NOTRUN -> [SKIP][74] ([fdo#111825]) +42 similar issues
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb6/igt@kms_flip@2x-plain-flip-ts-check.html

  * igt@kms_flip@2x-plain-flip-ts-check@ab-hdmi-a1-hdmi-a2:
    - shard-glk:          [PASS][75] -> [FAIL][76] ([i915#2122])
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10858/shard-glk9/igt@kms_flip@2x-plain-flip-ts-check@ab-hdmi-a1-hdmi-a2.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-glk5/igt@kms_flip@2x-plain-flip-ts-check@ab-hdmi-a1-hdmi-a2.html

  * igt@kms_flip@flip-vs-suspend@b-dp1:
    - shard-apl:          [PASS][77] -> [DMESG-WARN][78] ([i915#180]) +4 similar issues
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10858/shard-apl7/igt@kms_flip@flip-vs-suspend@b-dp1.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-apl8/igt@kms_flip@flip-vs-suspend@b-dp1.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs:
    - shard-kbl:          NOTRUN -> [SKIP][79] ([fdo#109271] / [i915#2672])
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-kbl6/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs.html
    - shard-glk:          NOTRUN -> [SKIP][80] ([fdo#109271] / [i915#2672])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-glk1/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-blt:
    - shard-iclb:         NOTRUN -> [SKIP][81] ([fdo#109280]) +17 similar issues
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-iclb3/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-blt:
    - shard-snb:          NOTRUN -> [SKIP][82] ([fdo#109271]) +66 similar issues
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-snb6/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-suspend:
    - shard-glk:          NOTRUN -> [SKIP][83] ([fdo#109271]) +87 similar issues
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-glk7/igt@kms_frontbuffer_tracking@fbcpsr-suspend.html
    - shard-tglb:         NOTRUN -> [INCOMPLETE][84] ([i915#2411] / [i915#456])
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb7/igt@kms_frontbuffer_tracking@fbcpsr-suspend.html

  * igt@kms_hdmi_inject@inject-audio:
    - shard-tglb:         [PASS][85] -> [SKIP][86] ([i915#433])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10858/shard-tglb5/igt@kms_hdmi_inject@inject-audio.html
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb1/igt@kms_hdmi_inject@inject-audio.html

  * igt@kms_hdr@static-toggle-dpms:
    - shard-tglb:         NOTRUN -> [SKIP][87] ([i915#1187])
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb3/igt@kms_hdr@static-toggle-dpms.html
    - shard-iclb:         NOTRUN -> [SKIP][88] ([i915#1187])
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-iclb2/igt@kms_hdr@static-toggle-dpms.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-d:
    - shard-apl:          NOTRUN -> [SKIP][89] ([fdo#109271] / [i915#533])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-apl7/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-d.html

  * igt@kms_plane_alpha_blend@pipe-a-alpha-opaque-fb:
    - shard-kbl:          NOTRUN -> [FAIL][90] ([fdo#108145] / [i915#265])
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-kbl4/igt@kms_plane_alpha_blend@pipe-a-alpha-opaque-fb.html

  * igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max:
    - shard-glk:          NOTRUN -> [FAIL][91] ([fdo#108145] / [i915#265])
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-glk1/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max.html

  * igt@kms_plane_lowres@pipe-c-tiling-none:
    - shard-iclb:         NOTRUN -> [SKIP][92] ([i915#3536])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-iclb8/igt@kms_plane_lowres@pipe-c-tiling-none.html

  * igt@kms_plane_lowres@pipe-c-tiling-y:
    - shard-tglb:         NOTRUN -> [SKIP][93] ([i915#3536])
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb8/igt@kms_plane_lowres@pipe-c-tiling-y.html

  * igt@kms_psr@psr2_primary_mmap_cpu:
    - shard-iclb:         NOTRUN -> [SKIP][94] ([fdo#109441])
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-iclb5/igt@kms_psr@psr2_primary_mmap_cpu.html
    - shard-tglb:         NOTRUN -> [FAIL][95] ([i915#132] / [i915#3467])
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb5/igt@kms_psr@psr2_primary_mmap_cpu.html

  * igt@kms_vblank@pipe-d-wait-idle:
    - shard-kbl:          NOTRUN -> [SKIP][96] ([fdo#109271] / [i915#533]) +2 similar issues
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-kbl7/igt@kms_vblank@pipe-d-wait-idle.html

  * igt@kms_writeback@writeback-pixel-formats:
    - shard-kbl:          NOTRUN -> [SKIP][97] ([fdo#109271] / [i915#2437]) +1 similar issue
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-kbl2/igt@kms_writeback@writeback-pixel-formats.html
    - shard-apl:          NOTRUN -> [SKIP][98] ([fdo#109271] / [i915#2437])
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-apl8/igt@kms_writeback@writeback-pixel-formats.html
    - shard-tglb:         NOTRUN -> [SKIP][99] ([i915#2437])
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb5/igt@kms_writeback@writeback-pixel-formats.html

  * igt@nouveau_crc@pipe-d-ctx-flip-detection:
    - shard-tglb:         NOTRUN -> [SKIP][100] ([i915#2530]) +1 similar issue
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb7/igt@nouveau_crc@pipe-d-ctx-flip-detection.html

  * igt@prime_nv_api@i915_nv_import_twice:
    - shard-iclb:         NOTRUN -> [SKIP][101] ([fdo#109291]) +2 similar issues
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-iclb8/igt@prime_nv_api@i915_nv_import_twice.html

  * igt@prime_nv_pcopy@test3_1:
    - shard-tglb:         NOTRUN -> [SKIP][102] ([fdo#109291]) +5 similar issues
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb5/igt@prime_nv_pcopy@test3_1.html

  * igt@prime_vgem@fence-write-hang:
    - shard-iclb:         NOTRUN -> [SKIP][103] ([fdo#109295])
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-iclb6/igt@prime_vgem@fence-write-hang.html

  * igt@sysfs_clients@fair-1:
    - shard-apl:          NOTRUN -> [SKIP][104] ([fdo#109271] / [i915#2994]) +3 similar issues
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-apl6/igt@sysfs_clients@fair-1.html
    - shard-tglb:         NOTRUN -> [SKIP][105] ([i915#2994]) +3 similar issues
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb7/igt@sysfs_clients@fair-1.html

  * igt@sysfs_clients@sema-25:
    - shard-kbl:          NOTRUN -> [SKIP][106] ([fdo#109271] / [i915#2994]) +4 similar issues
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-kbl1/igt@sysfs_clients@sema-25.html

  * igt@sysfs_clients@split-25:
    - shard-glk:          NOTRUN -> [SKIP][107] ([fdo#109271] / [i915#2994]) +1 similar issue
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-glk9/igt@sysfs_clients@split-25.html

  
#### Possible fixes ####

  * igt@gem_exec_fair@basic-deadline:
    - shard-glk:          [FAIL][108] ([i915#2846]) -> [PASS][109]
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10858/shard-glk6/igt@gem_exec_fair@basic-deadline.html
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-glk4/igt@gem_exec_fair@basic-deadline.html

  * igt@gem_exec_fair@basic-pace@vcs0:
    - shard-iclb:         [FAIL][110] ([i915#2842]) -> [PASS][111]
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10858/shard-iclb3/igt@gem_exec_fair@basic-pace@vcs0.html
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-iclb3/igt@gem_exec_fair@basic-pace@vcs0.html

  * igt@gem_exec_fair@basic-throttle@rcs0:
    - shard-glk:          [FAIL][112] ([i915#2842]) -> [PASS][113] +1 similar issue
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10858/shard-glk3/igt@gem_exec_fair@basic-throttle@rcs0.html
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-glk7/igt@gem_exec_fair@basic-throttle@rcs0.html

  * igt@gem_exec_parallel@engines@contexts:
    - shard-iclb:         [INCOMPLETE][114] -> [PASS][115]
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10858/shard-iclb6/igt@gem_exec_parallel@engines@contexts.html
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-iclb7/igt@gem_exec_parallel@engines@contexts.html

  * igt@gem_exec_whisper@basic-fds-all:
    - shard-glk:          [DMESG-WARN][116] ([i915#118]) -> [PASS][117] +1 similar issue
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10858/shard-glk3/igt@gem_exec_whisper@basic-fds-all.html
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-glk1/igt@gem_exec_whisper@basic-fds-all.html

  * igt@i915_pm_dc@dc9-dpms:
    - shard-apl:          [SKIP][118] ([fdo#109271]) -> [PASS][119]
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10858/shard-apl6/igt@i915_pm_dc@dc9-dpms.html
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-apl3/igt@i915_pm_dc@dc9-dpms.html
    - shard-iclb:         [FAIL][120] ([i915#4275]) -> [PASS][121]
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10858/shard-iclb5/igt@i915_pm_dc@dc9-dpms.html
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-iclb1/igt@i915_pm_dc@dc9-dpms.html

  * igt@kms_cursor_crc@pipe-a-cursor-suspend:
    - shard-tglb:         [INCOMPLETE][122] ([i915#2828] / [i915#456]) -> [PASS][123] +1 similar issue
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10858/shard-tglb7/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-tglb1/igt@kms_cursor_crc@pipe-a-cursor-suspend.html

  * igt@kms_flip@flip-vs-suspend-interruptible@c-dp1:
    - shard-apl:          [DMESG-WARN][124] ([i915#180]) -> [PASS][125] +2 similar issues
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10858/shard-apl4/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-apl1/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile:
    - shard-iclb:         [SKIP][126] ([i915#3701]) -> [PASS][127]
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10858/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile.html
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-iclb6/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
    - shard-kbl:          [INCOMPLETE][128] ([i915#3614]) -> [PASS][129]
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10858/shard-kbl4/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b.html
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-kbl4/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b.html

  * igt@kms_psr@psr2_no_drrs:
    - shard-iclb:         [SKIP][130] ([fdo#109441]) -> [PASS][131] +1 similar issue
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10858/shard-iclb6/igt@kms_psr@psr2_no_drrs.html
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-iclb2/igt@kms_psr@psr2_no_drrs.html

  * igt@kms_setmode@basic:
    - shard-glk:          [FAIL][132] ([i915#31]) -> [PASS][133]
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10858/shard-glk1/igt@kms_setmode@basic.html
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6386/shard-glk7/igt@kms_setmode@basic.html

  * igt@perf

== Logs ==

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

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

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

* Re: [igt-dev] [PATCH i-g-t v3 1/3] lib/igt_aux: Rename igt_debug_manual_check and assert check if all is supplied
  2021-11-09 19:55 ` [igt-dev] [PATCH i-g-t v3 1/3] lib/igt_aux: Rename igt_debug_manual_check and assert check if all is supplied Jeevan B
@ 2021-11-10 12:03   ` Petri Latvala
  0 siblings, 0 replies; 9+ messages in thread
From: Petri Latvala @ 2021-11-10 12:03 UTC (permalink / raw)
  To: Jeevan B; +Cc: igt-dev, daniel

On Wed, Nov 10, 2021 at 01:25:49AM +0530, Jeevan B wrote:
> rename igt_debug_manual_check and patch the igt function
> igt_debug_wait_for_keypress() to assert if "all" is supplied.
> 
> v2: calling igt_debug_wait_for_keypress() with "all" will assert.
> 
> v3: Change igt_assert to igt_assert_f for adding clear log message.
> 
> Signed-off-by: Jeevan B <jeevan.b@intel.com>
> ---
>  lib/igt_aux.c            | 9 ++++++---
>  lib/igt_aux.h            | 2 +-
>  tests/i915/kms_dsc.c     | 2 +-
>  tests/i915/kms_psr.c     | 2 +-
>  tests/i915/kms_psr2_sf.c | 2 +-
>  5 files changed, 10 insertions(+), 7 deletions(-)
> 
> diff --git a/lib/igt_aux.c b/lib/igt_aux.c
> index 2445e483..c0e5b01a 100644
> --- a/lib/igt_aux.c
> +++ b/lib/igt_aux.c
> @@ -972,7 +972,7 @@ void igt_drop_root(void)
>   * Waits for a key press when run interactively and when the corresponding debug
>   * var is set in the --interactive-debug=$var variable. Multiple keys
>   * can be specified as a comma-separated list or alternatively "all" if a wait
> - * should happen for all cases.
> + * should happen for all cases. Calling this fucntion with "all" will assert.

Typo in "function".

With that fixed,
Reviewed-by: Petri Latvala <petri.latvala@intel.com>


>   *
>   * When not connected to a terminal interactive_debug is ignored
>   * and execution immediately continues.
> @@ -993,6 +993,9 @@ void igt_debug_wait_for_keypress(const char *var)
>  	if (!igt_interactive_debug)
>  		return;
>  
> +	if (strstr(var, "all"))
> +		igt_assert_f(false, "Bug in test: Do not call igt_debug_wait_for_keypress with \"all\"\n");
> +
>  	if (!strstr(igt_interactive_debug, var) &&
>  	    !strstr(igt_interactive_debug, "all"))
>  		return;
> @@ -1008,7 +1011,7 @@ void igt_debug_wait_for_keypress(const char *var)
>  }
>  
>  /**
> - * igt_debug_manual_check:
> + * igt_debug_interactive_mode_check:
>   * @var: var lookup to to enable this wait
>   * @expected: message to be printed as expected behaviour before wait for keys Y/n
>   *
> @@ -1028,7 +1031,7 @@ void igt_debug_wait_for_keypress(const char *var)
>   *
>   * Force test fail when N/n is pressed.
>   */
> -void igt_debug_manual_check(const char *var, const char *expected)
> +void igt_debug_interactive_mode_check(const char *var, const char *expected)
>  {
>  	struct termios oldt, newt;
>  	char key;
> diff --git a/lib/igt_aux.h b/lib/igt_aux.h
> index a3c477ab..9f2588ae 100644
> --- a/lib/igt_aux.h
> +++ b/lib/igt_aux.h
> @@ -195,7 +195,7 @@ int igt_get_autoresume_delay(enum igt_suspend_state state);
>  void igt_drop_root(void);
>  
>  void igt_debug_wait_for_keypress(const char *var);
> -void igt_debug_manual_check(const char *var, const char *expected);
> +void igt_debug_interactive_mode_check(const char *var, const char *expected);
>  
>  /* sysinfo cross-arch wrappers from intel_os.c */
>  
> diff --git a/tests/i915/kms_dsc.c b/tests/i915/kms_dsc.c
> index dcfe8b96..0292ed34 100644
> --- a/tests/i915/kms_dsc.c
> +++ b/tests/i915/kms_dsc.c
> @@ -72,7 +72,7 @@ int force_dsc_restore_fd = -1;
>  
>  static inline void manual(const char *expected)
>  {
> -	igt_debug_manual_check("all", expected);
> +	igt_debug_interactive_mode_check("all", expected);
>  }
>  
>  static void force_dsc_enable(data_t *data)
> diff --git a/tests/i915/kms_psr.c b/tests/i915/kms_psr.c
> index 83b8b709..480e2cc7 100644
> --- a/tests/i915/kms_psr.c
> +++ b/tests/i915/kms_psr.c
> @@ -246,7 +246,7 @@ static bool psr_enable_if_enabled(data_t *data)
>  
>  static inline void manual(const char *expected)
>  {
> -	igt_debug_manual_check("all", expected);
> +	igt_debug_interactive_mode_check("all", expected);
>  }
>  
>  static bool drrs_disabled(data_t *data)
> diff --git a/tests/i915/kms_psr2_sf.c b/tests/i915/kms_psr2_sf.c
> index a50c3e14..dca2d030 100644
> --- a/tests/i915/kms_psr2_sf.c
> +++ b/tests/i915/kms_psr2_sf.c
> @@ -331,7 +331,7 @@ static void prepare(data_t *data)
>  
>  static inline void manual(const char *expected)
>  {
> -	igt_debug_manual_check("all", expected);
> +	igt_debug_interactive_mode_check("all", expected);
>  }
>  
>  static void plane_update_expected_output(int plane_type, int box_count)
> -- 
> 2.19.1
> 

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

* Re: [igt-dev] [PATCH i-g-t v3 2/3] tests/kms_psr2_sf: Change testcase design
  2021-11-09 19:55 ` [igt-dev] [PATCH i-g-t v3 2/3] tests/kms_psr2_sf: Change testcase design Jeevan B
@ 2021-11-10 12:04   ` Petri Latvala
  0 siblings, 0 replies; 9+ messages in thread
From: Petri Latvala @ 2021-11-10 12:04 UTC (permalink / raw)
  To: Jeevan B; +Cc: igt-dev, daniel

On Wed, Nov 10, 2021 at 01:25:50AM +0530, Jeevan B wrote:
> Change testcase design so that it avoids new subtest for each block position.
> 
> Signed-off-by: Jeevan B <jeevan.b@intel.com>

Reviewed-by: Petri Latvala <petri.latvala@intel.com>


> ---
>  tests/i915/kms_psr2_sf.c | 26 +++++++++++++-------------
>  1 file changed, 13 insertions(+), 13 deletions(-)
> 
> diff --git a/tests/i915/kms_psr2_sf.c b/tests/i915/kms_psr2_sf.c
> index dca2d030..7f88b514 100644
> --- a/tests/i915/kms_psr2_sf.c
> +++ b/tests/i915/kms_psr2_sf.c
> @@ -582,9 +582,9 @@ igt_main
>  	}
>  
>  	/* Verify primary plane selective fetch */
> -	for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
> -		igt_describe("Test that selective fetch works on primary plane");
> -		igt_subtest_f("primary-%s-sf-dmg-area-%d", op_str(data.op), i) {
> +	igt_describe("Test that selective fetch works on primary plane");
> +	igt_subtest_f("primary-%s-sf-dmg-area", op_str(data.op)) {
> +		for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
>  			data.damage_area_count = i;
>  			data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
>  			prepare(&data);
> @@ -594,9 +594,9 @@ igt_main
>  	}
>  
>  	/* Verify overlay plane selective fetch */
> -	for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
> -		igt_describe("Test that selective fetch works on overlay plane");
> -		igt_subtest_f("overlay-%s-sf-dmg-area-%d", op_str(data.op), i) {
> +	igt_describe("Test that selective fetch works on overlay plane");
> +	igt_subtest_f("overlay-%s-sf-dmg-area", op_str(data.op)) {
> +		for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
>  			data.damage_area_count = i;
>  			data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
>  			prepare(&data);
> @@ -618,9 +618,9 @@ igt_main
>  	/* Only for overlay plane */
>  	data.op = PLANE_MOVE;
>  	/* Verify overlay plane move selective fetch */
> -	for (i = POS_TOP_LEFT; i <= POS_BOTTOM_RIGHT ; i++) {
> -		igt_describe("Test that selective fetch works on moving overlay plane");
> -		igt_subtest_f("%s-sf-dmg-area-%d", op_str(data.op), i) {
> +	igt_describe("Test that selective fetch works on moving overlay plane");
> +	igt_subtest_f("%s-sf-dmg-area", op_str(data.op)) {
> +		for (i = POS_TOP_LEFT; i <= POS_BOTTOM_RIGHT ; i++) {
>  			data.pos = i;
>  			data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
>  			prepare(&data);
> @@ -631,10 +631,10 @@ igt_main
>  
>  	/* Verify primary plane selective fetch with overplay plane blended */
>  	data.op = OVERLAY_PRIM_UPDATE;
> -	for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
> -		igt_describe("Test that selective fetch works on primary plane "
> -			     "with blended overlay plane");
> -		igt_subtest_f("%s-sf-dmg-area-%d", op_str(data.op), i) {
> +	igt_describe("Test that selective fetch works on primary plane "
> +		     "with blended overlay plane");
> +	igt_subtest_f("%s-sf-dmg-area", op_str(data.op)) {
> +		for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
>  			data.damage_area_count = i;
>  			data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
>  			prepare(&data);
> -- 
> 2.19.1
> 

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

* Re: [igt-dev] [PATCH i-g-t v3 3/3] tests/kms_atomic: Add a new test case for FB_DAMAGE_CLIPS plane property
  2021-11-09 19:55 ` [igt-dev] [PATCH i-g-t v3 3/3] tests/kms_atomic: Add a new test case for FB_DAMAGE_CLIPS plane property Jeevan B
@ 2021-11-23 11:33   ` Hogander, Jouni
  0 siblings, 0 replies; 9+ messages in thread
From: Hogander, Jouni @ 2021-11-23 11:33 UTC (permalink / raw)
  To: igt-dev, B, Jeevan; +Cc: drawat, Latvala, Petri, daniel

On Wed, 2021-11-10 at 01:25 +0530, Jeevan B wrote:
> From: Deepak Rawat <drawat@vmware.com>
> 
> Some simple test cases to use FB_DAMAGE_CLIPS plane property.

Maybe you could describe a bit more what are the testcase you are
adding.

> 
> Signed-off-by: Deepak Rawat <drawat@vmware.com>
> Signed-off-by: Jeevan B <jeevan.b@intel.com>
> ---
>  tests/kms_atomic.c | 232
> +++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 232 insertions(+)
> 
> diff --git a/tests/kms_atomic.c b/tests/kms_atomic.c
> index 1657624e..4b7b6d38 100644
> --- a/tests/kms_atomic.c
> +++ b/tests/kms_atomic.c
> @@ -62,6 +62,25 @@ enum kms_atomic_check_relax {
>  	PLANE_RELAX_FB = (1 << 1)
>  };
>  
> +/* signed32 drm_mode_rect declared here for use with drm damage for
> page-flip */
> +struct damage_rect {
> +	int x1;
> +	int y1;
> +	int x2;
> +	int y2;
> +};

Consider using igt-gpu-tools/include/drm-uapi/drm_mode.h:drm_mode_rect.

> +
> +static inline int damage_rect_width(struct damage_rect *r)
> +{
> +	return r->x2 - r->x1;
> +}
> +
> +static inline int damage_rect_height(struct damage_rect *r)
> +{
> +	return r->y2 - r->y1;
> +}
> +
> +
>  static bool plane_filter(enum igt_atomic_plane_properties prop)
>  {
>  	if ((1 << prop) & IGT_PLANE_COORD_CHANGED_MASK)
> @@ -1060,6 +1079,210 @@ static void atomic_invalid_params(igt_pipe_t
> *pipe,
>  	do_ioctl_err(display->drm_fd, DRM_IOCTL_MODE_ATOMIC, &ioc,
> EFAULT);
>  }
>  
> +static void atomic_plane_damage(igt_pipe_t *pipe, igt_plane_t
> *plane, struct igt_fb *fb)
> +{
> +	struct damage_rect *damage;
> +	struct igt_fb fb_1, fb_2;
> +	cairo_t *cr_1, *cr_2;
> +
> +	damage = malloc(sizeof(*damage) * 2);
> +	igt_assert(damage);

To my opinion it's better to have "drm_mode_rect damage_rect[2]" rather
than using malloc here. Anyways I think "free" is not done if there is 
assertion later for some reason.

> +
> +	/* Color fb with white rect at center */
> +	igt_create_color_fb(pipe->display->drm_fd, fb->width, fb-
> >height,
> +			    fb->drm_format, I915_TILING_NONE, 0.2, 0.2,
> 0.2,
> +			    &fb_1);
> +	cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
> +	igt_paint_color(cr_1, fb->width/4, fb->height/4, fb->width/2,
> +			fb->height/2, 1.0, 1.0, 1.0);
> +	igt_put_cairo_ctx(cr_1);
> +
> +	/*
> +	 * Flip the primary plane to new color fb using atomic API and
> check the
> +	 * state.
> +	 */
> +	igt_plane_set_fb(plane, &fb_1);
> +	crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
> +

From here ->

> +	/*
> +	 * Change the color of top left clip from center and issue
> plane update
> +	 * with damage and verify the state.
> +	 */
> +	damage[0].x1 = 0;
> +	damage[0].y1 = 0;
> +	damage[0].x2 = fb->width/2;
> +	damage[0].y2 = fb->height/2;
> +
> +	cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
> +	igt_paint_color(cr_1, damage[0].x1, damage[0].y1,
> +			damage_rect_width(&damage[0]),
> +			damage_rect_height(&damage[0]), 1.0, 0, 0);
> +	igt_put_cairo_ctx(cr_1);
> +
> +	igt_plane_set_fb(plane, &fb_1);
> +	igt_plane_replace_prop_blob(plane, IGT_PLANE_FB_DAMAGE_CLIPS,
> damage,
> +				    sizeof(*damage));
> +	crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);

<- To here: consider putting the code into a function(s). You are
repeating this code 7 times.

> +
> +	/*
> +	 * Change the color of top left and bottom right clip from
> center and
> +	 * issue plane update with damage and verify the state.
> +	 */
> +	igt_create_color_fb(pipe->display->drm_fd, fb->width, fb-
> >height,
> +			    fb->drm_format, I915_TILING_NONE, 0.2, 0.2,
> 0.2,
> +			    &fb_2);
> +
> +	damage[0].x1 = fb->width/2;
> +	damage[0].y1 = 0;
> +	damage[0].x2 = fb->width;
> +	damage[0].y2 = fb->height/2;
> +
> +	cr_2 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_2);
> +	cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
> +	cairo_set_source_surface(cr_2, fb_1.cairo_surface, 0, 0);
> +	cairo_paint(cr_2);
> +	igt_paint_color(cr_2, damage[0].x1, damage[0].y1,
> +			damage_rect_width(&damage[0]),
> +			damage_rect_height(&damage[0]), 0, 1.0, 0);
> +	igt_put_cairo_ctx(cr_1);
> +	igt_put_cairo_ctx(cr_2);
> +	igt_plane_set_fb(plane, &fb_2);
> +	igt_plane_replace_prop_blob(plane, IGT_PLANE_FB_DAMAGE_CLIPS,
> damage,
> +				    sizeof(*damage));
> +	crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
> +
> +	/*
> +	 * Issue plane update with damage with a clip outside of plane
> src.
> +	 * NOTE: This will result in no update on plane as damage is
> outside, so
> +	 * will see no change on the screen.
> +	 */
> +	/* Reszie fb_1 to be bigger than plane */
> +	igt_remove_fb(pipe->display->drm_fd, &fb_1);
> +	igt_create_color_fb(pipe->display->drm_fd, fb->width * 2, fb-
> >height,
> +			    fb->drm_format, I915_TILING_NONE, 0.2, 0.2,
> 0.2,
> +			    &fb_1);
> +
> +	damage[0].x1 = fb->width;
> +	damage[0].y1 = 0;
> +	damage[0].x2 = fb->width + fb->width/2;
> +	damage[0].y2 = fb->height/2;
> +
> +	cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
> +	cr_2 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_2);
> +	cairo_set_source_surface(cr_1, fb_2.cairo_surface, 0, 0);
> +	cairo_paint(cr_1);
> +	igt_paint_color(cr_1, damage[0].x1, damage[0].y1,
> +			damage_rect_width(&damage[0]),
> +			damage_rect_height(&damage[0]), 0, 1.0, 0);
> +	igt_put_cairo_ctx(cr_2);
> +	igt_put_cairo_ctx(cr_1);
> +	igt_plane_set_fb(plane, &fb_1);
> +	igt_plane_set_size(plane, fb->width, fb->height);
> +	igt_fb_set_position(&fb_1, plane, 0, 0);
> +	igt_fb_set_size(&fb_1, plane, fb->width, fb->height);
> +	igt_plane_replace_prop_blob(plane, IGT_PLANE_FB_DAMAGE_CLIPS,
> damage,
> +				    sizeof(*damage));
> +	crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
> +
> +	/*
> +	 * Issue a plane update with damage with a clip that overlap
> with plane
> +	 * src (Top right from center extending outside src in below
> case).
> +	 * NOTE: Here drm core should take care of intersecting the
> clip to
> +	 * plane src.
> +	 */
> +	damage[0].x1 = fb->width/2;
> +	damage[0].y1 = 0;
> +	damage[0].x2 = fb->width/2 + fb->width;
> +	damage[0].y2 = fb->height/2;
> +
> +	cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
> +	igt_paint_color(cr_1, damage[0].x1, damage[0].y1,
> +			damage_rect_width(&damage[0]),
> +			damage_rect_height(&damage[0]), 1.0, 1.0, 0);
> +	igt_put_cairo_ctx(cr_1);
> +	igt_plane_set_fb(plane, &fb_1);
> +	igt_plane_set_size(plane, fb->width, fb->height);
> +	igt_fb_set_position(&fb_1, plane, 0, 0);
> +	igt_fb_set_size(&fb_1, plane, fb->width, fb->height);
> +	igt_plane_replace_prop_blob(plane, IGT_PLANE_FB_DAMAGE_CLIPS,
> damage,
> +				    sizeof(*damage));
> +	crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
> +
> +	/*
> +	 * Issue a plane update with damage with two clips one inside
> plane src
> +	 * and one outside
> +	 * NOTE: This will result in plane update with clip inside
> plane src.
> +	 */
> +	damage[0].x1 = 0;
> +	damage[0].y1 = fb->height/2;
> +	damage[0].x2 = fb->width/2;
> +	damage[0].y2 = fb->height;
> +
> +	damage[1].x1 = fb->width + fb->width/2;
> +	damage[1].y1 = fb->height/2;
> +	damage[1].x2 = fb->width * 2;
> +	damage[1].y2 = fb->height;
> +
> +	cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
> +	igt_paint_color(cr_1, damage[0].x1, damage[0].y1,
> +			damage_rect_width(&damage[0]),
> +			damage_rect_height(&damage[0]), 0, 1.0, 1.0);
> +	igt_paint_color(cr_1, damage[1].x1, damage[1].y1,
> +			damage_rect_width(&damage[1]),
> +			damage_rect_height(&damage[1]), 0, 1.0, 0);
> +	igt_put_cairo_ctx(cr_1);
> +	igt_plane_set_fb(plane, &fb_1);
> +	igt_plane_set_size(plane, fb->width, fb->height);
> +	igt_fb_set_position(&fb_1, plane, 0, 0);
> +	igt_fb_set_size(&fb_1, plane, fb->width, fb->height);
> +	igt_plane_replace_prop_blob(plane, IGT_PLANE_FB_DAMAGE_CLIPS,
> damage,
> +				    sizeof(*damage) * 2);
> +	crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
> +
> +	/*
> +	 * Issue a plane update with overlapping damage clips. White
> rect in
> +	 * center overlap partially with top left red rect.
> +	 * NOTE: Drm core does not error for overlapping damage clips
> so if any
> +	 * driver does not support overlapping should have their own
> +	 * validations.
> +	 */
> +	damage[0].x1 = 0;
> +	damage[0].y1 = 0;
> +	damage[0].x2 = fb->width/2;
> +	damage[0].y2 = fb->height/2;
> +
> +	damage[1].x1 = fb->width/4;
> +	damage[1].y1 = fb->height/4;
> +	damage[1].x2 = fb->width/4 + fb->width/2;
> +	damage[1].y2 = fb->height/4 + fb->height/2;
> +
> +	cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd,
> &fb_drm_mode_rect1);
> +	igt_paint_color(cr_1, damage[0].x1, damage[0].y1,
> +			damage_rect_width(&damage[0]),
> +			damage_rect_height(&damage[0]), 1.0, 0, 0);
> +	igt_paint_color(cr_1, damage[1].x1, damage[1].y1,
> +			damage_rect_width(&damage[1]),
> +			damage_rect_height(&damage[1]), 1.0, 1.0, 1.0);
> +	igt_put_cairo_ctx(cr_1);
> +	igt_plane_set_fb(plane, &fb_1);
> +	igt_plane_set_size(plane, fb->width, fb->height);
> +	igt_fb_set_position(&fb_1, plane, 0, 0);
> +	igt_fb_set_size(&fb_1, plane, fb->width, fb->height);
> +	igt_plane_replace_prop_blob(plane, IGT_PLANE_FB_DAMAGE_CLIPS,
> damage,
> +				    sizeof(*damage) * 2);
> +	crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
> +
> +	/* Restore the primary plane */
> +	igt_plane_set_fb(plane, fb);
> +	plane_commit(plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
> +
> +	/* Remove the fb created for this test */
> +	igt_remove_fb(pipe->display->drm_fd, &fb_1);
> +	igt_remove_fb(pipe->display->drm_fd, &fb_2);
> +
> +	free(damage);
> +}
> +
>  static void atomic_setup(igt_display_t *display, enum pipe pipe,
> igt_output_t *output, igt_plane_t *primary, struct igt_fb *fb)
>  {
>  	igt_output_set_pipe(output, pipe);
> @@ -1219,6 +1442,15 @@ igt_main
>  		atomic_invalid_params(pipe_obj, primary, output, &fb);
>  	}
>  
> +	igt_describe("Simple test cases to use FB_DAMAGE_CLIPS plane
> property");
> +	igt_subtest("atomic_plane_damage") {
> +		igt_require(igt_plane_has_prop(primary,
> IGT_PLANE_FB_DAMAGE_CLIPS));
> +
> +		atomic_setup(&display, pipe, output, primary, &fb);
> +
> +		atomic_plane_damage(pipe_obj, primary, &fb);
> +	}
> +
>  	igt_fixture {
>  		atomic_clear(&display, pipe, primary, output);
>  		igt_remove_fb(display.drm_fd, &fb);

BR,

Jouni Högander

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

end of thread, other threads:[~2021-11-23 11:33 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-09 19:55 [igt-dev] [PATCH i-g-t v3 0/3] Fix kms_psr2_sf test and add new test for FB_DAMAGE_CLIPS plane property Jeevan B
2021-11-09 19:55 ` [igt-dev] [PATCH i-g-t v3 1/3] lib/igt_aux: Rename igt_debug_manual_check and assert check if all is supplied Jeevan B
2021-11-10 12:03   ` Petri Latvala
2021-11-09 19:55 ` [igt-dev] [PATCH i-g-t v3 2/3] tests/kms_psr2_sf: Change testcase design Jeevan B
2021-11-10 12:04   ` Petri Latvala
2021-11-09 19:55 ` [igt-dev] [PATCH i-g-t v3 3/3] tests/kms_atomic: Add a new test case for FB_DAMAGE_CLIPS plane property Jeevan B
2021-11-23 11:33   ` Hogander, Jouni
2021-11-09 20:44 ` [igt-dev] ✓ Fi.CI.BAT: success for Fix kms_psr2_sf test and add new test for FB_DAMAGE_CLIPS plane property (rev3) Patchwork
2021-11-09 21:50 ` [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.