All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t v4 0/3] Fix kms_psr2_sf test and add new test for FB_DAMAGE_CLIPS plane property
@ 2021-11-25 21:46 Jeevan B
  2021-11-25 21:46 ` [igt-dev] [PATCH i-g-t v4 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; 8+ messages in thread
From: Jeevan B @ 2021-11-25 21:46 UTC (permalink / raw)
  To: igt-dev; +Cc: 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       | 219 +++++++++++++++++++++++++++++++++++++++
 6 files changed, 242 insertions(+), 20 deletions(-)

-- 
2.19.1

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

* [igt-dev] [PATCH i-g-t v4 1/3] lib/igt_aux: Rename igt_debug_manual_check and assert check if all is supplied
  2021-11-25 21:46 [igt-dev] [PATCH i-g-t v4 0/3] Fix kms_psr2_sf test and add new test for FB_DAMAGE_CLIPS plane property Jeevan B
@ 2021-11-25 21:46 ` Jeevan B
  2021-11-25 21:46 ` [igt-dev] [PATCH i-g-t v4 2/3] tests/kms_psr2_sf: Change testcase design Jeevan B
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Jeevan B @ 2021-11-25 21:46 UTC (permalink / raw)
  To: igt-dev; +Cc: 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>
Reviewed-by: Petri Latvala <petri.latvala@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..c247a1aa 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 function 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 25f7676a..ee52ffcc 100644
--- a/tests/i915/kms_dsc.c
+++ b/tests/i915/kms_dsc.c
@@ -73,7 +73,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] 8+ messages in thread

* [igt-dev] [PATCH i-g-t v4 2/3] tests/kms_psr2_sf: Change testcase design
  2021-11-25 21:46 [igt-dev] [PATCH i-g-t v4 0/3] Fix kms_psr2_sf test and add new test for FB_DAMAGE_CLIPS plane property Jeevan B
  2021-11-25 21:46 ` [igt-dev] [PATCH i-g-t v4 1/3] lib/igt_aux: Rename igt_debug_manual_check and assert check if all is supplied Jeevan B
@ 2021-11-25 21:46 ` Jeevan B
  2021-11-25 21:46 ` [igt-dev] [PATCH i-g-t v4 3/3] tests/kms_atomic: Add a new test case for FB_DAMAGE_CLIPS plane property Jeevan B
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Jeevan B @ 2021-11-25 21:46 UTC (permalink / raw)
  To: igt-dev; +Cc: petri.latvala

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 related	[flat|nested] 8+ messages in thread

* [igt-dev] [PATCH i-g-t v4 3/3] tests/kms_atomic: Add a new test case for FB_DAMAGE_CLIPS plane property
  2021-11-25 21:46 [igt-dev] [PATCH i-g-t v4 0/3] Fix kms_psr2_sf test and add new test for FB_DAMAGE_CLIPS plane property Jeevan B
  2021-11-25 21:46 ` [igt-dev] [PATCH i-g-t v4 1/3] lib/igt_aux: Rename igt_debug_manual_check and assert check if all is supplied Jeevan B
  2021-11-25 21:46 ` [igt-dev] [PATCH i-g-t v4 2/3] tests/kms_psr2_sf: Change testcase design Jeevan B
@ 2021-11-25 21:46 ` Jeevan B
  2021-12-01 18:33   ` B, Jeevan
  2021-11-25 22:18 ` [igt-dev] ✓ Fi.CI.BAT: success for Fix kms_psr2_sf test and add new test for FB_DAMAGE_CLIPS plane property (rev4) Patchwork
  2021-11-26  5:02 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  4 siblings, 1 reply; 8+ messages in thread
From: Jeevan B @ 2021-11-25 21:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Deepak Rawat, petri.latvala

From: Deepak Rawat <drawat@vmware.com>

Some simple test cases to use FB_DAMAGE_CLIPS plane property.
Issue a plane update with damage with a clips on different scenarios
and verify the state.

v2: use drm_mode_rect instead of local struct and array instead of malloc.

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

diff --git a/tests/kms_atomic.c b/tests/kms_atomic.c
index 5295c8f5..253829f2 100644
--- a/tests/kms_atomic.c
+++ b/tests/kms_atomic.c
@@ -62,6 +62,17 @@ enum kms_atomic_check_relax {
 	PLANE_RELAX_FB = (1 << 1)
 };
 
+static inline int damage_rect_width(struct drm_mode_rect *r)
+{
+	return r->x2 - r->x1;
+}
+
+static inline int damage_rect_height(struct drm_mode_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)
@@ -1053,6 +1064,205 @@ 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 drm_mode_rect damage[2];
+	struct igt_fb fb_1, fb_2;
+	cairo_t *cr_1, *cr_2;
+
+	/* 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);
+}
+
 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);
@@ -1212,6 +1422,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] 8+ 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 (rev4)
  2021-11-25 21:46 [igt-dev] [PATCH i-g-t v4 0/3] Fix kms_psr2_sf test and add new test for FB_DAMAGE_CLIPS plane property Jeevan B
                   ` (2 preceding siblings ...)
  2021-11-25 21:46 ` [igt-dev] [PATCH i-g-t v4 3/3] tests/kms_atomic: Add a new test case for FB_DAMAGE_CLIPS plane property Jeevan B
@ 2021-11-25 22:18 ` Patchwork
  2021-11-26  5:02 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  4 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2021-11-25 22:18 UTC (permalink / raw)
  To: Jeevan B; +Cc: igt-dev

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

