[i-g-t V6 02/41] tests/kms_writeback: Fix kms_writeback for VKMS

Bhanuprakash Modem bhanuprakash.modem at intel.com
Wed Apr 24 10:26:10 UTC 2024


From: Harry Wentland <harry.wentland at amd.com>

VKMS doesn't like us to add buffers with unknown fourcc
type. Other drivers might behave similarly. Make sure
we avoid creating 10bpc buffers if they are not supported.

Signed-off-by: Harry Wentland <harry.wentland at amd.com>
---
 tests/kms_writeback.c | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/tests/kms_writeback.c b/tests/kms_writeback.c
index 6cd685b37..e9509626a 100644
--- a/tests/kms_writeback.c
+++ b/tests/kms_writeback.c
@@ -133,21 +133,24 @@ static bool check_writeback_config(igt_display_t *display, igt_output_t *output,
 	height = override_mode.vdisplay;
 
 	for (i = 0; i < sizeof(fourcc) / sizeof(uint32_t); i++) {
+		plane = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
+
+		if (!igt_plane_has_format_mod(plane, fourcc[i], DRM_FORMAT_MOD_LINEAR))
+			continue;
 
 		ret = igt_create_fb(display->drm_fd, width, height,
-				    fourcc[i], modifier, &input_fb);
+				fourcc[i], modifier, &input_fb);
 		igt_assert(ret >= 0);
 
 		ret = igt_create_fb(display->drm_fd, width, height,
-				    fourcc[i], modifier, &output_fb);
+				fourcc[i], modifier, &output_fb);
 		igt_assert(ret >= 0);
 
-		plane = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 		igt_plane_set_fb(plane, &input_fb);
 		igt_output_set_writeback_fb(output, &output_fb);
 
 		ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_TEST_ONLY |
-						    DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
+						DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
 		igt_plane_set_fb(plane, NULL);
 		igt_remove_fb(display->drm_fd, &input_fb);
 		igt_remove_fb(display->drm_fd, &output_fb);
@@ -588,12 +591,14 @@ igt_main_args("b:c:f:dl", long_options, help_str, opt_handler, NULL)
 				      &input_fb);
 		igt_assert(fb_id >= 0);
 
-		fb_id = igt_create_fb(display.drm_fd, mode.hdisplay,
-				      mode.vdisplay,
-				      DRM_FORMAT_XRGB2101010,
-				      DRM_FORMAT_MOD_LINEAR,
-				      &input_fb_10bit);
-		igt_assert(fb_id >= 0);
+		if (igt_plane_has_format_mod(plane, DRM_FORMAT_XRGB2101010, DRM_FORMAT_MOD_LINEAR)) {
+			fb_id = igt_create_fb(display.drm_fd, mode.hdisplay,
+					mode.vdisplay,
+					DRM_FORMAT_XRGB2101010,
+					DRM_FORMAT_MOD_LINEAR,
+					&input_fb_10bit);
+			igt_assert(fb_id >= 0);
+		}
 
 		igt_plane_set_fb(plane, &input_fb);
 
-- 
2.43.2



More information about the Intel-gfx-trybot mailing list