All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sowmiya S <sowmiya.s@intel.com>
To: igt-dev@lists.freedesktop.org
Cc: swati2.sharma@intel.com, suraj.kandpal@intel.com,
	Sowmiya S <sowmiya.s@intel.com>
Subject: [PATCH i-g-t v4 4/6] tests/kms_writeback: Refactor format handling in commit_and_dump_fb
Date: Wed,  3 Dec 2025 15:13:05 +0530	[thread overview]
Message-ID: <20251203094307.3187669-5-sowmiya.s@intel.com> (raw)
In-Reply-To: <20251203094307.3187669-1-sowmiya.s@intel.com>

Modify commit_and_dump_fb to select supported
formats if provided; Apply default format based
on the platform when none are specified.

v4: Add get_format to assign format based on platforms

Signed-off-by: Sowmiya S <sowmiya.s@intel.com>
---
 tests/kms_writeback.c | 38 +++++++++++++++++++++++++++++++++++---
 1 file changed, 35 insertions(+), 3 deletions(-)

diff --git a/tests/kms_writeback.c b/tests/kms_writeback.c
index 473f6c58c..6725f5ea3 100644
--- a/tests/kms_writeback.c
+++ b/tests/kms_writeback.c
@@ -101,6 +101,13 @@ const uint32_t fourcc[] = {
 	DRM_FORMAT_XBGR2101010,
 };
 
+static uint32_t get_format(igt_display_t *display)
+{
+	if (is_intel_device(display->drm_fd))
+		return DRM_FORMAT_XBGR8888;
+	return DRM_FORMAT_XRGB8888;
+}
+
 static bool check_writeback_config(igt_display_t *display, igt_output_t *output,
 				    drmModeModeInfo override_mode)
 {
@@ -446,7 +453,7 @@ static void do_single_commit(igt_output_t *output, igt_plane_t *plane, igt_fb_t
 }
 
 static void commit_and_dump_fb(igt_display_t *display, igt_output_t *output, igt_plane_t *plane,
-			        igt_fb_t *input_fb, drmModeModeInfo *mode)
+				igt_fb_t *input_fb, drmModeModeInfo *mode)
 {
 	cairo_surface_t *fb_surface_out;
 	char filepath_out[PATH_MAX];
@@ -455,12 +462,37 @@ static void commit_and_dump_fb(igt_display_t *display, igt_output_t *output, igt
 	char *file_name;
 	unsigned int fb_id;
 	igt_fb_t output_fb;
+	uint32_t format;
 
 	path_name = getenv("IGT_FRAME_DUMP_PATH");
 	file_name = getenv("FRAME_PNG_FILE_NAME");
 
+	if (!data.wb_fmt) {
+		format = get_format(display);
+	} else {
+		drmModePropertyBlobRes *formats_blob;
+
+		formats_blob = igt_get_writeback_formats_blob(output);
+		igt_assert_f(formats_blob, "No writeback pixel formats\n");
+		igt_assert(!(formats_blob->length % 4));
+		for (int i = 0; i < formats_blob->length; i++) {
+			format = ((uint32_t *)formats_blob->data)[i];
+			// Skip zero or unknown formats
+			if (format == 0 || strcmp(igt_format_str(format), "invalid") == 0) {
+				format = 0;
+				continue;
+			}
+			igt_debug("Supported writeback format: %s\n", igt_format_str(format));
+			if (format == data.format)
+				break;
+			format = 0;
+		}
+		drmModeFreePropertyBlob(formats_blob);
+	}
+	igt_assert_f(format, "Given format not supported\n");
+
 	fb_id = igt_create_fb(display->drm_fd, mode->hdisplay, mode->vdisplay,
-			      data.wb_fmt ? data.format : DRM_FORMAT_XRGB8888,
+			      format,
 			      igt_fb_mod_to_tiling(0), &output_fb);
 	igt_require(fb_id > 0);
 
@@ -583,7 +615,7 @@ igt_main_args("b:c:f:dl", long_options, help_str, opt_handler, NULL)
 
 		fb_id = igt_create_fb(display.drm_fd, mode.hdisplay,
 				      mode.vdisplay,
-				      DRM_FORMAT_XRGB8888,
+				      get_format(&display),
 				      DRM_FORMAT_MOD_LINEAR,
 				      &input_fb);
 		igt_assert(fb_id >= 0);
-- 
2.43.0


  parent reply	other threads:[~2025-12-03  9:25 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-03  9:43 [PATCH i-g-t v4 0/6] Add writeback changes for intel-supported formats Sowmiya S
2025-12-03  9:43 ` [PATCH i-g-t v4 1/6] tests/kms_writeback: Add support for intel-specific formats Sowmiya S
2026-01-08  5:14   ` Kandpal, Suraj
2025-12-03  9:43 ` [PATCH i-g-t v4 2/6] lib/igt_fb: Validate supported formats for crc calculation Sowmiya S
2026-01-08  5:16   ` Kandpal, Suraj
2025-12-03  9:43 ` [PATCH i-g-t v4 3/6] tests/kms_writeback: Add intel specific check Sowmiya S
2026-01-08  5:18   ` Kandpal, Suraj
2026-01-08  9:35     ` S, Sowmiya
2025-12-03  9:43 ` Sowmiya S [this message]
2026-01-08  5:13   ` [PATCH i-g-t v4 4/6] tests/kms_writeback: Refactor format handling in commit_and_dump_fb Kandpal, Suraj
2026-01-08  9:34     ` S, Sowmiya
2025-12-03  9:43 ` [PATCH i-g-t v4 5/6] tests/kms_writeback: Refactor writeback-fb-id subtest Sowmiya S
2026-01-08  5:25   ` Kandpal, Suraj
2026-01-12  8:56   ` Kamil Konieczny
2026-01-12 15:54     ` S, Sowmiya
2025-12-03  9:43 ` [PATCH i-g-t v4 6/6] tests/kms_writeback: Refactor writeback-check-output subtest Sowmiya S
2026-01-08  5:31   ` Kandpal, Suraj
2025-12-03 10:57 ` ✗ Xe.CI.BAT: failure for Add writeback changes for intel-supported formats (rev4) Patchwork
2025-12-03 10:59 ` ✗ i915.CI.BAT: " Patchwork
2025-12-03 12:36 ` ✓ Xe.CI.Full: success " Patchwork
2025-12-04 23:07 ` [PATCH i-g-t v4 0/6] Add writeback changes for intel-supported formats Alex Hung

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251203094307.3187669-5-sowmiya.s@intel.com \
    --to=sowmiya.s@intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=suraj.kandpal@intel.com \
    --cc=swati2.sharma@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.