== Series Details ==

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

== Summary ==

CI Bug Log - changes from CI_DRM_10928 -> IGTPW_6437
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (41 -> 33)
------------------------------

  Additional (1): fi-tgl-u2 
  Missing    (9): fi-bxt-dsi bat-dg1-6 bat-dg1-5 fi-bsw-cyan fi-ilk-650 bat-adlp-6 fi-bdw-samus bat-jsl-2 bat-jsl-1 

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

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

### IGT changes ###

#### Issues hit ####

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

  * igt@gem_exec_suspend@basic-s0:
    - fi-tgl-u2:          NOTRUN -> [FAIL][2] ([i915#1888])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/fi-tgl-u2/igt@gem_exec_suspend@basic-s0.html

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

  * igt@gem_lmem_swapping@verify-random:
    - fi-tgl-u2:          NOTRUN -> [SKIP][4] ([i915#4613]) +3 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/fi-tgl-u2/igt@gem_lmem_swapping@verify-random.html

  * igt@i915_selftest@live@gt_pm:
    - fi-kbl-soraka:      NOTRUN -> [DMESG-FAIL][5] ([i915#1886] / [i915#2291])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html

  * igt@kms_chamelium@dp-hpd-fast:
    - fi-tgl-u2:          NOTRUN -> [SKIP][6] ([fdo#109284] / [fdo#111827]) +8 similar issues
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/fi-tgl-u2/igt@kms_chamelium@dp-hpd-fast.html

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

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

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d:
    - fi-kbl-soraka:      NOTRUN -> [SKIP][9] ([fdo#109271] / [i915#533])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/fi-kbl-soraka/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d.html

  * igt@kms_psr@primary_page_flip:
    - fi-skl-6600u:       [PASS][10] -> [FAIL][11] ([i915#4547])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10928/fi-skl-6600u/igt@kms_psr@primary_page_flip.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/fi-skl-6600u/igt@kms_psr@primary_page_flip.html

  * igt@prime_vgem@basic-userptr:
    - fi-tgl-u2:          NOTRUN -> [SKIP][12] ([i915#3301])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/fi-tgl-u2/igt@prime_vgem@basic-userptr.html
    - fi-kbl-soraka:      NOTRUN -> [SKIP][13] ([fdo#109271])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/fi-kbl-soraka/igt@prime_vgem@basic-userptr.html

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

  
#### Possible fixes ####

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

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-b:
    - fi-cfl-8109u:       [DMESG-WARN][18] ([i915#295]) -> [PASS][19] +12 similar issues
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10928/fi-cfl-8109u/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-b.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/fi-cfl-8109u/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-b.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-c:
    - fi-kbl-soraka:      [INCOMPLETE][20] -> [PASS][21]
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10928/fi-kbl-soraka/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-c.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/fi-kbl-soraka/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-c.html

  
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1602]: https://gitlab.freedesktop.org/drm/intel/issues/1602
  [i915#1886]: https://gitlab.freedesktop.org/drm/intel/issues/1886
  [i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2291]: https://gitlab.freedesktop.org/drm/intel/issues/2291
  [i915#2426]: https://gitlab.freedesktop.org/drm/intel/issues/2426
  [i915#295]: https://gitlab.freedesktop.org/drm/intel/issues/295
  [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
  [i915#3363]: https://gitlab.freedesktop.org/drm/intel/issues/3363
  [i915#3921]: https://gitlab.freedesktop.org/drm/intel/issues/3921
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
  [i915#4547]: https://gitlab.freedesktop.org/drm/intel/issues/4547
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533


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

  * CI: CI-20190529 -> None
  * IGT: IGT_6291 -> IGTPW_6437

  CI-20190529: 20190529
  CI_DRM_10928: 3bf56d24d381c492c14d093554d975b6a529784b @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_6437: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/index.html
  IGT_6291: 9ff3844d8c1fee8d8736d888f16223c4789fb69f @ 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_6437/index.html

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

^ permalink raw reply	[flat|nested] 8+ 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 (rev4)
  2021-11-25 21:46 [igt-dev] [PATCH i-g-t v4 0/3] Fix kms_psr2_sf test and add new test for FB_DAMAGE_CLIPS plane property Jeevan B
                   ` (3 preceding siblings ...)
  2021-11-25 22:18 ` [igt-dev] ✓ Fi.CI.BAT: success for Fix kms_psr2_sf test and add new test for FB_DAMAGE_CLIPS plane property (rev4) Patchwork
@ 2021-11-26  5:02 ` Patchwork
  4 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2021-11-26  5:02 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 (rev4)
URL   : https://patchwork.freedesktop.org/series/94883/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_10928_full -> IGTPW_6437_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

  Missing    (4): pig-skl-6260u pig-kbl-iris shard-rkl pig-glk-j5005 

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

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

### IGT changes ###

#### Possible regressions ####

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

  
New tests
---------

  New tests have been introduced between CI_DRM_10928_full and IGTPW_6437_full:

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

  * igt@kms_atomic@atomic_plane_damage:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 0.26] 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 :
    - Exec time: [None] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@feature_discovery@display-2x:
    - shard-tglb:         NOTRUN -> [SKIP][3] ([i915#1839])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb7/igt@feature_discovery@display-2x.html

  * igt@feature_discovery@psr2:
    - shard-iclb:         NOTRUN -> [SKIP][4] ([i915#658])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb7/igt@feature_discovery@psr2.html

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

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

  * igt@gem_eio@unwedge-stress:
    - shard-iclb:         [PASS][7] -> [TIMEOUT][8] ([i915#2481] / [i915#3070])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10928/shard-iclb5/igt@gem_eio@unwedge-stress.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb2/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_balancer@parallel-contexts:
    - shard-tglb:         NOTRUN -> [SKIP][9] ([i915#4525])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb8/igt@gem_exec_balancer@parallel-contexts.html
    - shard-iclb:         NOTRUN -> [SKIP][10] ([i915#4525])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb7/igt@gem_exec_balancer@parallel-contexts.html

  * igt@gem_exec_capture@pi@vcs1:
    - shard-tglb:         [PASS][11] -> [INCOMPLETE][12] ([i915#3371])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10928/shard-tglb2/igt@gem_exec_capture@pi@vcs1.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb5/igt@gem_exec_capture@pi@vcs1.html

  * igt@gem_exec_fair@basic-none@vecs0:
    - shard-kbl:          [PASS][13] -> [FAIL][14] ([i915#2842]) +1 similar issue
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10928/shard-kbl1/igt@gem_exec_fair@basic-none@vecs0.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-kbl2/igt@gem_exec_fair@basic-none@vecs0.html

  * igt@gem_exec_fair@basic-pace-solo@rcs0:
    - shard-iclb:         NOTRUN -> [FAIL][15] ([i915#2842]) +1 similar issue
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb8/igt@gem_exec_fair@basic-pace-solo@rcs0.html
    - shard-glk:          NOTRUN -> [FAIL][16] ([i915#2842])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-glk3/igt@gem_exec_fair@basic-pace-solo@rcs0.html
    - shard-tglb:         NOTRUN -> [FAIL][17] ([i915#2842])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb8/igt@gem_exec_fair@basic-pace-solo@rcs0.html

  * igt@gem_exec_fair@basic-pace@bcs0:
    - shard-tglb:         [PASS][18] -> [FAIL][19] ([i915#2842]) +2 similar issues
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10928/shard-tglb5/igt@gem_exec_fair@basic-pace@bcs0.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb2/igt@gem_exec_fair@basic-pace@bcs0.html

  * igt@gem_exec_fair@basic-throttle@rcs0:
    - shard-glk:          [PASS][20] -> [FAIL][21] ([i915#2842]) +1 similar issue
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10928/shard-glk8/igt@gem_exec_fair@basic-throttle@rcs0.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-glk6/igt@gem_exec_fair@basic-throttle@rcs0.html

  * igt@gem_exec_params@secure-non-root:
    - shard-tglb:         NOTRUN -> [SKIP][22] ([fdo#112283])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb1/igt@gem_exec_params@secure-non-root.html

  * igt@gem_exec_suspend@basic-s3:
    - shard-tglb:         [PASS][23] -> [INCOMPLETE][24] ([i915#456])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10928/shard-tglb3/igt@gem_exec_suspend@basic-s3.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb7/igt@gem_exec_suspend@basic-s3.html

  * igt@gem_lmem_swapping@heavy-random:
    - shard-apl:          NOTRUN -> [SKIP][25] ([fdo#109271] / [i915#4613]) +1 similar issue
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-apl6/igt@gem_lmem_swapping@heavy-random.html

  * igt@gem_lmem_swapping@random-engines:
    - shard-iclb:         NOTRUN -> [SKIP][26] ([i915#4613]) +1 similar issue
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb3/igt@gem_lmem_swapping@random-engines.html
    - shard-glk:          NOTRUN -> [SKIP][27] ([fdo#109271] / [i915#4613]) +1 similar issue
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-glk7/igt@gem_lmem_swapping@random-engines.html
    - shard-kbl:          NOTRUN -> [SKIP][28] ([fdo#109271] / [i915#4613]) +1 similar issue
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-kbl7/igt@gem_lmem_swapping@random-engines.html

  * igt@gem_lmem_swapping@verify-random:
    - shard-tglb:         NOTRUN -> [SKIP][29] ([i915#4613]) +2 similar issues
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb5/igt@gem_lmem_swapping@verify-random.html

  * igt@gem_pxp@reject-modify-context-protection-off-2:
    - shard-tglb:         NOTRUN -> [SKIP][30] ([i915#4270]) +3 similar issues
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb1/igt@gem_pxp@reject-modify-context-protection-off-2.html

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

  * igt@gem_render_copy@y-tiled-mc-ccs-to-vebox-y-tiled:
    - shard-iclb:         NOTRUN -> [SKIP][32] ([i915#768])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb6/igt@gem_render_copy@y-tiled-mc-ccs-to-vebox-y-tiled.html

  * igt@gem_userptr_blits@input-checking:
    - shard-apl:          NOTRUN -> [DMESG-WARN][33] ([i915#3002])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-apl8/igt@gem_userptr_blits@input-checking.html

  * igt@gem_userptr_blits@readonly-unsync:
    - shard-tglb:         NOTRUN -> [SKIP][34] ([i915#3297])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb7/igt@gem_userptr_blits@readonly-unsync.html
    - shard-iclb:         NOTRUN -> [SKIP][35] ([i915#3297])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb6/igt@gem_userptr_blits@readonly-unsync.html

  * igt@gen7_exec_parse@oacontrol-tracking:
    - shard-tglb:         NOTRUN -> [SKIP][36] ([fdo#109289]) +1 similar issue
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb3/igt@gen7_exec_parse@oacontrol-tracking.html

  * igt@gen9_exec_parse@bb-large:
    - shard-tglb:         NOTRUN -> [SKIP][37] ([i915#2856]) +1 similar issue
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb5/igt@gen9_exec_parse@bb-large.html

  * igt@gen9_exec_parse@bb-start-far:
    - shard-iclb:         NOTRUN -> [SKIP][38] ([i915#2856])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb4/igt@gen9_exec_parse@bb-start-far.html

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

  * igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-dp:
    - shard-kbl:          NOTRUN -> [SKIP][40] ([fdo#109271] / [i915#1937])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-kbl4/igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-dp.html

  * igt@i915_pm_rc6_residency@rc6-fence:
    - shard-tglb:         NOTRUN -> [WARN][41] ([i915#2681] / [i915#2684])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb7/igt@i915_pm_rc6_residency@rc6-fence.html
    - shard-iclb:         NOTRUN -> [WARN][42] ([i915#1804] / [i915#2684])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb4/igt@i915_pm_rc6_residency@rc6-fence.html

  * igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait:
    - shard-tglb:         NOTRUN -> [SKIP][43] ([fdo#111644] / [i915#1397] / [i915#2411]) +1 similar issue
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb8/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html
    - shard-iclb:         NOTRUN -> [SKIP][44] ([fdo#110892])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb5/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html

  * igt@i915_suspend@forcewake:
    - shard-tglb:         [PASS][45] -> [INCOMPLETE][46] ([i915#2411] / [i915#456])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10928/shard-tglb1/igt@i915_suspend@forcewake.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb7/igt@i915_suspend@forcewake.html

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

  * igt@kms_atomic@plane-primary-overlay-mutable-zpos:
    - shard-tglb:         NOTRUN -> [SKIP][48] ([i915#404])
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb8/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html

  * igt@kms_big_fb@linear-16bpp-rotate-270:
    - shard-tglb:         NOTRUN -> [SKIP][49] ([fdo#111614])
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb6/igt@kms_big_fb@linear-16bpp-rotate-270.html
    - shard-iclb:         NOTRUN -> [SKIP][50] ([fdo#110725] / [fdo#111614])
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb6/igt@kms_big_fb@linear-16bpp-rotate-270.html

  * igt@kms_big_fb@linear-32bpp-rotate-0:
    - shard-glk:          [PASS][51] -> [DMESG-WARN][52] ([i915#118]) +1 similar issue
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10928/shard-glk9/igt@kms_big_fb@linear-32bpp-rotate-0.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-glk3/igt@kms_big_fb@linear-32bpp-rotate-0.html

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

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
    - shard-snb:          NOTRUN -> [SKIP][54] ([fdo#109271]) +120 similar issues
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-snb4/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html

  * igt@kms_big_fb@yf-tiled-32bpp-rotate-0:
    - shard-tglb:         NOTRUN -> [SKIP][55] ([fdo#111615]) +3 similar issues
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb5/igt@kms_big_fb@yf-tiled-32bpp-rotate-0.html
    - shard-glk:          NOTRUN -> [DMESG-WARN][56] ([i915#118])
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-glk1/igt@kms_big_fb@yf-tiled-32bpp-rotate-0.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip:
    - shard-iclb:         NOTRUN -> [SKIP][57] ([fdo#110723])
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb8/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html

  * igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_mc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][58] ([i915#3689] / [i915#3886]) +6 similar issues
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb8/igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][59] ([i915#3689]) +2 similar issues
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb1/igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y_tiled_ccs.html

  * igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs:
    - shard-glk:          NOTRUN -> [SKIP][60] ([fdo#109271] / [i915#3886]) +4 similar issues
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-glk6/igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs.html
    - shard-iclb:         NOTRUN -> [SKIP][61] ([fdo#109278] / [i915#3886]) +5 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb7/igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs.html
    - shard-kbl:          NOTRUN -> [SKIP][62] ([fdo#109271] / [i915#3886]) +5 similar issues
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-kbl4/igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-a-random-ccs-data-yf_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][63] ([fdo#111615] / [i915#3689]) +3 similar issues
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb3/igt@kms_ccs@pipe-a-random-ccs-data-yf_tiled_ccs.html

  * igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc:
    - shard-apl:          NOTRUN -> [SKIP][64] ([fdo#109271] / [i915#3886]) +7 similar issues
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-apl6/igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-d-ccs-on-another-bo-yf_tiled_ccs:
    - shard-iclb:         NOTRUN -> [SKIP][65] ([fdo#109278]) +13 similar issues
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb7/igt@kms_ccs@pipe-d-ccs-on-another-bo-yf_tiled_ccs.html

  * igt@kms_cdclk@mode-transition:
    - shard-tglb:         NOTRUN -> [SKIP][66] ([i915#3742])
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb8/igt@kms_cdclk@mode-transition.html

  * igt@kms_chamelium@dp-mode-timings:
    - shard-apl:          NOTRUN -> [SKIP][67] ([fdo#109271] / [fdo#111827]) +12 similar issues
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-apl4/igt@kms_chamelium@dp-mode-timings.html

  * igt@kms_chamelium@hdmi-hpd:
    - shard-glk:          NOTRUN -> [SKIP][68] ([fdo#109271] / [fdo#111827]) +4 similar issues
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-glk3/igt@kms_chamelium@hdmi-hpd.html

  * igt@kms_chamelium@hdmi-hpd-enable-disable-mode:
    - shard-iclb:         NOTRUN -> [SKIP][69] ([fdo#109284] / [fdo#111827]) +4 similar issues
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb2/igt@kms_chamelium@hdmi-hpd-enable-disable-mode.html

  * igt@kms_chamelium@hdmi-mode-timings:
    - shard-snb:          NOTRUN -> [SKIP][70] ([fdo#109271] / [fdo#111827]) +4 similar issues
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-snb6/igt@kms_chamelium@hdmi-mode-timings.html
    - shard-kbl:          NOTRUN -> [SKIP][71] ([fdo#109271] / [fdo#111827]) +5 similar issues
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-kbl4/igt@kms_chamelium@hdmi-mode-timings.html

  * igt@kms_color_chamelium@pipe-d-ctm-0-25:
    - shard-tglb:         NOTRUN -> [SKIP][72] ([fdo#109284] / [fdo#111827]) +12 similar issues
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb3/igt@kms_color_chamelium@pipe-d-ctm-0-25.html

  * igt@kms_content_protection@atomic-dpms:
    - shard-apl:          NOTRUN -> [TIMEOUT][73] ([i915#1319])
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-apl8/igt@kms_content_protection@atomic-dpms.html

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

  * igt@kms_cursor_crc@pipe-a-cursor-32x32-random:
    - shard-tglb:         NOTRUN -> [SKIP][75] ([i915#3319])
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb1/igt@kms_cursor_crc@pipe-a-cursor-32x32-random.html

  * igt@kms_cursor_crc@pipe-a-cursor-suspend:
    - shard-kbl:          [PASS][76] -> [DMESG-WARN][77] ([i915#180]) +2 similar issues
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10928/shard-kbl3/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-kbl1/igt@kms_cursor_crc@pipe-a-cursor-suspend.html

  * igt@kms_cursor_crc@pipe-b-cursor-32x10-sliding:
    - shard-tglb:         NOTRUN -> [SKIP][78] ([i915#3359]) +3 similar issues
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb3/igt@kms_cursor_crc@pipe-b-cursor-32x10-sliding.html

  * igt@kms_cursor_crc@pipe-b-cursor-512x512-onscreen:
    - shard-iclb:         NOTRUN -> [SKIP][79] ([fdo#109278] / [fdo#109279])
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb8/igt@kms_cursor_crc@pipe-b-cursor-512x512-onscreen.html

  * igt@kms_cursor_crc@pipe-d-cursor-256x256-onscreen:
    - shard-kbl:          NOTRUN -> [SKIP][80] ([fdo#109271]) +80 similar issues
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-kbl6/igt@kms_cursor_crc@pipe-d-cursor-256x256-onscreen.html

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

  * igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size:
    - shard-iclb:         NOTRUN -> [SKIP][82] ([fdo#109274] / [fdo#109278]) +1 similar issue
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb2/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size.html

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

  * igt@kms_dp_tiled_display@basic-test-pattern:
    - shard-iclb:         NOTRUN -> [SKIP][84] ([i915#426])
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb6/igt@kms_dp_tiled_display@basic-test-pattern.html
    - shard-tglb:         NOTRUN -> [SKIP][85] ([i915#426])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb6/igt@kms_dp_tiled_display@basic-test-pattern.html

  * igt@kms_dp_tiled_display@basic-test-pattern-with-chamelium:
    - shard-tglb:         NOTRUN -> [SKIP][86] ([i915#3528])
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb8/igt@kms_dp_tiled_display@basic-test-pattern-with-chamelium.html
    - shard-iclb:         NOTRUN -> [SKIP][87] ([i915#3528])
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb7/igt@kms_dp_tiled_display@basic-test-pattern-with-chamelium.html

  * igt@kms_flip@2x-flip-vs-fences:
    - shard-iclb:         NOTRUN -> [SKIP][88] ([fdo#109274])
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb6/igt@kms_flip@2x-flip-vs-fences.html

  * igt@kms_flip@flip-vs-suspend-interruptible@c-dp1:
    - shard-apl:          NOTRUN -> [DMESG-WARN][89] ([i915#180]) +2 similar issues
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-apl8/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile:
    - shard-iclb:         [PASS][90] -> [SKIP][91] ([i915#3701])
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10928/shard-iclb5/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile.html
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile:
    - shard-tglb:         NOTRUN -> [SKIP][92] ([i915#2587])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb1/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-plflip-blt:
    - shard-tglb:         NOTRUN -> [SKIP][93] ([fdo#111825]) +32 similar issues
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb7/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-plflip-blt.html

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

  * igt@kms_frontbuffer_tracking@fbc-suspend:
    - shard-apl:          [PASS][95] -> [DMESG-WARN][96] ([i915#180]) +2 similar issues
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10928/shard-apl8/igt@kms_frontbuffer_tracking@fbc-suspend.html
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-apl1/igt@kms_frontbuffer_tracking@fbc-suspend.html

  * igt@kms_hdr@static-swap:
    - shard-tglb:         NOTRUN -> [SKIP][97] ([i915#1187]) +1 similar issue
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb6/igt@kms_hdr@static-swap.html
    - shard-iclb:         NOTRUN -> [SKIP][98] ([i915#1187])
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb6/igt@kms_hdr@static-swap.html

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

  * igt@kms_plane_alpha_blend@pipe-a-alpha-7efc:
    - shard-apl:          NOTRUN -> [FAIL][100] ([fdo#108145] / [i915#265])
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-apl8/igt@kms_plane_alpha_blend@pipe-a-alpha-7efc.html

  * igt@kms_plane_cursor@pipe-d-viewport-size-256:
    - shard-glk:          NOTRUN -> [SKIP][101] ([fdo#109271]) +48 similar issues
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-glk9/igt@kms_plane_cursor@pipe-d-viewport-size-256.html

  * igt@kms_plane_lowres@pipe-a-tiling-y:
    - shard-glk:          [PASS][102] -> [DMESG-WARN][103] ([i915#118] / [i915#1888])
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10928/shard-glk6/igt@kms_plane_lowres@pipe-a-tiling-y.html
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-glk6/igt@kms_plane_lowres@pipe-a-tiling-y.html

  * igt@kms_plane_lowres@pipe-b-tiling-x:
    - shard-iclb:         NOTRUN -> [SKIP][104] ([i915#3536])
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb4/igt@kms_plane_lowres@pipe-b-tiling-x.html

  * igt@kms_plane_lowres@pipe-c-tiling-x:
    - shard-tglb:         NOTRUN -> [SKIP][105] ([i915#3536]) +2 similar issues
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb1/igt@kms_plane_lowres@pipe-c-tiling-x.html

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-yf:
    - shard-tglb:         NOTRUN -> [SKIP][106] ([fdo#111615] / [fdo#112054])
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb6/igt@kms_plane_multiple@atomic-pipe-b-tiling-yf.html

  * igt@kms_psr@psr2_cursor_mmap_cpu:
    - shard-tglb:         NOTRUN -> [FAIL][107] ([i915#132] / [i915#3467]) +1 similar issue
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb8/igt@kms_psr@psr2_cursor_mmap_cpu.html

  * igt@kms_psr@psr2_no_drrs:
    - shard-iclb:         NOTRUN -> [SKIP][108] ([fdo#109441])
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb5/igt@kms_psr@psr2_no_drrs.html

  * igt@kms_psr@psr2_primary_mmap_cpu:
    - shard-iclb:         [PASS][109] -> [SKIP][110] ([fdo#109441]) +1 similar issue
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10928/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb5/igt@kms_psr@psr2_primary_mmap_cpu.html

  * igt@kms_vrr@flip-basic:
    - shard-tglb:         NOTRUN -> [SKIP][111] ([fdo#109502])
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb6/igt@kms_vrr@flip-basic.html
    - shard-iclb:         NOTRUN -> [SKIP][112] ([fdo#109502])
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb6/igt@kms_vrr@flip-basic.html

  * igt@kms_writeback@writeback-invalid-parameters:
    - shard-tglb:         NOTRUN -> [SKIP][113] ([i915#2437])
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb5/igt@kms_writeback@writeback-invalid-parameters.html
    - shard-kbl:          NOTRUN -> [SKIP][114] ([fdo#109271] / [i915#2437])
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-kbl2/igt@kms_writeback@writeback-invalid-parameters.html
    - shard-apl:          NOTRUN -> [SKIP][115] ([fdo#109271] / [i915#2437])
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-apl8/igt@kms_writeback@writeback-invalid-parameters.html
    - shard-glk:          NOTRUN -> [SKIP][116] ([fdo#109271] / [i915#2437])
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-glk1/igt@kms_writeback@writeback-invalid-parameters.html
    - shard-iclb:         NOTRUN -> [SKIP][117] ([i915#2437])
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb2/igt@kms_writeback@writeback-invalid-parameters.html

  * igt@nouveau_crc@pipe-b-source-outp-inactive:
    - shard-iclb:         NOTRUN -> [SKIP][118] ([i915#2530])
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb2/igt@nouveau_crc@pipe-b-source-outp-inactive.html
    - shard-tglb:         NOTRUN -> [SKIP][119] ([i915#2530]) +1 similar issue
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb1/igt@nouveau_crc@pipe-b-source-outp-inactive.html

  * igt@prime_nv_api@i915_nv_reimport_twice_check_flink_name:
    - shard-apl:          NOTRUN -> [SKIP][120] ([fdo#109271]) +149 similar issues
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-apl8/igt@prime_nv_api@i915_nv_reimport_twice_check_flink_name.html
    - shard-iclb:         NOTRUN -> [SKIP][121] ([fdo#109291]) +1 similar issue
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb3/igt@prime_nv_api@i915_nv_reimport_twice_check_flink_name.html

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

  * igt@prime_vgem@coherency-gtt:
    - shard-tglb:         NOTRUN -> [SKIP][123] ([fdo#111656])
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb5/igt@prime_vgem@coherency-gtt.html

  * igt@sysfs_clients@fair-7:
    - shard-kbl:          NOTRUN -> [SKIP][124] ([fdo#109271] / [i915#2994])
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-kbl6/igt@sysfs_clients@fair-7.html

  * igt@sysfs_clients@sema-50:
    - shard-apl:          NOTRUN -> [SKIP][125] ([fdo#109271] / [i915#2994]) +1 similar issue
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-apl2/igt@sysfs_clients@sema-50.html

  * igt@sysfs_heartbeat_interval@mixed@rcs0:
    - shard-glk:          [PASS][126] -> [FAIL][127] ([i915#1731])
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10928/shard-glk3/igt@sysfs_heartbeat_interval@mixed@rcs0.html
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-glk6/igt@sysfs_heartbeat_interval@mixed@rcs0.html

  * igt@tools_test@sysfs_l3_parity:
    - shard-iclb:         NOTRUN -> [SKIP][128] ([fdo#109307])
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-iclb5/igt@tools_test@sysfs_l3_parity.html
    - shard-tglb:         NOTRUN -> [SKIP][129] ([fdo#109307])
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6437/shard-tglb1/igt@tools_test@sysfs_l3_parity.html

  
#### Possible fixes ####

  * igt@gem_eio@unwedge-stress:
    - shard-tglb:         [TIMEOUT][130] ([i915#3063] / [i915#3648]) -> [PASS][131]
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10928/shard-tglb8/igt@gem_eio@unwedge-stress.html
   [131]: https://in

== Logs ==

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

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

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

* Re: [igt-dev] [PATCH i-g-t v4 3/3] tests/kms_atomic: Add a new test case for FB_DAMAGE_CLIPS plane property
  2021-11-25 21:46 ` [igt-dev] [PATCH i-g-t v4 3/3] tests/kms_atomic: Add a new test case for FB_DAMAGE_CLIPS plane property Jeevan B
@ 2021-12-01 18:33   ` B, Jeevan
  2021-12-02  7:23     ` Hogander, Jouni
  0 siblings, 1 reply; 8+ messages in thread
From: B, Jeevan @ 2021-12-01 18:33 UTC (permalink / raw)
  To: igt-dev, Hogander, Jouni; +Cc: Deepak Rawat, Latvala, Petri

>-----Original Message-----
>From: B, Jeevan <jeevan.b@intel.com>
>Sent: Friday, November 26, 2021 3:17 AM
>To: igt-dev@lists.freedesktop.org
>Cc: Hogander, Jouni <jouni.hogander@intel.com>; Latvala, Petri
><petri.latvala@intel.com>; Deepak Rawat <drawat@vmware.com>; B, Jeevan
><jeevan.b@intel.com>
>Subject: [PATCH i-g-t v4 3/3] tests/kms_atomic: Add a new test case for
>FB_DAMAGE_CLIPS plane property
>
>From: Deepak Rawat <drawat@vmware.com>
>
>Some simple test cases to use FB_DAMAGE_CLIPS plane property.
>Issue a plane update with damage with a clips on different scenarios and verify
>the state.
>
>v2: use drm_mode_rect instead of local struct and array instead of malloc.
>
>Signed-off-by: Deepak Rawat <drawat@vmware.com>
>Signed-off-by: Jeevan B <jeevan.b@intel.com>

Hi Jouni, 

Regarding the function split. I tried to split the repeated code but as we are using different cairo surface and framebuffer 
on each different time. Its complex and would be confusing if we split, so please let me know if its ok to keep the code same. 

Thanks 
Jeevan B 

>---
> tests/kms_atomic.c | 219
>+++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 219 insertions(+)
>
>diff --git a/tests/kms_atomic.c b/tests/kms_atomic.c index 5295c8f5..253829f2
>100644
>--- a/tests/kms_atomic.c
>+++ b/tests/kms_atomic.c
>@@ -62,6 +62,17 @@ enum kms_atomic_check_relax {
> 	PLANE_RELAX_FB = (1 << 1)
> };
>
>+static inline int damage_rect_width(struct drm_mode_rect *r) {
>+	return r->x2 - r->x1;
>+}
>+
>+static inline int damage_rect_height(struct drm_mode_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) @@ -1053,6
>+1064,205 @@ 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 drm_mode_rect damage[2];
>+	struct igt_fb fb_1, fb_2;
>+	cairo_t *cr_1, *cr_2;
>+
>+	/* 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); }
>+
> 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);
>@@ -1212,6 +1422,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	[flat|nested] 8+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v4 3/3] tests/kms_atomic: Add a new test case for FB_DAMAGE_CLIPS plane property
  2021-12-01 18:33   ` B, Jeevan
@ 2021-12-02  7:23     ` Hogander, Jouni
  0 siblings, 0 replies; 8+ messages in thread
From: Hogander, Jouni @ 2021-12-02  7:23 UTC (permalink / raw)
  To: igt-dev, B, Jeevan; +Cc: drawat, Latvala, Petri

On Wed, 2021-12-01 at 18:33 +0000, B, Jeevan wrote:
> > -----Original Message-----
> > From: B, Jeevan <jeevan.b@intel.com>
> > Sent: Friday, November 26, 2021 3:17 AM
> > To: igt-dev@lists.freedesktop.org
> > Cc: Hogander, Jouni <jouni.hogander@intel.com>; Latvala, Petri
> > <petri.latvala@intel.com>; Deepak Rawat <drawat@vmware.com>; B,
> > Jeevan
> > <jeevan.b@intel.com>
> > Subject: [PATCH i-g-t v4 3/3] tests/kms_atomic: Add a new test case
> > for
> > FB_DAMAGE_CLIPS plane property
> > 
> > From: Deepak Rawat <drawat@vmware.com>
> > 
> > Some simple test cases to use FB_DAMAGE_CLIPS plane property.
> > Issue a plane update with damage with a clips on different
> > scenarios and verify
> > the state.
> > 
> > v2: use drm_mode_rect instead of local struct and array instead of
> > malloc.
> > 
> > Signed-off-by: Deepak Rawat <drawat@vmware.com>
> > Signed-off-by: Jeevan B <jeevan.b@intel.com>
> 
> Hi Jouni,
> 
> Regarding the function split. I tried to split the repeated code but
> as we are using different cairo surface and framebuffer
> on each different time. Its complex and would be confusing if we
> split, so please let me know if its ok to keep the code same.

Thank you for considering my comment:

Reviewed-by: Jouni Högander <jouni.hogander@intel.com>

> 
> Thanks
> Jeevan B
> 
> > ---
> > tests/kms_atomic.c | 219
> > +++++++++++++++++++++++++++++++++++++++++++++
> > 1 file changed, 219 insertions(+)
> > 
> > diff --git a/tests/kms_atomic.c b/tests/kms_atomic.c index
> > 5295c8f5..253829f2
> > 100644
> > --- a/tests/kms_atomic.c
> > +++ b/tests/kms_atomic.c
> > @@ -62,6 +62,17 @@ enum kms_atomic_check_relax {
> > PLANE_RELAX_FB = (1 << 1)
> > };
> > 
> > +static inline int damage_rect_width(struct drm_mode_rect *r) {
> > +return r->x2 - r->x1;
> > +}
> > +
> > +static inline int damage_rect_height(struct drm_mode_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) @@ -1053,6
> > +1064,205 @@ 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 drm_mode_rect damage[2];
> > +struct igt_fb fb_1, fb_2;
> > +cairo_t *cr_1, *cr_2;
> > +
> > +/* 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); }
> > +
> > 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);
> > @@ -1212,6 +1422,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	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2021-12-02  7:24 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-25 21:46 [igt-dev] [PATCH i-g-t v4 0/3] Fix kms_psr2_sf test and add new test for FB_DAMAGE_CLIPS plane property Jeevan B
2021-11-25 21:46 ` [igt-dev] [PATCH i-g-t v4 1/3] lib/igt_aux: Rename igt_debug_manual_check and assert check if all is supplied Jeevan B
2021-11-25 21:46 ` [igt-dev] [PATCH i-g-t v4 2/3] tests/kms_psr2_sf: Change testcase design Jeevan B
2021-11-25 21:46 ` [igt-dev] [PATCH i-g-t v4 3/3] tests/kms_atomic: Add a new test case for FB_DAMAGE_CLIPS plane property Jeevan B
2021-12-01 18:33   ` B, Jeevan
2021-12-02  7:23     ` Hogander, Jouni
2021-11-25 22:18 ` [igt-dev] ✓ Fi.CI.BAT: success for Fix kms_psr2_sf test and add new test for FB_DAMAGE_CLIPS plane property (rev4) Patchwork
2021-11-26  5:02 ` [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.