[PATCH V7 02/37] tests/kms_writeback: Fix kms_writeback for VKMS
Alex Hung
alex.hung at amd.com
Wed Mar 26 23:35:34 UTC 2025
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 | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)
diff --git a/tests/kms_writeback.c b/tests/kms_writeback.c
index 05680837e..e3671c59b 100644
--- a/tests/kms_writeback.c
+++ b/tests/kms_writeback.c
@@ -131,6 +131,10 @@ 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);
@@ -140,7 +144,6 @@ static bool check_writeback_config(igt_display_t *display, igt_output_t *output,
fourcc[i], modifier, &output_fb);
igt_assert_lte(0, ret);
- 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);
@@ -590,12 +593,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.0
More information about the igt-dev
mailing list