[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