From: Swati Sharma <swati2.sharma@intel.com>
To: igt-dev@lists.freedesktop.org
Cc: Swati Sharma <swati2.sharma@intel.com>
Subject: [PATCH i-g-t 3/6] tests/kms_colorop_helper: Add FIXED_MATRIX colorop support
Date: Tue, 28 Jul 2026 00:25:28 +0530 [thread overview]
Message-ID: <20260727185531.4046807-4-swati2.sharma@intel.com> (raw)
In-Reply-To: <20260727185531.4046807-1-swati2.sharma@intel.com>
Add KMS_COLOROP_FIXED_MATRIX type and helpers for configuring
fixed-matrix colorops. The FIXED_MATRIX block selects from predefined
hardware modes via the FIXED_MATRIX_TYPE enum property rather than
programmable coefficients.
Supported FIXED_MATRIX modes:
- YCbCr 601 Full to RGB
- YCbCr 709 Full to RGB
- YCbCr 2020 Full NC to RGB
- YCbCr limited to full
- RGB709 to RGB2020
Extends can_use_colorop(), set_colorop(), and reset_colorop() to
handle the new FIXED_MATRIX type, and adds the FIXED_MATRIX enum
name table.
v2: -Naming changes (CSC_FF -> FIXED_MATRIX)
Assisted-by: Claude Opus 4.6
Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
---
tests/kms_colorop_helper.c | 20 ++++++++++++++++++++
tests/kms_colorop_helper.h | 20 +++++++++++++++++++-
2 files changed, 39 insertions(+), 1 deletion(-)
diff --git a/tests/kms_colorop_helper.c b/tests/kms_colorop_helper.c
index aaee4e567..8b84f2604 100644
--- a/tests/kms_colorop_helper.c
+++ b/tests/kms_colorop_helper.c
@@ -200,6 +200,14 @@ kms_colorop_t kms_colorop_3dlut_17_12_rgb = {
.transform = &igt_color_3dlut_17_12_rgb,
};
+const char * const kms_colorop_fixed_matrix_names[KMS_COLOROP_FIXED_MATRIX_NUM_ENUMS] = {
+ [KMS_COLOROP_FIXED_MATRIX_YCBCR601_FULL_RGB] = "YCbCr 601 Full to RGB",
+ [KMS_COLOROP_FIXED_MATRIX_YCBCR709_FULL_RGB] = "YCbCr 709 Full to RGB",
+ [KMS_COLOROP_FIXED_MATRIX_YCBCR2020_NC_FULL_RGB] = "YCbCr 2020 NC Full to RGB",
+ [KMS_COLOROP_FIXED_MATRIX_YCBCR_LIMITED_FULL] = "YCbCr limited to full",
+ [KMS_COLOROP_FIXED_MATRIX_RGB709_RGB2020] = "RGB709 to RGB2020",
+};
+
static bool can_use_colorop(igt_display_t *display, igt_colorop_t *colorop, kms_colorop_t *desired)
{
switch (desired->type) {
@@ -218,6 +226,13 @@ static bool can_use_colorop(igt_display_t *display, igt_colorop_t *colorop, kms_
return (igt_colorop_get_prop(display, colorop, IGT_COLOROP_TYPE) == DRM_COLOROP_MULTIPLIER);
case KMS_COLOROP_LUT3D:
return (igt_colorop_get_prop(display, colorop, IGT_COLOROP_TYPE) == DRM_COLOROP_3D_LUT);
+ case KMS_COLOROP_FIXED_MATRIX:
+ if (igt_colorop_get_prop(display, colorop, IGT_COLOROP_TYPE) == DRM_COLOROP_FIXED_MATRIX &&
+ igt_colorop_has_prop(colorop, IGT_COLOROP_FIXED_MATRIX_TYPE) &&
+ igt_colorop_try_prop_enum(colorop, IGT_COLOROP_FIXED_MATRIX_TYPE,
+ kms_colorop_fixed_matrix_names[desired->fixed_matrix_info.fixed_matrix]))
+ return true;
+ return false;
default:
return false;
}
@@ -362,6 +377,10 @@ static void set_colorop(igt_display_t *display, kms_colorop_t *colorop)
configure_3dlut(display, colorop, lut_size);
break;
+ case KMS_COLOROP_FIXED_MATRIX:
+ igt_colorop_set_prop_enum(colorop->colorop, IGT_COLOROP_FIXED_MATRIX_TYPE,
+ kms_colorop_fixed_matrix_names[colorop->fixed_matrix_info.fixed_matrix]);
+ break;
default:
igt_fail(IGT_EXIT_FAILURE);
}
@@ -416,6 +435,7 @@ static void reset_colorop(kms_colorop_t *colorop)
igt_colorop_set_prop_value(colorop->colorop, IGT_COLOROP_MULTIPLIER, 1);
break;
case KMS_COLOROP_ENUMERATED_LUT1D:
+ case KMS_COLOROP_FIXED_MATRIX:
default:
return;
}
diff --git a/tests/kms_colorop_helper.h b/tests/kms_colorop_helper.h
index a081fa02d..3d98d9f8d 100644
--- a/tests/kms_colorop_helper.h
+++ b/tests/kms_colorop_helper.h
@@ -22,7 +22,8 @@ typedef enum kms_colorop_type {
KMS_COLOROP_CUSTOM_LUT1D,
KMS_COLOROP_CTM_3X4,
KMS_COLOROP_MULTIPLIER,
- KMS_COLOROP_LUT3D
+ KMS_COLOROP_LUT3D,
+ KMS_COLOROP_FIXED_MATRIX,
} kms_colorop_type_t;
typedef enum kms_colorop_lut1d_tf {
@@ -50,6 +51,19 @@ typedef struct kms_colorop_lut3d_info {
enum drm_colorop_lut3d_interpolation_type interpolation;
} kms_colorop_lut3d_info_t;
+typedef enum kms_colorop_fixed_matrix {
+ KMS_COLOROP_FIXED_MATRIX_YCBCR601_FULL_RGB,
+ KMS_COLOROP_FIXED_MATRIX_YCBCR709_FULL_RGB,
+ KMS_COLOROP_FIXED_MATRIX_YCBCR2020_NC_FULL_RGB,
+ KMS_COLOROP_FIXED_MATRIX_YCBCR_LIMITED_FULL,
+ KMS_COLOROP_FIXED_MATRIX_RGB709_RGB2020,
+ KMS_COLOROP_FIXED_MATRIX_NUM_ENUMS
+} kms_colorop_fixed_matrix_t;
+
+typedef struct kms_colorop_fixed_matrix_info {
+ kms_colorop_fixed_matrix_t fixed_matrix;
+} kms_colorop_fixed_matrix_info_t;
+
typedef struct kms_colorop {
kms_colorop_type_t type;
@@ -61,6 +75,8 @@ typedef struct kms_colorop {
double multiplier;
};
+ kms_colorop_fixed_matrix_info_t fixed_matrix_info;
+
kms_colorop_lut3d_info_t lut3d_info;
const char *name;
@@ -95,6 +111,8 @@ extern kms_colorop_t kms_colorop_multiply_125;
extern kms_colorop_t kms_colorop_multiply_inv_125;
extern kms_colorop_t kms_colorop_3dlut_17_12_rgb;
+extern const char * const kms_colorop_fixed_matrix_names[KMS_COLOROP_FIXED_MATRIX_NUM_ENUMS];
+
igt_colorop_t *get_color_pipeline(igt_display_t *display,
igt_plane_t *plane,
kms_colorop_t *colorops[]);
--
2.25.1
next prev parent reply other threads:[~2026-07-27 18:49 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-27 18:55 [PATCH i-g-t 0/6] Add FIXED_MATRIX colorop tests Swati Sharma
2026-07-27 18:55 ` [PATCH i-g-t 1/6] include/drm-uapi: Add DRM_COLOROP_FIXED_MATRIX definition Swati Sharma
2026-07-27 18:55 ` [PATCH i-g-t 2/6] lib/igt_kms: Add FIXED_MATRIX_TYPE colorop property Swati Sharma
2026-07-27 18:55 ` Swati Sharma [this message]
2026-07-27 18:55 ` [PATCH i-g-t 4/6] tests/kms_color_pipeline: Add FIXED_MATRIX colorop tests Swati Sharma
2026-07-27 18:55 ` [PATCH i-g-t 5/6] tests/kms_color_pipeline: Remove unused color_depth and drm_format Swati Sharma
2026-07-27 18:55 ` [PATCH i-g-t 6/6] tests/kms_chamelium_color_pipeline: Add FIXED_MATRIX colorop tests Swati Sharma
2026-07-27 20:59 ` ✓ Xe.CI.BAT: success for Add FIXED_MATRIX colorop tests (rev2) Patchwork
2026-07-27 21:00 ` ✓ i915.CI.BAT: " Patchwork
2026-07-28 0:45 ` ✗ Xe.CI.FULL: failure " Patchwork
2026-07-28 4:38 ` ✗ i915.CI.Full: " Patchwork
-- strict thread matches above, loose matches on Subject: below --
2026-08-06 12:03 [PATCH i-g-t v3 0/6] Add FIXED_MATRIX colorop tests Swati Sharma
2026-08-06 12:03 ` [PATCH i-g-t 3/6] tests/kms_colorop_helper: Add FIXED_MATRIX colorop support Swati Sharma
2026-08-13 13:58 ` Borah, Chaitanya Kumar
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=20260727185531.4046807-4-swati2.sharma@intel.com \
--to=swati2.sharma@intel.com \
--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 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.