From: Maarten Lankhorst <dev@lankhorst.se>
To: igt-dev@lists.freedesktop.org
Cc: Maarten Lankhorst <dev@lankhorst.se>
Subject: [PATCH i-g-t 4/4] tests/kms_color: Add background-color subtest to test the BACKGROUND_COLOR property
Date: Tue, 5 May 2026 21:44:23 +0200 [thread overview]
Message-ID: <20260505194419.500600-8-dev@lankhorst.se> (raw)
In-Reply-To: <20260505194419.500600-5-dev@lankhorst.se>
The BACKGROUND_COLOR crtc property has recently been added.
Add some intel CRC tests to verify this property.
Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
---
tests/kms_color.c | 79 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 79 insertions(+)
diff --git a/tests/kms_color.c b/tests/kms_color.c
index 565edb2dc9..e445c8b002 100644
--- a/tests/kms_color.c
+++ b/tests/kms_color.c
@@ -46,6 +46,10 @@
* Description: Verify that setting the legacy gamma LUT resets the gamma LUT
* set through GAMMA_LUT property
*
+ * SUBTEST: background-color
+ * Description: Verify that a 8-bit background color has the same CRC
+ * as a 8-bit primary plane in the same color.
+ *
* SUBTEST: ctm-%s
* Description: Check the color transformation %arg[1]
*
@@ -957,6 +961,68 @@ run_deep_color_tests_for_crtc(data_t *data, igt_crtc_t *crtc)
test_cleanup(data);
}
+static void
+run_background_color_tests_for_crtc(data_t *data, igt_crtc_t *crtc)
+{
+ igt_output_t *output;
+ struct igt_fb fb;
+ typeof(data->mode) mode;
+ uint64_t black = DRM_ARGB64_PREP(0xffff, 0, 0, 0);
+ uint64_t red = DRM_ARGB64_PREP(0xffff, 0xffff, 0, 0);
+ uint64_t green = DRM_ARGB64_PREP(0xffff, 0, 0xffff, 0);
+ uint64_t blue = DRM_ARGB64_PREP(0xffff, 0, 0, 0xffff);
+ uint64_t colors[] = { black, red, green, blue };
+
+ igt_require(igt_crtc_has_prop(crtc, IGT_CRTC_BACKGROUND_COLOR));
+ test_setup(data, crtc);
+
+ output = igt_get_single_output_for_crtc(crtc);
+ igt_require(output);
+
+ mode = igt_output_get_mode(output);
+
+ data->color_depth = 8;
+ data->drm_format = DRM_FORMAT_XRGB8888;
+ data->output = output;
+ data->mode = NULL;
+
+ igt_create_fb(data->drm_fd, mode->hdisplay, mode->vdisplay,
+ data->drm_format, DRM_FORMAT_MOD_LINEAR, &fb);
+
+ igt_output_set_crtc(output, crtc);
+
+ for (unsigned long i = 0; i < ARRAY_SIZE(colors); i++) {
+ igt_crc_t plane_crc, bg_crc;
+
+ uint64_t color = colors[i];
+ uint32_t xrgb =
+ (DRM_ARGB64_GETA_BPCS(color, 8) << 24) |
+ (DRM_ARGB64_GETR_BPCS(color, 8) << 16) |
+ (DRM_ARGB64_GETG_BPCS(color, 8) << 8) |
+ (DRM_ARGB64_GETB_BPCS(color, 8));
+
+ /*
+ * Set a different background color and a fully opaque plane
+ * with the correct color.
+ */
+ igt_draw_fill_fb(data->drm_fd, &fb, xrgb);
+ igt_plane_set_fb(data->primary, &fb);
+ igt_crtc_set_prop_value(crtc, IGT_CRTC_BACKGROUND_COLOR, colors[i ^ 1]);
+ igt_display_commit2(&data->display, COMMIT_ATOMIC);
+ igt_pipe_crc_collect_crc(data->pipe_crc, &plane_crc);
+
+ igt_plane_set_fb(data->primary, NULL);
+ igt_crtc_set_prop_value(crtc, IGT_CRTC_BACKGROUND_COLOR, color);
+ igt_display_commit2(&data->display, COMMIT_ATOMIC);
+ igt_pipe_crc_collect_crc(data->pipe_crc, &bg_crc);
+
+ igt_assert_crc_equal(&plane_crc, &bg_crc);
+ }
+
+
+ test_cleanup(data);
+}
+
static void
run_invalid_tests_for_pipe(data_t *data)
{
@@ -1165,6 +1231,19 @@ run_tests_for_pipe(data_t *data)
break;
}
}
+
+ igt_describe("Verify that the background color is set correctly");
+ igt_subtest_with_dynamic("background-color") {
+ for_each_crtc(&data->display, crtc) {
+ igt_dynamic_f("pipe-%s-background-color", igt_crtc_name(crtc)) {
+ run_background_color_tests_for_crtc(data, crtc);
+
+ if (igt_run_in_simulation())
+ break;
+ }
+
+ }
+ }
}
int igt_main()
--
2.53.0
next prev parent reply other threads:[~2026-05-05 19:45 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-05 19:44 [PATCH i-g-t 1/4] lib/igt_kms: Add support for the BACKGROUND_COLOR property Maarten Lankhorst
2026-05-05 19:44 ` [PATCH i-g-t 2/4] includes: Remove DRM_XE_VM_BIND_FLAG_DECOMPRESS Maarten Lankhorst
2026-05-13 15:48 ` Kamil Konieczny
2026-05-05 19:44 ` [PATCH i-g-t 3/4] drm-uapi: Update drm_mode.h to latest linux upstream Maarten Lankhorst
2026-05-13 16:02 ` Kamil Konieczny
2026-05-05 19:44 ` Maarten Lankhorst [this message]
2026-05-05 20:35 ` ✓ Xe.CI.BAT: success for series starting with [i-g-t,1/4] lib/igt_kms: Add support for the BACKGROUND_COLOR property Patchwork
2026-05-05 20:39 ` ✗ i915.CI.BAT: failure " Patchwork
2026-05-06 4:04 ` ✗ Xe.CI.FULL: " Patchwork
2026-05-13 15:52 ` [PATCH i-g-t 1/4] " Kamil Konieczny
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=20260505194419.500600-8-dev@lankhorst.se \
--to=dev@lankhorst.se \
--cc=igt-dev@lists.freedesktop.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox