[igt-dev] [PATCH i-g-t v2] tests/kms_plane: Skip plane position test if primary ID > sprite ID

Jessica Zhang quic_jesszhan at quicinc.com
Wed Aug 9 22:24:02 UTC 2023


Currently, IGT assumes that the primary plane in
test_plane_position_with_output() will always be committed under the
sprite plane. This will not always hold true if the plane_id of the
primary plane is greater than the plane_id of the sprite as the DRM
framework will calculate a higher normalized-zpos for planes with larger
plane_id's if the zpos property isn't set [1].

Since this is a non-atomic test, we won't be able to explicitly set the
zpos property. So instead, skip testing the plane position test output for
cases where the primary plane ID is greater than the sprite plane ID

[1] https://elixir.bootlin.com/linux/v6.5-rc5/source/drivers/gpu/drm/drm_blend.c#L431

Signed-off-by: Jessica Zhang <quic_jesszhan at quicinc.com>
---
Changes in v2:
- Mention that plane-position-* is a non-atomic test
---
 tests/kms_plane.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/tests/kms_plane.c b/tests/kms_plane.c
index 67cff61d6cd1..15116b33b764 100644
--- a/tests/kms_plane.c
+++ b/tests/kms_plane.c
@@ -225,6 +225,12 @@ test_plane_position_with_output(data_t *data,
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 	sprite = igt_output_get_plane(output, plane);
 
+	if (primary->drm_plane->plane_id > sprite->drm_plane->plane_id) {
+		igt_info("primary plane ID (%d) > sprite plane ID (%d), skipping plane %d\n",
+				primary->drm_plane->plane_id, sprite->drm_plane->plane_id, plane);
+		return;
+	}
+
 	create_fb_for_mode(data, mode, &green, &rect, 1, &primary_fb);
 	igt_plane_set_fb(primary, &primary_fb);
 

---
base-commit: f12c2533941c9dfce43f455a02b7986605692b29
change-id: 20230808-kms-plane-fix-8b4e489e78b1

Best regards,
-- 
Jessica Zhang <quic_jesszhan at quicinc.com>



More information about the igt-dev mailing list