[igt-dev] [PATCH i-g-t v2] tests/kms_hdr: Fix failure to read output_bpc

Stylon Wang stylon.wang at amd.com
Fri Oct 8 08:59:17 UTC 2021


The first commit with TEST_ONLY flag in bpc-switch subtests
could fail the test, because previous state can be with any bpc
or even wth no crtc assigned to the connector.

v2:
- Keep the test commit for its original purpose of checking
  if 512x512 plane size works for the hardware.
- Add new atomic commit so the setting of 8 bpc really takes effect.

Signed-off-by: Stylon Wang <stylon.wang at amd.com>
---
 tests/kms_hdr.c | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/tests/kms_hdr.c b/tests/kms_hdr.c
index 5b8529c8..273263db 100644
--- a/tests/kms_hdr.c
+++ b/tests/kms_hdr.c
@@ -213,16 +213,27 @@ static void test_bpc_switch_on_output(data_t *data, igt_output_t *output,
 
 		draw_hdr_pattern(&afb);
 
-		/* Start in 8bpc. */
+		/* Plane may be required to fit fullscreen. Check it here and allow
+		 * smaller plane size in following tests.
+		 */
 		igt_plane_set_fb(data->primary, &afb);
 		igt_plane_set_size(data->primary, data->w, data->h);
-		igt_output_set_prop_value(data->output, IGT_CONNECTOR_MAX_BPC, 8);
 		ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_TEST_ONLY, NULL);
 		if (!ret) {
 			data->w = afb.width;
 			data->h = afb.height;
 		}
 
+		/* Start in 8bpc. */
+		igt_output_set_prop_value(data->output, IGT_CONNECTOR_MAX_BPC, 8);
+		igt_display_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
+		/*
+		 * i915 driver doesn't expose max bpc as debugfs entry,
+		 * so limiting assert only for amd driver.
+		 */
+		if (is_amdgpu_device(data->fd))
+			assert_output_bpc(data, 8);
+
 		/*
 		 * amdgpu requires a primary plane when the CRTC is enabled.
 		 * However, some older Intel hardware (hsw) have scaling
@@ -232,13 +243,6 @@ static void test_bpc_switch_on_output(data_t *data, igt_output_t *output,
 		if (!is_amdgpu_device(data->fd))
 			igt_plane_set_fb(data->primary, NULL);
 
-		/*
-		 * i915 driver doesn't expose max bpc as debugfs entry,
-		 * so limiting assert only for amd driver.
-		 */
-		if (is_amdgpu_device(data->fd))
-			assert_output_bpc(data, 8);
-
 		/* Switch to 10bpc. */
 		igt_output_set_prop_value(data->output, IGT_CONNECTOR_MAX_BPC, 10);
 		igt_display_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
-- 
2.33.0



More information about the igt-dev mailing list