* [PATCH v4 00/10] [PATCH v4 00/10] YUV Conversion Colorop tests
@ 2026-07-31 18:01 Harry Wentland
2026-07-31 18:01 ` [PATCH v4 01/10] include/drm-uapi: Add DRM_COLOROP_FIXED_MATRIX Harry Wentland
` (12 more replies)
0 siblings, 13 replies; 15+ messages in thread
From: Harry Wentland @ 2026-07-31 18:01 UTC (permalink / raw)
To: igt-dev
Cc: Harry Wentland, Alex Hung, Daniel Stone, Chaitanya Kumar Borah,
Uma Shankar, Louis Chauvet, Melissa Wen, Simon Ser, Robert Mader
This kernel branch introduces a new fixed matrix colorop with
named matrices, including matrices for all YCbCr conversions
from BT.601, BT.709, and BT.2020, both limited and full range.
https://gitlab.freedesktop.org/hwentland/linux/-/tree/csc-ff-colorop
These patches add the functionality to IGT to test NV12 and
P010 buffers with the kms_colorop tests, and add corresponding
tests for the Fixed Matrix colorop to kms_colorop.
These test work on amdgpu (P010-XR30 variants) and VKMS
(NV12-XR24 variants).
The only patch that still requires review is:
"lib/igt_color: Refactor transform_pixels for input/output FBs and CSC"
On AMD HW a couple extra driver fixes are needed. They can be
found at this kernel tree:
https://gitlab.freedesktop.org/hwentland/linux/-/tree/yuv-fm-colorop
This tree can be found at:
https://gitlab.freedesktop.org/hwentland/igt-gpu-tools/-/tree/yuv-fm-colorop
Some more background on this work can be found at:
https://hwentland.github.io/2026/03/10/plane-color-pipeline-csc-3d-lut-kwin.html
v4:
- Add encoding and range to kms_colorop_fixed_matrix_t and drop the
fixed_matrix_type_to_encoding_range function (Alex)
- Squash "Keep CRTC active between YUV tests with temp FB" into
previous commit (Alex)
- Couple minor fixups to "Refactor transform_pixels" commit (Alex)
v3:
- Update to use renamed Fixed Matrix colorop. Rename related functions.
Cc: Alex Hung <alex.hung@amd.com>
Cc: Daniel Stone <daniels@collabora.com>
Cc: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
Cc: Uma Shankar <uma.shankar@intel.com>
Cc: Louis Chauvet <louis.chauvet@bootlin.com>
Cc: Melissa Wen <mwen@igalia.com>
Cc: Simon Ser <contact@emersion.fr>
Cc: Robert Mader <robert.mader@collabora.com>
include/drm-uapi/drm_mode.h | 11 +
lib/igt_color.c | 242 +++++++++++++++++---
lib/igt_color.h | 6 +-
lib/igt_color_encoding.c | 1 +
lib/igt_fb.c | 41 ++++
lib/igt_fb.h | 6 +
lib/igt_kms.c | 1 +
lib/igt_kms.h | 1 +
tests/kms_colorop.c | 428 +++++++++++++++++++++++++++++-------
tests/kms_colorop_helper.c | 52 +++++
tests/kms_colorop_helper.h | 14 +-
11 files changed, 690 insertions(+), 113 deletions(-)
--
2.55.0
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v4 01/10] include/drm-uapi: Add DRM_COLOROP_FIXED_MATRIX
2026-07-31 18:01 [PATCH v4 00/10] [PATCH v4 00/10] YUV Conversion Colorop tests Harry Wentland
@ 2026-07-31 18:01 ` Harry Wentland
2026-07-31 18:01 ` [PATCH v4 02/10] lib/igt_kms: Add IGT_COLOROP_FIXED_MATRIX property Harry Wentland
` (11 subsequent siblings)
12 siblings, 0 replies; 15+ messages in thread
From: Harry Wentland @ 2026-07-31 18:01 UTC (permalink / raw)
To: igt-dev; +Cc: Harry Wentland, Alex Hung
Add DRM_COLOROP_FIXED_MATRIX to the colorop type enumeration.
Assisted-by: Claude:claude-opus-4-6
Signed-off-by: Harry Wentland <harry.wentland@amd.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
---
include/drm-uapi/drm_mode.h | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/include/drm-uapi/drm_mode.h b/include/drm-uapi/drm_mode.h
index de10ce859fdb..0924e38af09c 100644
--- a/include/drm-uapi/drm_mode.h
+++ b/include/drm-uapi/drm_mode.h
@@ -934,6 +934,17 @@ enum drm_colorop_type {
* LUT size is advertised via the SIZE property.
*/
DRM_COLOROP_3D_LUT,
+
+ /**
+ * @DRM_COLOROP_FIXED_MATRIX:
+ *
+ * enum string "Fixed Matrix"
+ *
+ * A Colorop block that performs a pre-defined matrix operation selected
+ * via the FIXED_MATRIX_TYPE enum property. The driver advertises the supported
+ * operations through this property.
+ */
+ DRM_COLOROP_FIXED_MATRIX,
};
/**
--
2.55.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v4 02/10] lib/igt_kms: Add IGT_COLOROP_FIXED_MATRIX property
2026-07-31 18:01 [PATCH v4 00/10] [PATCH v4 00/10] YUV Conversion Colorop tests Harry Wentland
2026-07-31 18:01 ` [PATCH v4 01/10] include/drm-uapi: Add DRM_COLOROP_FIXED_MATRIX Harry Wentland
@ 2026-07-31 18:01 ` Harry Wentland
2026-07-31 18:01 ` [PATCH v4 03/10] tests/kms_colorop_helper: Add Fixed Matrix colorop infrastructure Harry Wentland
` (10 subsequent siblings)
12 siblings, 0 replies; 15+ messages in thread
From: Harry Wentland @ 2026-07-31 18:01 UTC (permalink / raw)
To: igt-dev; +Cc: Harry Wentland, Alex Hung
Add support for the Fixed Matrix colorop property:
- Add IGT_COLOROP_FIXED_MATRIX property to the colorop property enum
and names array in igt_kms
Assisted-by: Claude:claude-opus-4-6
Signed-off-by: Harry Wentland <harry.wentland@amd.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
---
lib/igt_kms.c | 1 +
lib/igt_kms.h | 1 +
2 files changed, 2 insertions(+)
diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index ef9496741ab5..0f1704d18803 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -725,6 +725,7 @@ const char * const igt_colorop_prop_names[IGT_NUM_COLOROP_PROPS] = {
[IGT_COLOROP_MULTIPLIER] = "MULTIPLIER",
[IGT_COLOROP_LUT3D_INTERPOLATION] = "LUT3D_INTERPOLATION",
[IGT_COLOROP_NEXT] = "NEXT",
+ [IGT_COLOROP_FIXED_MATRIX] = "FIXED_MATRIX_TYPE",
};
const char * const igt_crtc_prop_names[IGT_NUM_CRTC_PROPS] = {
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index 521a03c01d72..27f8877a9f6a 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -363,6 +363,7 @@ enum igt_atomic_colorop_properties {
IGT_COLOROP_MULTIPLIER,
IGT_COLOROP_LUT3D_INTERPOLATION,
IGT_COLOROP_NEXT,
+ IGT_COLOROP_FIXED_MATRIX,
IGT_NUM_COLOROP_PROPS
};
--
2.55.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v4 03/10] tests/kms_colorop_helper: Add Fixed Matrix colorop infrastructure
2026-07-31 18:01 [PATCH v4 00/10] [PATCH v4 00/10] YUV Conversion Colorop tests Harry Wentland
2026-07-31 18:01 ` [PATCH v4 01/10] include/drm-uapi: Add DRM_COLOROP_FIXED_MATRIX Harry Wentland
2026-07-31 18:01 ` [PATCH v4 02/10] lib/igt_kms: Add IGT_COLOROP_FIXED_MATRIX property Harry Wentland
@ 2026-07-31 18:01 ` Harry Wentland
2026-07-31 18:01 ` [PATCH v4 04/10] lib/igt_fb: Add YUV color pattern framebuffer support Harry Wentland
` (9 subsequent siblings)
12 siblings, 0 replies; 15+ messages in thread
From: Harry Wentland @ 2026-07-31 18:01 UTC (permalink / raw)
To: igt-dev; +Cc: Harry Wentland, Alex Hung
Add support for Fixed Matrix colorops:
- Add KMS_COLOROP_FIXED_MATRIX type to the test colorop type enum
- Add kms_colorop_fixed_matrix_info_t struct carrying the DRM enum string
name plus encoding/range for software reference transforms
- Add can_use_colorop() handling: matches DRM_COLOROP_FIXED_MATRIX type and
verifies the specific FIXED_MATRIX enum value is supported
- Add set_colorop() handling: sets FIXED_MATRIX via single enum property
- Define four FIXED_MATRIX colorop instances: BT.709 limited/full, BT.601
limited, and BT.2020 limited
Assisted-by: Claude:claude-opus-4-6
Signed-off-by: Harry Wentland <harry.wentland@amd.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
---
tests/kms_colorop_helper.c | 52 ++++++++++++++++++++++++++++++++++++++
tests/kms_colorop_helper.h | 14 +++++++++-
2 files changed, 65 insertions(+), 1 deletion(-)
diff --git a/tests/kms_colorop_helper.c b/tests/kms_colorop_helper.c
index aaee4e567ef6..3243d01d3e58 100644
--- a/tests/kms_colorop_helper.c
+++ b/tests/kms_colorop_helper.c
@@ -4,6 +4,7 @@
*/
#include "kms_colorop_helper.h"
+#include "igt_color_encoding.h"
const char * const kms_colorop_lut1d_tf_names[KMS_COLOROP_LUT1D_NUM_ENUMS] = {
[KMS_COLOROP_LUT1D_SRGB_EOTF] = "sRGB EOTF",
@@ -200,6 +201,48 @@ kms_colorop_t kms_colorop_3dlut_17_12_rgb = {
.transform = &igt_color_3dlut_17_12_rgb,
};
+kms_colorop_t kms_colorop_bt709_limited_ycbcr_to_rgb = {
+ .type = KMS_COLOROP_FIXED_MATRIX,
+ .fixed_matrix_info = {
+ .fixed_matrix_type_name = "YCbCr 709 Limited to RGB",
+ .encoding = IGT_COLOR_YCBCR_BT709,
+ .range = IGT_COLOR_YCBCR_LIMITED_RANGE,
+ },
+ .name = "YCbCr BT.709 Limited Range to RGB",
+ .transform = NULL,
+};
+
+kms_colorop_t kms_colorop_bt709_full_ycbcr_to_rgb = {
+ .type = KMS_COLOROP_FIXED_MATRIX,
+ .fixed_matrix_info = {
+ .fixed_matrix_type_name = "YCbCr 709 Full to RGB",
+ .encoding = IGT_COLOR_YCBCR_BT709,
+ .range = IGT_COLOR_YCBCR_FULL_RANGE,
+ },
+ .name = "YCbCr BT.709 Full Range to RGB",
+ .transform = NULL,
+};
+
+kms_colorop_t kms_colorop_bt601_limited_ycbcr_to_rgb = {
+ .type = KMS_COLOROP_FIXED_MATRIX,
+ .fixed_matrix_info = {
+ .fixed_matrix_type_name = "YCbCr 601 Limited to RGB",
+ .encoding = IGT_COLOR_YCBCR_BT601,
+ .range = IGT_COLOR_YCBCR_LIMITED_RANGE,
+ },
+ .name = "YCbCr BT.601 Limited Range to RGB",
+ .transform = NULL,
+};
+
+kms_colorop_t kms_colorop_bt2020_limited_ycbcr_to_rgb = {
+ .type = KMS_COLOROP_FIXED_MATRIX,
+ .fixed_matrix_info = {
+ .fixed_matrix_type_name = "YCbCr 2020 Limited to RGB NC",
+ },
+ .name = "YCbCr BT.2020 Limited Range to RGB",
+ .transform = NULL,
+};
+
static bool can_use_colorop(igt_display_t *display, igt_colorop_t *colorop, kms_colorop_t *desired)
{
switch (desired->type) {
@@ -218,6 +261,11 @@ 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_try_prop_enum(colorop, IGT_COLOROP_FIXED_MATRIX, desired->fixed_matrix_info.fixed_matrix_type_name))
+ return true;
+ return false;
default:
return false;
}
@@ -362,6 +410,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,
+ colorop->fixed_matrix_info.fixed_matrix_type_name);
+ break;
default:
igt_fail(IGT_EXIT_FAILURE);
}
diff --git a/tests/kms_colorop_helper.h b/tests/kms_colorop_helper.h
index a081fa02db8e..9a1477666c82 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,8 +51,15 @@ typedef struct kms_colorop_lut3d_info {
enum drm_colorop_lut3d_interpolation_type interpolation;
} kms_colorop_lut3d_info_t;
+typedef struct kms_colorop_fixed_matrix_info {
+ const char *fixed_matrix_type_name;
+ enum igt_color_encoding encoding;
+ enum igt_color_range range;
+} kms_colorop_fixed_matrix_info_t;
+
typedef struct kms_colorop {
kms_colorop_type_t type;
+ kms_colorop_fixed_matrix_info_t fixed_matrix_info;
union {
kms_colorop_enumerated_lut1d_info_t enumerated_lut1d_info;
@@ -94,6 +102,10 @@ extern kms_colorop_t kms_colorop_ctm_3x4_bt709_dec;
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 kms_colorop_t kms_colorop_bt709_limited_ycbcr_to_rgb;
+extern kms_colorop_t kms_colorop_bt709_full_ycbcr_to_rgb;
+extern kms_colorop_t kms_colorop_bt601_limited_ycbcr_to_rgb;
+extern kms_colorop_t kms_colorop_bt2020_limited_ycbcr_to_rgb;
igt_colorop_t *get_color_pipeline(igt_display_t *display,
igt_plane_t *plane,
--
2.55.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v4 04/10] lib/igt_fb: Add YUV color pattern framebuffer support
2026-07-31 18:01 [PATCH v4 00/10] [PATCH v4 00/10] YUV Conversion Colorop tests Harry Wentland
` (2 preceding siblings ...)
2026-07-31 18:01 ` [PATCH v4 03/10] tests/kms_colorop_helper: Add Fixed Matrix colorop infrastructure Harry Wentland
@ 2026-07-31 18:01 ` Harry Wentland
2026-07-31 18:01 ` [PATCH v4 05/10] lib/igt_color_encoding: Add XRGB2101010 format support Harry Wentland
` (8 subsequent siblings)
12 siblings, 0 replies; 15+ messages in thread
From: Harry Wentland @ 2026-07-31 18:01 UTC (permalink / raw)
To: igt-dev; +Cc: Harry Wentland, Alex Hung
Add igt_create_color_pattern_fb_yuv() function to create test pattern
framebuffers in YUV formats. This extends the existing color pattern
functionality to support YUV testing, handling proper conversion from
RGB test patterns to YUV color spaces with correct encoding and range.
Assisted-by: Claude:claude-sonnet-4-5
Signed-off-by: Harry Wentland <harry.wentland@amd.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
---
lib/igt_fb.c | 41 +++++++++++++++++++++++++++++++++++++++++
lib/igt_fb.h | 6 ++++++
2 files changed, 47 insertions(+)
diff --git a/lib/igt_fb.c b/lib/igt_fb.c
index e623b2f64d7c..6c3b9b0b9208 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -2403,6 +2403,47 @@ unsigned int igt_create_color_pattern_fb(int fd, int width, int height,
return fb_id;
}
+/**
+ * igt_create_color_pattern_fb_yuv:
+ * @fd: open drm file descriptor
+ * @width: width of the framebuffer in pixel
+ * @height: height of the framebuffer in pixel
+ * @format: drm fourcc pixel format code
+ * @modifier: tiling layout of the framebuffer
+ * @color_encoding: color encoding for YUV formats (e.g., BT.601, BT.709, BT.2020)
+ * @color_range: color range for YUV formats (limited or full range)
+ * @r: red value to use as background, 0.0 for black, 1.0 for red
+ * @g: green value to use as background, 0.0 for black, 1.0 for green
+ * @b: blue value to use as background, 0.0 for black, 1.0 for blue
+ * @fb: pointer to an #igt_fb structure
+ *
+ * This creates a framebuffer for YUV formats with the specified color encoding
+ * and range. Cairo is used to draw the background color and test pattern, with
+ * automatic RGB to YUV conversion based on the specified encoding and range.
+ *
+ * Returns:
+ * The kms id of the created framebuffer on success or a negative error code on
+ * failure.
+ */
+unsigned int igt_create_color_pattern_fb_yuv(int fd, int width, int height,
+ uint32_t format, uint64_t modifier,
+ enum igt_color_encoding color_encoding,
+ enum igt_color_range color_range,
+ double r, double g, double b,
+ struct igt_fb *fb /* out */)
+{
+ unsigned int fb_id;
+
+ fb_id = igt_create_fb_with_bo_size(fd, width, height, format, modifier,
+ color_encoding, color_range,
+ fb, 0, 0);
+ igt_assert(fb_id);
+
+ igt_paint_test_pattern_color_fb(fd, fb, r, g, b);
+
+ return fb_id;
+}
+
/**
* igt_create_image_fb:
* @drm_fd: open drm file descriptor
diff --git a/lib/igt_fb.h b/lib/igt_fb.h
index 8e5907dabed4..213e2d77795d 100644
--- a/lib/igt_fb.h
+++ b/lib/igt_fb.h
@@ -153,6 +153,12 @@ unsigned int igt_create_color_pattern_fb(int fd, int width, int height,
uint32_t format, uint64_t modifier,
double r, double g, double b,
struct igt_fb *fb /* out */);
+unsigned int igt_create_color_pattern_fb_yuv(int fd, int width, int height,
+ uint32_t format, uint64_t modifier,
+ enum igt_color_encoding color_encoding,
+ enum igt_color_range color_range,
+ double r, double g, double b,
+ struct igt_fb *fb /* out */);
unsigned int igt_create_image_fb(int drm_fd, int width, int height,
uint32_t format, uint64_t modifier,
const char *filename,
--
2.55.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v4 05/10] lib/igt_color_encoding: Add XRGB2101010 format support
2026-07-31 18:01 [PATCH v4 00/10] [PATCH v4 00/10] YUV Conversion Colorop tests Harry Wentland
` (3 preceding siblings ...)
2026-07-31 18:01 ` [PATCH v4 04/10] lib/igt_fb: Add YUV color pattern framebuffer support Harry Wentland
@ 2026-07-31 18:01 ` Harry Wentland
2026-07-31 18:01 ` [PATCH v4 06/10] lib/igt_color: Add YUV pixel reading support Harry Wentland
` (7 subsequent siblings)
12 siblings, 0 replies; 15+ messages in thread
From: Harry Wentland @ 2026-07-31 18:01 UTC (permalink / raw)
To: igt-dev; +Cc: Harry Wentland, Alex Hung
Add XRGB2101010 (10-bit RGB) to the color encoding format list. This
enables proper color encoding handling for 10-bit RGB formats used in
CSC testing scenarios.
Assisted-by: Claude:claude-sonnet-4-5
Signed-off-by: Harry Wentland <harry.wentland@amd.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
---
lib/igt_color_encoding.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/igt_color_encoding.c b/lib/igt_color_encoding.c
index da56b2b10593..1d01c7eb0583 100644
--- a/lib/igt_color_encoding.c
+++ b/lib/igt_color_encoding.c
@@ -135,6 +135,7 @@ static const struct color_encoding_format {
float ofs_y, max_y, ofs_cbcr, mid_cbcr, max_cbcr;
} formats[] = {
{ DRM_FORMAT_XRGB8888, 255.f, },
+ { DRM_FORMAT_XRGB2101010, 1023.f, },
{ IGT_FORMAT_FLOAT, 1.f, },
{ DRM_FORMAT_NV12, 255.f, 16.f, 235.f, 16.f, 128.f, 240.f },
{ DRM_FORMAT_NV16, 255.f, 16.f, 235.f, 16.f, 128.f, 240.f },
--
2.55.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v4 06/10] lib/igt_color: Add YUV pixel reading support
2026-07-31 18:01 [PATCH v4 00/10] [PATCH v4 00/10] YUV Conversion Colorop tests Harry Wentland
` (4 preceding siblings ...)
2026-07-31 18:01 ` [PATCH v4 05/10] lib/igt_color_encoding: Add XRGB2101010 format support Harry Wentland
@ 2026-07-31 18:01 ` Harry Wentland
2026-07-31 18:01 ` [PATCH v4 07/10] lib/igt_color: Refactor transform_pixels for input/output FBs and CSC Harry Wentland
` (6 subsequent siblings)
12 siblings, 0 replies; 15+ messages in thread
From: Harry Wentland @ 2026-07-31 18:01 UTC (permalink / raw)
To: igt-dev; +Cc: Harry Wentland, Alex Hung
Add functions to read YUV pixel values from framebuffers. Supports
NV12 and P010 formats with proper handling of:
- Multi-planar Y/UV data layout
- 8-bit and 10-bit sample depths
- Chroma subsampling
This provides the foundation for YUV color transformation testing.
Assisted-by: Claude:claude-sonnet-4-5
Signed-off-by: Harry Wentland <harry.wentland@amd.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
---
lib/igt_color.c | 72 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 72 insertions(+)
diff --git a/lib/igt_color.c b/lib/igt_color.c
index 8c405275acf8..a451f5642bac 100644
--- a/lib/igt_color.c
+++ b/lib/igt_color.c
@@ -259,6 +259,78 @@ void igt_color_multiply_inv_125(igt_pixel_t *pixel)
igt_color_multiply(pixel, 1 / 125.0f);
}
+/**
+ * igt_color_extract_yuv_pixel - Extract raw Y, U, V values from YUV buffer
+ * @fb: framebuffer
+ * @x: x coordinate
+ * @y: y coordinate
+ * @y_plane: pointer to Y plane
+ * @uv_plane: pointer to UV plane
+ * @y_stride: stride of Y plane
+ * @uv_stride: stride of UV plane
+ * @out_y: output Y value (raw, not normalized)
+ * @out_u: output U value (raw, not normalized)
+ * @out_v: output V value (raw, not normalized)
+ *
+ * Extracts raw Y, U, V component values from a YUV framebuffer at the given
+ * coordinates. Handles 4:2:0 subsampling for UV components. Values are raw
+ * (not normalized) and format-specific.
+ */
+static void
+igt_color_extract_yuv_pixel(igt_fb_t *fb, int x, int y,
+ uint8_t *y_plane, uint8_t *uv_plane,
+ int y_stride, int uv_stride,
+ uint32_t *out_y, uint32_t *out_u, uint32_t *out_v)
+{
+ if (fb->drm_format == DRM_FORMAT_NV12) {
+ *out_y = y_plane[y * y_stride + x];
+ *out_u = uv_plane[(y / 2) * uv_stride + (x / 2) * 2 + 0];
+ *out_v = uv_plane[(y / 2) * uv_stride + (x / 2) * 2 + 1];
+ } else if (fb->drm_format == DRM_FORMAT_P010) {
+ uint16_t *y16 = (uint16_t *)y_plane;
+ uint16_t *uv16 = (uint16_t *)uv_plane;
+
+ *out_y = y16[y * (y_stride / 2) + x];
+ *out_u = uv16[(y / 2) * (uv_stride / 2) + (x / 2) * 2 + 0];
+ *out_v = uv16[(y / 2) * (uv_stride / 2) + (x / 2) * 2 + 1];
+ } else {
+ igt_skip("YUV pixel format support not implemented");
+ }
+}
+
+/**
+ * igt_color_yuv_to_pixel - Convert raw Y, U, V values to normalized pixel
+ * @drm_format: YUV format (NV12 or P010)
+ * @raw_y: raw Y value
+ * @raw_u: raw U value
+ * @raw_v: raw V value
+ * @pixel: output pixel structure
+ *
+ * Converts raw Y, U, V component values to a normalized igt_pixel_t structure.
+ * For NV12 (8-bit), normalizes by 255. For P010 (10-bit in upper bits),
+ * shifts and normalizes by 1023.
+ *
+ * Result: pixel->r = normalized Y, pixel->g = normalized U, pixel->b = normalized V
+ */
+static void
+igt_color_yuv_to_pixel(uint32_t drm_format, uint32_t raw_y, uint32_t raw_u,
+ uint32_t raw_v, igt_pixel_t *pixel)
+{
+ if (drm_format == DRM_FORMAT_NV12) {
+ /* Normalize 8-bit values to [0.0, 1.0] */
+ pixel->r = raw_y / 255.0f;
+ pixel->g = raw_u / 255.0f;
+ pixel->b = raw_v / 255.0f;
+ } else if (drm_format == DRM_FORMAT_P010) {
+ /* P010 uses upper 10 bits of 16-bit value */
+ pixel->r = (raw_y >> 6) / 1023.0f;
+ pixel->g = (raw_u >> 6) / 1023.0f;
+ pixel->b = (raw_v >> 6) / 1023.0f;
+ } else {
+ igt_skip("YUV pixel format support not implemented");
+ }
+}
+
static int
igt_get_lut3d_index_blue_fast(int r, int g, int b, long dim, int components)
{
--
2.55.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v4 07/10] lib/igt_color: Refactor transform_pixels for input/output FBs and CSC
2026-07-31 18:01 [PATCH v4 00/10] [PATCH v4 00/10] YUV Conversion Colorop tests Harry Wentland
` (5 preceding siblings ...)
2026-07-31 18:01 ` [PATCH v4 06/10] lib/igt_color: Add YUV pixel reading support Harry Wentland
@ 2026-07-31 18:01 ` Harry Wentland
2026-08-14 19:55 ` Alex Hung
2026-07-31 18:01 ` [PATCH v4 08/10] tests/kms_colorop: Add FIXED_MATRIX colorop tests Harry Wentland
` (5 subsequent siblings)
12 siblings, 1 reply; 15+ messages in thread
From: Harry Wentland @ 2026-07-31 18:01 UTC (permalink / raw)
To: igt-dev; +Cc: Harry Wentland
Refactor igt_color_transform_pixels() to accept separate input and
output framebuffers, plus optional YUV encoding/range parameters for
CSC conversion. This enables:
- Reading from YUV input (NV12/P010) and writing to RGB output
- Inline YUV-to-RGB CSC using the igt_color_encoding matrix library
- Skipping the first transform when CSC is applied (since it's done
inline via the matrix)
Update apply_transforms() in kms_colorop.c to extract encoding/range
from the first colorop when it's a FIXED_MATRIX type, and pass both input
and output FBs to the refactored function.
Also update colorop_plane_test() to create sw_transform_fb with the
output format rather than copying the input FB.
Assisted-by: Claude:claude-sonnet-4-5
Signed-off-by: Harry Wentland <harry.wentland@amd.com>
---
lib/igt_color.c | 170 +++++++++++++++++++++++++++++++++++---------
lib/igt_color.h | 6 +-
tests/kms_colorop.c | 34 +++++----
3 files changed, 160 insertions(+), 50 deletions(-)
diff --git a/lib/igt_color.c b/lib/igt_color.c
index a451f5642bac..582fc6c0c3bc 100644
--- a/lib/igt_color.c
+++ b/lib/igt_color.c
@@ -13,6 +13,7 @@
#include "drmtest.h"
#include "igt_color.h"
+#include "igt_color_encoding.h"
#include "igt_core.h"
#include "igt_x86.h"
@@ -578,58 +579,159 @@ igt_color_pixel_to_fourcc(uint32_t drm_format, igt_pixel_t *pixel)
return raw_pixel;
}
-int igt_color_transform_pixels(igt_fb_t *fb, igt_pixel_transform transforms[], int num_transforms)
+int igt_color_transform_pixels(igt_fb_t *input_fb, igt_fb_t *output_fb,
+ igt_pixel_transform transforms[],
+ int num_transforms,
+ int yuv_encoding,
+ enum igt_color_range yuv_range)
{
- uint32_t *line = NULL;
- void *map;
- char *ptr;
- int x, y, cpp = igt_drm_format_to_bpp(fb->drm_format) / 8;
- uint32_t stride = igt_fb_calc_plane_stride(fb, 0);
+ uint32_t *input_line = NULL;
+ uint32_t *output_line = NULL;
+ void *input_map, *output_map;
+ char *input_ptr, *output_ptr;
+ int x, y;
+ int input_cpp = 0;
+ int output_cpp = igt_drm_format_to_bpp(output_fb->drm_format) / 8;
+ uint32_t input_stride = 0, output_stride = igt_fb_calc_plane_stride(output_fb, 0);
+ uint8_t *y_plane = NULL, *uv_plane = NULL;
+ int y_stride = 0, uv_stride = 0;
+ bool input_is_yuv = (input_fb->drm_format == DRM_FORMAT_NV12 ||
+ input_fb->drm_format == DRM_FORMAT_P010);
+ bool output_is_yuv = (output_fb->drm_format == DRM_FORMAT_NV12 ||
+ output_fb->drm_format == DRM_FORMAT_P010);
+ struct igt_mat4 csc_matrix;
+ bool apply_csc = false;
- if (fb->num_planes != 1)
+ /* Validate framebuffer dimensions match */
+ igt_assert(input_fb->width == output_fb->width);
+ igt_assert(input_fb->height == output_fb->height);
+
+ if (input_is_yuv && yuv_encoding >= 0) {
+ apply_csc = true;
+
+ csc_matrix = igt_ycbcr_to_rgb_matrix(input_fb->drm_format,
+ output_fb->drm_format,
+ yuv_encoding, yuv_range);
+ }
+
+ /* Validate plane counts */
+ if (!input_is_yuv && input_fb->num_planes != 1)
return -EINVAL;
- ptr = igt_fb_map_buffer(fb->fd, fb);
- igt_assert(ptr);
- map = ptr;
+ if (input_is_yuv && input_fb->num_planes != 2)
+ return -EINVAL;
- /*
- * Framebuffers are often uncached, which can make byte-wise accesses
- * very slow. We copy each line of the FB into a local buffer to speed
- * up the hashing.
- */
- line = malloc(stride);
- if (!line) {
- munmap(map, fb->size);
+ if (!output_is_yuv && output_fb->num_planes != 1)
+ return -EINVAL;
+
+ if (output_is_yuv && output_fb->num_planes != 2)
+ return -EINVAL;
+
+ /* Map input buffer */
+ input_ptr = igt_fb_map_buffer(input_fb->fd, input_fb);
+ igt_assert(input_ptr);
+ input_map = input_ptr;
+
+ /* For YUV input, set up plane pointers */
+ if (input_is_yuv) {
+ y_plane = input_map;
+ y_stride = input_fb->strides[0];
+ uv_plane = y_plane + input_fb->offsets[1];
+ uv_stride = input_fb->strides[1];
+ } else {
+ input_cpp = igt_drm_format_to_bpp(input_fb->drm_format) / 8;
+ input_stride = igt_fb_calc_plane_stride(input_fb, 0);
+ }
+
+ /* Map output buffer */
+ output_ptr = igt_fb_map_buffer(output_fb->fd, output_fb);
+ igt_assert(output_ptr);
+ output_map = output_ptr;
+
+ /* Allocate line buffers for speed */
+ if (!input_is_yuv) {
+ input_line = malloc(input_stride);
+ if (!input_line) {
+ igt_fb_unmap_buffer(output_fb, output_map);
+ igt_fb_unmap_buffer(input_fb, input_map);
+ return -ENOMEM;
+ }
+ }
+
+ output_line = malloc(output_stride);
+ if (!output_line) {
+ free(input_line);
+ igt_fb_unmap_buffer(output_fb, output_map);
+ igt_fb_unmap_buffer(input_fb, input_map);
return -ENOMEM;
}
- for (y = 0; y < fb->height; y++, ptr += stride) {
+ for (y = 0; y < input_fb->height; y++) {
+ /* For RGB input, read line from input buffer */
+ if (!input_is_yuv)
+ igt_memcpy_from_wc(input_line, input_ptr + y * input_stride,
+ input_fb->width * input_cpp);
- /* get line from buffer */
- igt_memcpy_from_wc(line, ptr, fb->width * cpp);
-
- for (x = 0; x < fb->width; x++) {
- uint32_t raw_pixel = le32_to_cpu(line[x]);
+ for (x = 0; x < input_fb->width; x++) {
igt_pixel_t pixel;
int i;
+ int start_transform;
- igt_color_fourcc_to_pixel(raw_pixel, fb->drm_format, &pixel);
+ /* READ from input buffer */
+ if (input_is_yuv) {
+ uint32_t raw_y, raw_u, raw_v;
+ struct igt_vec4 yuv, rgb;
- /* run transform on pixel */
- for (i = 0; i < num_transforms; i++)
- transforms[i](&pixel);
+ /* Extract raw Y, U, V from YUV input buffer */
+ igt_color_extract_yuv_pixel(input_fb, x, y, y_plane, uv_plane,
+ y_stride, uv_stride,
+ &raw_y, &raw_u, &raw_v);
- /* write back to line */
- line[x] = cpu_to_le32(igt_color_pixel_to_fourcc(fb->drm_format, &pixel));
+ /* Convert YUV to RGB using pre-computed CSC matrix */
+ if (apply_csc) {
+ float rgb_max;
+
+ /* Matrix expects raw format values */
+ yuv.d[0] = raw_y;
+ yuv.d[1] = raw_u;
+ yuv.d[2] = raw_v;
+ yuv.d[3] = 1.0f;
+
+ rgb = igt_matrix_transform(&csc_matrix, &yuv);
+
+ rgb_max = (output_fb->drm_format == DRM_FORMAT_XRGB2101010) ? 1023.0f : 255.0f;
+
+ pixel.r = rgb.d[0] / rgb_max;
+ pixel.g = rgb.d[1] / rgb_max;
+ pixel.b = rgb.d[2] / rgb_max;
+ } else {
+ igt_color_yuv_to_pixel(input_fb->drm_format, raw_y, raw_u, raw_v, &pixel);
+ }
+ } else {
+ uint32_t raw_pixel = le32_to_cpu(input_line[x]);
+ igt_color_fourcc_to_pixel(raw_pixel, input_fb->drm_format, &pixel);
+ }
+
+ /* Transform pixel through remaining transforms */
+ /* Skip first transform if it was a CSC that we already applied */
+ start_transform = apply_csc ? 1 : 0;
+ for (i = start_transform; i < num_transforms; i++)
+ if (transforms[i])
+ transforms[i](&pixel);
+
+ /* write to output buffer */
+ output_line[x] = cpu_to_le32(igt_color_pixel_to_fourcc(output_fb->drm_format, &pixel));
}
- /* copy line back to fb buffer */
- igt_memcpy_from_wc(ptr, line, fb->width * cpp);
+ /* Copy output line to output buffer */
+ igt_memcpy_from_wc(output_ptr + y * output_stride, output_line,
+ output_fb->width * output_cpp);
}
- free(line);
- igt_fb_unmap_buffer(fb, map);
+ free(output_line);
+ free(input_line);
+ igt_fb_unmap_buffer(output_fb, output_map);
+ igt_fb_unmap_buffer(input_fb, input_map);
return 0;
}
diff --git a/lib/igt_color.h b/lib/igt_color.h
index 722446400f01..d66cfebc4191 100644
--- a/lib/igt_color.h
+++ b/lib/igt_color.h
@@ -72,7 +72,11 @@ void igt_dump_fb(igt_display_t *display, igt_fb_t *fb, const char *path_name, co
typedef void (*igt_pixel_transform)(igt_pixel_t *pixel);
-int igt_color_transform_pixels(igt_fb_t *fb, igt_pixel_transform transforms[], int num_transforms);
+int igt_color_transform_pixels(igt_fb_t *input_fb, igt_fb_t *output_fb,
+ igt_pixel_transform transforms[],
+ int num_transforms,
+ int yuv_encoding,
+ enum igt_color_range yuv_range);
/* colorop helpers */
diff --git a/tests/kms_colorop.c b/tests/kms_colorop.c
index 16db0b8ad37f..bdfe312b8124 100644
--- a/tests/kms_colorop.c
+++ b/tests/kms_colorop.c
@@ -195,15 +195,25 @@ static bool compare_with_bracket(igt_fb_t *in, igt_fb_t *out)
#define MAX_COLOROPS 5
-static void apply_transforms(kms_colorop_t *colorops[], igt_fb_t *sw_transform_fb)
+static void apply_transforms(kms_colorop_t *colorops[], igt_fb_t *input_fb,
+ igt_fb_t *sw_transform_fb)
{
int i;
+ int yuv_encoding = -1;
+ enum igt_color_range yuv_range = IGT_COLOR_YCBCR_LIMITED_RANGE;
igt_pixel_transform transforms[MAX_COLOROPS];
for (i = 0; colorops[i]; i++)
transforms[i] = colorops[i]->transform;
- igt_color_transform_pixels(sw_transform_fb, transforms, i);
+ /* If first colorop is CSC FF, extract encoding/range for sw reference */
+ if (colorops[0] && colorops[0]->type == KMS_COLOROP_FIXED_MATRIX) {
+ yuv_encoding = colorops[0]->fixed_matrix_info.encoding;
+ yuv_range = colorops[0]->fixed_matrix_info.range;
+ }
+
+ igt_color_transform_pixels(input_fb, sw_transform_fb, transforms, i,
+ yuv_encoding, yuv_range);
}
static void colorop_plane_test(igt_display_t *display,
@@ -217,11 +227,8 @@ static void colorop_plane_test(igt_display_t *display,
{
igt_colorop_t *color_pipeline = NULL;
igt_fb_t sw_transform_fb;
- igt_crc_t input_crc, output_crc;
int res;
- igt_fb_get_fnv1a_crc(input_fb, &input_crc);
-
/* reset color pipeline*/
set_color_pipeline_bypass(plane);
@@ -235,18 +242,15 @@ static void colorop_plane_test(igt_display_t *display,
NULL);
igt_get_and_wait_out_fence(output);
- /* Compare input and output buffers. They should be equal here. */
- igt_fb_get_fnv1a_crc(output_fb, &output_crc);
-
- igt_assert_crc_equal(&input_crc, &output_crc);
-
- /* create sw transformed buffer */
- res = igt_copy_fb(display->drm_fd, input_fb, &sw_transform_fb);
+ /* create sw transform buffer with output format */
+ res = igt_create_fb(display->drm_fd,
+ input_fb->width, input_fb->height,
+ output_fb->drm_format,
+ DRM_FORMAT_MOD_LINEAR,
+ &sw_transform_fb);
igt_assert_lte(0, res);
- igt_assert(igt_cmp_fb_pixels(input_fb, &sw_transform_fb, 0, 0));
-
- apply_transforms(colorops, &sw_transform_fb);
+ apply_transforms(colorops, input_fb, &sw_transform_fb);
if (data.dump_check)
igt_dump_fb(display, &sw_transform_fb, ".", "sw_transform");
--
2.55.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v4 08/10] tests/kms_colorop: Add FIXED_MATRIX colorop tests
2026-07-31 18:01 [PATCH v4 00/10] [PATCH v4 00/10] YUV Conversion Colorop tests Harry Wentland
` (6 preceding siblings ...)
2026-07-31 18:01 ` [PATCH v4 07/10] lib/igt_color: Refactor transform_pixels for input/output FBs and CSC Harry Wentland
@ 2026-07-31 18:01 ` Harry Wentland
2026-07-31 18:01 ` [PATCH v4 09/10] tests/kms_colorop: Add bypass transition tests Harry Wentland
` (4 subsequent siblings)
12 siblings, 0 replies; 15+ messages in thread
From: Harry Wentland @ 2026-07-31 18:01 UTC (permalink / raw)
To: igt-dev; +Cc: Harry Wentland, Alex Hung
Add comprehensive test coverage for FIXED_MATRIX colorops for CSC:
Test cases:
- NV12 (8-bit YUV 4:2:0) CSC tests
- P010 (10-bit YUV 4:2:0) CSC tests
- BT.709, BT.601, and BT.2020 encoding tests
- Limited and full range tests
- CSC combined with additional colorops (sRGB EOTF, 3D LUT, CTM)
- Organized into separate RGB and YUV test groups
The tests verify that FIXED_MATRIX colorops correctly convert YUV input to
RGB output by comparing hardware CSC results with software reference
transformations using the igt_color_encoding matrix library.
Assisted-by: Claude:claude-sonnet-4-5
Signed-off-by: Harry Wentland <harry.wentland@amd.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
---
tests/kms_colorop.c | 269 +++++++++++++++++++++++++++++++++++---------
1 file changed, 218 insertions(+), 51 deletions(-)
diff --git a/tests/kms_colorop.c b/tests/kms_colorop.c
index bdfe312b8124..8055a36bab74 100644
--- a/tests/kms_colorop.c
+++ b/tests/kms_colorop.c
@@ -20,50 +20,95 @@
* SUBTEST: check_plane_colorop_ids
* Description: Verify that all igt_colorop_t IDs are unique across planes
*
- * SUBTEST: plane-%s-%s
- * Description: Tests DRM colorop properties on a plane
+ * SUBTEST: plane-XR24-XR24-bypass
+ * SUBTEST: plane-XR24-XR24-srgb_eotf
+ * SUBTEST: plane-XR24-XR24-srgb_inv_eotf
+ * SUBTEST: plane-XR24-XR24-srgb_eotf-srgb_inv_eotf
+ * SUBTEST: plane-XR24-XR24-srgb_eotf-srgb_inv_eotf-srgb_eotf
+ * SUBTEST: plane-XR24-XR24-srgb_inv_eotf_lut
+ * SUBTEST: plane-XR24-XR24-srgb_inv_eotf_lut-srgb_eotf_lut
+ * SUBTEST: plane-XR24-XR24-bt2020_inv_oetf
+ * SUBTEST: plane-XR24-XR24-bt2020_oetf
+ * SUBTEST: plane-XR24-XR24-bt2020_inv_oetf-bt2020_oetf
+ * SUBTEST: plane-XR24-XR24-pq_eotf
+ * SUBTEST: plane-XR24-XR24-pq_inv_eotf
+ * SUBTEST: plane-XR24-XR24-pq_eotf-pq_inv_eotf
+ * SUBTEST: plane-XR24-XR24-pq_125_eotf
+ * SUBTEST: plane-XR24-XR24-pq_125_inv_eotf
+ * SUBTEST: plane-XR24-XR24-pq_125_eotf-pq_125_inv_eotf
+ * SUBTEST: plane-XR24-XR24-pq_125_eotf-pq_125_inv_eotf-pq_125_eotf
+ * SUBTEST: plane-XR24-XR24-gamma_2_2
+ * SUBTEST: plane-XR24-XR24-gamma_2_2-gamma_2_2_inv
+ * SUBTEST: plane-XR24-XR24-gamma_2_2-gamma_2_2_inv-gamma_2_2
+ * SUBTEST: plane-XR24-XR24-ctm_3x4_50_desat
+ * SUBTEST: plane-XR24-XR24-ctm_3x4_overdrive
+ * SUBTEST: plane-XR24-XR24-ctm_3x4_oversaturate
+ * SUBTEST: plane-XR24-XR24-ctm_3x4_bt709_enc
+ * SUBTEST: plane-XR24-XR24-ctm_3x4_bt709_dec
+ * SUBTEST: plane-XR24-XR24-ctm_3x4_bt709_enc_dec
+ * SUBTEST: plane-XR24-XR24-ctm_3x4_bt709_dec_enc
+ * SUBTEST: plane-XR24-XR24-multiply_125
+ * SUBTEST: plane-XR24-XR24-multiply_inv_125
+ * SUBTEST: plane-XR24-XR24-3dlut_17_12_rgb
+ * SUBTEST: plane-XR30-XR30-bypass
+ * SUBTEST: plane-XR30-XR30-srgb_eotf
+ * SUBTEST: plane-XR30-XR30-srgb_inv_eotf
+ * SUBTEST: plane-XR30-XR30-srgb_eotf-srgb_inv_eotf
+ * SUBTEST: plane-XR30-XR30-srgb_eotf-srgb_inv_eotf-srgb_eotf
+ * SUBTEST: plane-XR30-XR30-srgb_inv_eotf_lut
+ * SUBTEST: plane-XR30-XR30-srgb_inv_eotf_lut-srgb_eotf_lut
+ * SUBTEST: plane-XR30-XR30-bt2020_inv_oetf
+ * SUBTEST: plane-XR30-XR30-bt2020_oetf
+ * SUBTEST: plane-XR30-XR30-bt2020_inv_oetf-bt2020_oetf
+ * SUBTEST: plane-XR30-XR30-pq_eotf
+ * SUBTEST: plane-XR30-XR30-pq_inv_eotf
+ * SUBTEST: plane-XR30-XR30-pq_eotf-pq_inv_eotf
+ * SUBTEST: plane-XR30-XR30-pq_125_eotf
+ * SUBTEST: plane-XR30-XR30-pq_125_inv_eotf
+ * SUBTEST: plane-XR30-XR30-pq_125_eotf-pq_125_inv_eotf
+ * SUBTEST: plane-XR30-XR30-pq_125_eotf-pq_125_inv_eotf-pq_125_eotf
+ * SUBTEST: plane-XR30-XR30-gamma_2_2
+ * SUBTEST: plane-XR30-XR30-gamma_2_2-gamma_2_2_inv
+ * SUBTEST: plane-XR30-XR30-gamma_2_2-gamma_2_2_inv-gamma_2_2
+ * SUBTEST: plane-XR30-XR30-ctm_3x4_50_desat
+ * SUBTEST: plane-XR30-XR30-ctm_3x4_overdrive
+ * SUBTEST: plane-XR30-XR30-ctm_3x4_oversaturate
+ * SUBTEST: plane-XR30-XR30-ctm_3x4_bt709_enc
+ * SUBTEST: plane-XR30-XR30-ctm_3x4_bt709_dec
+ * SUBTEST: plane-XR30-XR30-ctm_3x4_bt709_enc_dec
+ * SUBTEST: plane-XR30-XR30-ctm_3x4_bt709_dec_enc
+ * SUBTEST: plane-XR30-XR30-multiply_125
+ * SUBTEST: plane-XR30-XR30-multiply_inv_125
+ * SUBTEST: plane-XR30-XR30-3dlut_17_12_rgb
+ * Description: Tests DRM colorop properties on RGB formats
* Driver requirement: amdgpu
* Functionality: kms_core
* Mega feature: General Display Features
* Test category: functionality test
*
- * arg[1]:
- *
- * @XR24-XR24: XRGB8888 framebuffer and writeback buffer
- * @XR30-XR30: XRGB2101010 framebuffer and writeback buffer
- *
- * arg[2]:
- *
- * @bypass: Bypass Color Pipeline
- * @srgb_eotf: sRGB EOTF
- * @srgb_inv_eotf: sRGB Inverse EOTF
- * @srgb_eotf-srgb_inv_eotf: sRGB EOTF -> sRGB Inverse EOTF
- * @srgb_eotf-srgb_inv_eotf-srgb_eotf: sRGB EOTF -> sRGB Inverse EOTF -> sRGB EOTF
- * @srgb_inv_eotf_lut: sRGB Inverse EOTF Custom LUT
- * @srgb_inv_eotf_lut-srgb_eotf_lut: sRGB Inverse EOTF Custom LUT -> sRGB EOTF Custom LUT
- * @bt2020_inv_oetf: BT.2020 Inverse OETF
- * @bt2020_oetf: BT.2020 OETF
- * @bt2020_inv_oetf-bt2020_oetf: BT.2020 Inverse OETF > BT.2020 OETF
- * @pq_eotf: PQ EOTF
- * @pq_inv_eotf: PQ Inverse EOTF
- * @pq_eotf-pq_inv_eotf: PQ EOTF -> PQ Inverse EOTF
- * @pq_125_eotf: PQ EOTF for [0.0, 125.0] optical range
- * @pq_125_inv_eotf: PQ Inverse EOTF for [0.0, 125.0] optical range
- * @pq_125_eotf-pq_125_inv_eotf: PQ EOTF -> PQ Inverse EOTF with [0.0, 125.0] optical range
- * @pq_125_eotf-pq_125_inv_eotf-pq_125_eotf: PQ EOTF -> PQ Inverse EOTF -> PQ EOTF with [0.0, 125.0] optical range
- * @gamma_2_2: Gamma 2.2
- * @gamma_2_2-gamma_2_2_inv: Gamma 2.2 -> Gamma 2.2 Inverse
- * @gamma_2_2-gamma_2_2_inv-gamma_2_2: Gamma 2.2 -> Gamma 2.2 Inverse -> Gamma 2.2
- * @ctm_3x4_50_desat: 3x4 matrix doing a 50% desaturation
- * @ctm_3x4_overdrive: 3x4 matrix overdring all values by 50%
- * @ctm_3x4_oversaturate: 3x4 matrix oversaturating values
- * @ctm_3x4_bt709_enc: BT709 encoding matrix
- * @ctm_3x4_bt709_dec: BT709 decoding matrix
- * @ctm_3x4_bt709_enc_dec: BT709 encoding matrix, followed by decoding matrix
- * @ctm_3x4_bt709_dec_enc: BT709 decoding matrix, followed by encoding matrix
- * @multiply_125: Multiplier by 125
- * @multiply_inv_125: Multiplier by inverse of 125
- * @3dlut_17_12_rgb: 3D LUT with length 17, color depth 12, and traversal order = RGB
+ * SUBTEST: plane-NV12-XR24-fm_bt709_limited
+ * SUBTEST: plane-NV12-XR24-fm_bt709_full
+ * SUBTEST: plane-NV12-XR24-fm_bt601_limited
+ * SUBTEST: plane-NV12-XR24-fm_bt2020_limited
+ * SUBTEST: plane-NV12-XR24-fm_bt709_limited-srgb_eotf
+ * SUBTEST: plane-NV12-XR24-fm_bt601_limited-srgb_eotf
+ * SUBTEST: plane-NV12-XR24-fm_bt709_limited-3dlut_17_12_rgb
+ * SUBTEST: plane-NV12-XR24-fm_bt709_limited-ctm_3x4_50_desat
+ * SUBTEST: plane-NV12-XR24-fm_bt709_limited-srgb_eotf-ctm_3x4_50_desat
+ * SUBTEST: plane-P010-XR30-fm_bt709_limited
+ * SUBTEST: plane-P010-XR30-fm_bt709_full
+ * SUBTEST: plane-P010-XR30-fm_bt601_limited
+ * SUBTEST: plane-P010-XR30-fm_bt2020_limited
+ * SUBTEST: plane-P010-XR30-fm_bt709_limited-srgb_eotf
+ * SUBTEST: plane-P010-XR30-fm_bt601_limited-srgb_eotf
+ * SUBTEST: plane-P010-XR30-fm_bt709_limited-3dlut_17_12_rgb
+ * SUBTEST: plane-P010-XR30-fm_bt709_limited-ctm_3x4_50_desat
+ * SUBTEST: plane-P010-XR30-fm_bt709_limited-srgb_eotf-ctm_3x4_50_desat
+ * Description: Tests DRM colorop properties on YUV formats
+ * Driver requirement: amdgpu
+ * Functionality: kms_core
+ * Mega feature: General Display Features
+ * Test category: functionality test
*
*/
@@ -363,10 +408,11 @@ static const struct option long_options[] = {
int igt_main_args("d", long_options, help_str, opt_handler, NULL)
{
+ /* RGB tests - for RGB input formats only */
struct {
kms_colorop_t *colorops[MAX_COLOROPS];
const char *name;
- } tests[] = {
+ } tests_rgb[] = {
{ { NULL }, "bypass" },
{ { &kms_colorop_srgb_eotf, NULL }, "srgb_eotf" },
{ { &kms_colorop_srgb_inv_eotf, NULL }, "srgb_inv_eotf" },
@@ -399,15 +445,42 @@ int igt_main_args("d", long_options, help_str, opt_handler, NULL)
{ { &kms_colorop_3dlut_17_12_rgb, NULL }, "3dlut_17_12_rgb" },
};
+ /* YUV tests - CSC FF colorop with various encoding/range combinations and optional additional colorops */
+ struct {
+ kms_colorop_t *colorops[MAX_COLOROPS];
+ const char *name;
+ } tests_yuv[] = {
+ /* CSC only tests */
+ { { &kms_colorop_bt709_limited_ycbcr_to_rgb, NULL }, "fm_bt709_limited" },
+ { { &kms_colorop_bt709_full_ycbcr_to_rgb, NULL }, "fm_bt709_full" },
+ { { &kms_colorop_bt601_limited_ycbcr_to_rgb, NULL }, "fm_bt601_limited" },
+ { { &kms_colorop_bt2020_limited_ycbcr_to_rgb, NULL }, "fm_bt2020_limited" },
+ /* CSC + additional colorops */
+ { { &kms_colorop_bt709_limited_ycbcr_to_rgb, &kms_colorop_srgb_eotf, NULL }, "fm_bt709_limited-srgb_eotf" },
+ { { &kms_colorop_bt601_limited_ycbcr_to_rgb, &kms_colorop_srgb_eotf, NULL }, "fm_bt601_limited-srgb_eotf" },
+ { { &kms_colorop_bt709_limited_ycbcr_to_rgb, &kms_colorop_3dlut_17_12_rgb, NULL }, "fm_bt709_limited-3dlut_17_12_rgb" },
+ { { &kms_colorop_bt709_limited_ycbcr_to_rgb, &kms_colorop_ctm_3x4_50_desat, NULL }, "fm_bt709_limited-ctm_3x4_50_desat" },
+ { { &kms_colorop_bt709_limited_ycbcr_to_rgb, &kms_colorop_srgb_eotf, &kms_colorop_ctm_3x4_50_desat, NULL }, "fm_bt709_limited-srgb_eotf-ctm_3x4_50_desat" },
+ };
+
struct {
__u32 fourcc_in;
__u32 fourcc_out;
const char *name;
- } formats[] = {
+ } formats_rgb[] = {
{ DRM_FORMAT_XRGB8888, DRM_FORMAT_XRGB8888, "XR24-XR24" },
{ DRM_FORMAT_XRGB2101010, DRM_FORMAT_XRGB2101010, "XR30-XR30" },
};
+ struct {
+ __u32 fourcc_in;
+ __u32 fourcc_out;
+ const char *name;
+ } formats_yuv[] = {
+ { DRM_FORMAT_NV12, DRM_FORMAT_XRGB8888, "NV12-XR24" },
+ { DRM_FORMAT_P010, DRM_FORMAT_XRGB2101010, "P010-XR30" },
+ };
+
igt_display_t display;
int i, j, ret;
@@ -438,7 +511,8 @@ int igt_main_args("d", long_options, help_str, opt_handler, NULL)
check_plane_colorop_ids(&display);
}
- for (j = 0; j < ARRAY_SIZE(formats); j++) {
+ /* RGB format tests */
+ for (j = 0; j < ARRAY_SIZE(formats_rgb); j++) {
igt_output_t *output;
igt_plane_t *plane;
igt_fb_t input_fb, output_fb;
@@ -448,8 +522,8 @@ int igt_main_args("d", long_options, help_str, opt_handler, NULL)
igt_subtest_group() {
igt_fixture() {
output = kms_writeback_get_output(&display,
- formats[j].fourcc_in,
- formats[j].fourcc_out);
+ formats_rgb[j].fourcc_in,
+ formats_rgb[j].fourcc_out);
igt_require(output);
if (output->use_override_mode)
@@ -464,7 +538,7 @@ int igt_main_args("d", long_options, help_str, opt_handler, NULL)
fb_id = igt_create_color_pattern_fb(display.drm_fd,
mode.hdisplay, mode.vdisplay,
- formats[j].fourcc_in, DRM_FORMAT_MOD_LINEAR,
+ formats_rgb[j].fourcc_in, DRM_FORMAT_MOD_LINEAR,
0.2, 0.2, 0.2, &input_fb);
igt_assert(fb_id >= 0);
igt_plane_set_fb(plane, &input_fb);
@@ -474,23 +548,24 @@ int igt_main_args("d", long_options, help_str, opt_handler, NULL)
/* create output fb */
fb_id = igt_create_fb(display.drm_fd, mode.hdisplay, mode.vdisplay,
- formats[j].fourcc_in,
+ formats_rgb[j].fourcc_out,
igt_fb_mod_to_tiling(0),
&output_fb);
igt_require(fb_id > 0);
}
- for (i = 0; i < ARRAY_SIZE(tests); i++) {
+ /* Run RGB tests */
+ for (i = 0; i < ARRAY_SIZE(tests_rgb); i++) {
igt_describe("Check color ops on a plane");
- igt_subtest_f("plane-%s-%s", formats[j].name, tests[i].name)
+ igt_subtest_f("plane-%s-%s", formats_rgb[j].name, tests_rgb[i].name)
colorop_plane_test(&display,
output,
plane,
&input_fb,
&output_fb,
- formats[j].fourcc_in,
- formats[j].fourcc_out,
- tests[i].colorops);
+ formats_rgb[j].fourcc_in,
+ formats_rgb[j].fourcc_out,
+ tests_rgb[i].colorops);
}
igt_fixture() {
@@ -502,6 +577,98 @@ int igt_main_args("d", long_options, help_str, opt_handler, NULL)
}
}
+ /* YUV format tests */
+ for (j = 0; j < ARRAY_SIZE(formats_yuv); j++) {
+ igt_output_t *output;
+ igt_plane_t *plane;
+ igt_fb_t temp_fb, output_fb;
+ unsigned int fb_id;
+ drmModeModeInfo mode;
+
+ igt_subtest_group() {
+ igt_fixture() {
+ output = kms_writeback_get_output(&display,
+ formats_yuv[j].fourcc_in,
+ formats_yuv[j].fourcc_out);
+ igt_require(output);
+
+ if (output->use_override_mode)
+ memcpy(&mode, &output->override_mode, sizeof(mode));
+ else
+ memcpy(&mode, &output->config.default_mode, sizeof(mode));
+
+ plane = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
+ igt_assert(plane);
+ igt_require(igt_plane_has_prop(plane, IGT_PLANE_COLOR_PIPELINE));
+
+ /* Create temp fb to keep plane active between tests */
+ fb_id = igt_create_fb(display.drm_fd, mode.hdisplay, mode.vdisplay,
+ formats_yuv[j].fourcc_in,
+ igt_fb_mod_to_tiling(0),
+ &temp_fb);
+ igt_require(fb_id > 0);
+
+ /* Create output fb shared across tests */
+ fb_id = igt_create_fb(display.drm_fd, mode.hdisplay, mode.vdisplay,
+ formats_yuv[j].fourcc_out,
+ igt_fb_mod_to_tiling(0),
+ &output_fb);
+ igt_require(fb_id > 0);
+ }
+
+ /* Run YUV tests - create input_fb per test */
+ for (i = 0; i < ARRAY_SIZE(tests_yuv); i++) {
+ igt_describe("Check YUV CSC colorop");
+ igt_subtest_f("plane-%s-%s", formats_yuv[j].name, tests_yuv[i].name) {
+ igt_fb_t input_fb;
+ enum igt_color_encoding encoding;
+ enum igt_color_range range;
+
+ /* Extract encoding and range from first colorop (must be CSC FF) */
+ igt_assert(tests_yuv[i].colorops[0]);
+ igt_assert(tests_yuv[i].colorops[0]->type == KMS_COLOROP_FIXED_MATRIX);
+
+ encoding = tests_yuv[i].colorops[0]->fixed_matrix_info.encoding;
+ range = tests_yuv[i].colorops[0]->fixed_matrix_info.range;
+
+ /* Create input fb with matching encoding/range */
+ fb_id = igt_create_color_pattern_fb_yuv(display.drm_fd,
+ mode.hdisplay, mode.vdisplay,
+ formats_yuv[j].fourcc_in, DRM_FORMAT_MOD_LINEAR,
+ encoding, range,
+ 0.2, 0.2, 0.2, &input_fb);
+ igt_assert(fb_id >= 0);
+
+ if (data.dump_check)
+ igt_dump_fb(&display, &input_fb, ".", "input");
+
+ colorop_plane_test(&display,
+ output,
+ plane,
+ &input_fb,
+ &output_fb,
+ formats_yuv[j].fourcc_in,
+ formats_yuv[j].fourcc_out,
+ tests_yuv[i].colorops);
+
+ /* Switch plane back to temp_fb to keep CRTC active */
+ igt_plane_set_fb(plane, &temp_fb);
+ igt_display_commit_atomic(&display,
+ DRM_MODE_ATOMIC_ALLOW_MODESET,
+ NULL);
+
+ igt_remove_fb(display.drm_fd, &input_fb);
+ }
+ }
+
+ igt_fixture() {
+ igt_detach_crtc(&display, output);
+ igt_remove_fb(display.drm_fd, &temp_fb);
+ igt_remove_fb(display.drm_fd, &output_fb);
+ }
+ }
+ }
+
igt_fixture() {
igt_display_fini(&display);
drm_close_driver(display.drm_fd);
--
2.55.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v4 09/10] tests/kms_colorop: Add bypass transition tests
2026-07-31 18:01 [PATCH v4 00/10] [PATCH v4 00/10] YUV Conversion Colorop tests Harry Wentland
` (7 preceding siblings ...)
2026-07-31 18:01 ` [PATCH v4 08/10] tests/kms_colorop: Add FIXED_MATRIX colorop tests Harry Wentland
@ 2026-07-31 18:01 ` Harry Wentland
2026-07-31 18:02 ` [PATCH v4 10/10] tests/kms_colorop: Increase VKMS bracket to 3 up Harry Wentland
` (3 subsequent siblings)
12 siblings, 0 replies; 15+ messages in thread
From: Harry Wentland @ 2026-07-31 18:01 UTC (permalink / raw)
To: igt-dev; +Cc: Harry Wentland, Alex Hung
Add tests to verify color pipeline correctly transitions to bypass state
after being configured with various colorops. This ensures no stale state
remains when switching from an active configuration back to bypass.
This also changes existing test behavior: tests no longer commit bypass
state at the end, leaving the pipeline in its configured state between
subtests.
Test approach:
- Configure pipeline with specific colorops
- Verify configured output is correct
- Transition to bypass
- Verify bypass output matches input (identity transform)
Test coverage:
* Enumerated 1D curve (srgb_eotf)
* Custom 1D LUT (srgb_inv_eotf_lut)
* CTM (ctm_3x4_50_desat)
* 3D LUT (3dlut_17_12_rgb)
* Multi-stage (srgb_eotf + ctm_3x4_50_desat)
Assisted-by: Claude:claude-sonnet-4-5
Signed-off-by: Harry Wentland <harry.wentland@amd.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
---
tests/kms_colorop.c | 127 +++++++++++++++++++++++++++++++++++++++-----
1 file changed, 115 insertions(+), 12 deletions(-)
diff --git a/tests/kms_colorop.c b/tests/kms_colorop.c
index 8055a36bab74..c6adbc4b9121 100644
--- a/tests/kms_colorop.c
+++ b/tests/kms_colorop.c
@@ -80,6 +80,16 @@
* SUBTEST: plane-XR30-XR30-multiply_125
* SUBTEST: plane-XR30-XR30-multiply_inv_125
* SUBTEST: plane-XR30-XR30-3dlut_17_12_rgb
+ * SUBTEST: plane-bypass-XR24-XR24-srgb_eotf
+ * SUBTEST: plane-bypass-XR24-XR24-srgb_inv_eotf_lut
+ * SUBTEST: plane-bypass-XR24-XR24-ctm_3x4_50_desat
+ * SUBTEST: plane-bypass-XR24-XR24-3dlut_17_12_rgb
+ * SUBTEST: plane-bypass-XR24-XR24-srgb_eotf-ctm_3x4_50_desat
+ * SUBTEST: plane-bypass-XR30-XR30-srgb_eotf
+ * SUBTEST: plane-bypass-XR30-XR30-srgb_inv_eotf_lut
+ * SUBTEST: plane-bypass-XR30-XR30-ctm_3x4_50_desat
+ * SUBTEST: plane-bypass-XR30-XR30-3dlut_17_12_rgb
+ * SUBTEST: plane-bypass-XR30-XR30-srgb_eotf-ctm_3x4_50_desat
* Description: Tests DRM colorop properties on RGB formats
* Driver requirement: amdgpu
* Functionality: kms_core
@@ -268,7 +278,8 @@ static void colorop_plane_test(igt_display_t *display,
igt_fb_t *output_fb,
__u32 fourcc_in,
__u32 fourcc_out,
- kms_colorop_t *colorops[])
+ kms_colorop_t *colorops[],
+ bool verify_bypass)
{
igt_colorop_t *color_pipeline = NULL;
igt_fb_t sw_transform_fb;
@@ -329,17 +340,26 @@ static void colorop_plane_test(igt_display_t *display,
/* compare sw transformed and KMS transformed FBs */
igt_assert(compare_with_bracket(&sw_transform_fb, output_fb));
- /* reset color pipeline*/
- set_color_pipeline_bypass(plane);
+ /* Test bypass transition if requested */
+ if (verify_bypass) {
+ /* reset color pipeline*/
+ set_color_pipeline_bypass(plane);
- /* Commit */
- igt_plane_set_fb(plane, input_fb);
- igt_output_set_writeback_fb(output, output_fb);
+ /* Commit */
+ igt_plane_set_fb(plane, input_fb);
+ igt_output_set_writeback_fb(output, output_fb);
- igt_display_commit_atomic(output->display,
- DRM_MODE_ATOMIC_ALLOW_MODESET,
- NULL);
- igt_get_and_wait_out_fence(output);
+ igt_display_commit_atomic(output->display,
+ DRM_MODE_ATOMIC_ALLOW_MODESET,
+ NULL);
+ igt_get_and_wait_out_fence(output);
+
+ if (data.dump_check)
+ igt_dump_fb(display, output_fb, ".", "bypass_output");
+
+ /* For RGB bypass, output should match input */
+ igt_assert(compare_with_bracket(input_fb, output_fb));
+ }
}
static void check_plane_colorop_ids(igt_display_t *display)
@@ -463,6 +483,20 @@ int igt_main_args("d", long_options, help_str, opt_handler, NULL)
{ { &kms_colorop_bt709_limited_ycbcr_to_rgb, &kms_colorop_srgb_eotf, &kms_colorop_ctm_3x4_50_desat, NULL }, "fm_bt709_limited-srgb_eotf-ctm_3x4_50_desat" },
};
+ /* Bypass transition tests - test config -> bypass -> verify identity (RGB only) */
+ struct {
+ kms_colorop_t *colorops[MAX_COLOROPS];
+ const char *name;
+ } tests_bypass_transitions_rgb[] = {
+ /* One per colorop type */
+ { { &kms_colorop_srgb_eotf, NULL }, "srgb_eotf" },
+ { { &kms_colorop_srgb_inv_eotf_lut, NULL }, "srgb_inv_eotf_lut" },
+ { { &kms_colorop_ctm_3x4_50_desat, NULL }, "ctm_3x4_50_desat" },
+ { { &kms_colorop_3dlut_17_12_rgb, NULL }, "3dlut_17_12_rgb" },
+ /* Multi-stage */
+ { { &kms_colorop_srgb_eotf, &kms_colorop_ctm_3x4_50_desat, NULL }, "srgb_eotf-ctm_3x4_50_desat" },
+ };
+
struct {
__u32 fourcc_in;
__u32 fourcc_out;
@@ -565,7 +599,75 @@ int igt_main_args("d", long_options, help_str, opt_handler, NULL)
&output_fb,
formats_rgb[j].fourcc_in,
formats_rgb[j].fourcc_out,
- tests_rgb[i].colorops);
+ tests_rgb[i].colorops,
+ false);
+ }
+
+ igt_fixture() {
+ igt_detach_crtc(&display, output);
+ igt_remove_fb(display.drm_fd, &input_fb);
+ igt_remove_fb(display.drm_fd, &output_fb);
+
+ }
+ }
+ }
+
+ /* Bypass transition tests - RGB formats */
+ for (j = 0; j < ARRAY_SIZE(formats_rgb); j++) {
+ igt_output_t *output;
+ igt_plane_t *plane;
+ igt_fb_t input_fb, output_fb;
+ unsigned int fb_id;
+ drmModeModeInfo mode;
+
+ igt_subtest_group() {
+ igt_fixture() {
+ output = kms_writeback_get_output(&display,
+ formats_rgb[j].fourcc_in,
+ formats_rgb[j].fourcc_out);
+ igt_require(output);
+
+ if (output->use_override_mode)
+ memcpy(&mode, &output->override_mode, sizeof(mode));
+ else
+ memcpy(&mode, &output->config.default_mode, sizeof(mode));
+
+ /* create input fb */
+ plane = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
+ igt_assert(plane);
+ igt_require(igt_plane_has_prop(plane, IGT_PLANE_COLOR_PIPELINE));
+
+ fb_id = igt_create_color_pattern_fb(display.drm_fd,
+ mode.hdisplay, mode.vdisplay,
+ formats_rgb[j].fourcc_in, DRM_FORMAT_MOD_LINEAR,
+ 0.2, 0.2, 0.2, &input_fb);
+ igt_assert(fb_id >= 0);
+ igt_plane_set_fb(plane, &input_fb);
+
+ if (data.dump_check)
+ igt_dump_fb(&display, &input_fb, ".", "input");
+
+ /* create output fb */
+ fb_id = igt_create_fb(display.drm_fd, mode.hdisplay, mode.vdisplay,
+ formats_rgb[j].fourcc_out,
+ igt_fb_mod_to_tiling(0),
+ &output_fb);
+ igt_require(fb_id > 0);
+ }
+
+ /* Run bypass transition tests */
+ for (i = 0; i < ARRAY_SIZE(tests_bypass_transitions_rgb); i++) {
+ igt_describe("Test color pipeline to bypass transition");
+ igt_subtest_f("plane-bypass-%s-%s", formats_rgb[j].name, tests_bypass_transitions_rgb[i].name)
+ colorop_plane_test(&display,
+ output,
+ plane,
+ &input_fb,
+ &output_fb,
+ formats_rgb[j].fourcc_in,
+ formats_rgb[j].fourcc_out,
+ tests_bypass_transitions_rgb[i].colorops,
+ true);
}
igt_fixture() {
@@ -649,7 +751,8 @@ int igt_main_args("d", long_options, help_str, opt_handler, NULL)
&output_fb,
formats_yuv[j].fourcc_in,
formats_yuv[j].fourcc_out,
- tests_yuv[i].colorops);
+ tests_yuv[i].colorops,
+ false);
/* Switch plane back to temp_fb to keep CRTC active */
igt_plane_set_fb(plane, &temp_fb);
--
2.55.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v4 10/10] tests/kms_colorop: Increase VKMS bracket to 3 up
2026-07-31 18:01 [PATCH v4 00/10] [PATCH v4 00/10] YUV Conversion Colorop tests Harry Wentland
` (8 preceding siblings ...)
2026-07-31 18:01 ` [PATCH v4 09/10] tests/kms_colorop: Add bypass transition tests Harry Wentland
@ 2026-07-31 18:02 ` Harry Wentland
2026-07-31 18:33 ` ✓ Xe.CI.BAT: success for YUV Conversion Colorop tests (rev3) Patchwork
` (2 subsequent siblings)
12 siblings, 0 replies; 15+ messages in thread
From: Harry Wentland @ 2026-07-31 18:02 UTC (permalink / raw)
To: igt-dev; +Cc: Harry Wentland, Alex Hung, Louis Chauvet
The delta is a bit wider for tests of the CSC with other colorops.
Increase it to 3, which is still pretty tight.
Signed-off-by: Harry Wentland <harry.wentland@amd.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com>
---
tests/kms_colorop.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/kms_colorop.c b/tests/kms_colorop.c
index c6adbc4b9121..732b9d57f71b 100644
--- a/tests/kms_colorop.c
+++ b/tests/kms_colorop.c
@@ -234,7 +234,7 @@ static bool compare_with_bracket(igt_fb_t *in, igt_fb_t *out)
{
/* Each driver is expected to have its own bracket, i.e., by trial and error */
if (is_vkms_device(in->fd))
- return igt_cmp_fb_pixels(in, out, 1, 1);
+ return igt_cmp_fb_pixels(in, out, 3, 1);
if (is_amdgpu_device(in->fd))
return igt_cmp_fb_pixels(in, out, 13, 13);
--
2.55.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* ✓ Xe.CI.BAT: success for YUV Conversion Colorop tests (rev3)
2026-07-31 18:01 [PATCH v4 00/10] [PATCH v4 00/10] YUV Conversion Colorop tests Harry Wentland
` (9 preceding siblings ...)
2026-07-31 18:02 ` [PATCH v4 10/10] tests/kms_colorop: Increase VKMS bracket to 3 up Harry Wentland
@ 2026-07-31 18:33 ` Patchwork
2026-07-31 18:53 ` ✗ i915.CI.BAT: failure " Patchwork
2026-07-31 20:49 ` ✓ Xe.CI.FULL: success " Patchwork
12 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2026-07-31 18:33 UTC (permalink / raw)
To: Harry Wentland; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 765 bytes --]
== Series Details ==
Series: YUV Conversion Colorop tests (rev3)
URL : https://patchwork.freedesktop.org/series/164103/
State : success
== Summary ==
CI Bug Log - changes from XEIGT_9036_BAT -> XEIGTPW_15619_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (12 -> 12)
------------------------------
No changes in participating hosts
Changes
-------
No changes found
Build changes
-------------
* IGT: IGT_9036 -> IGTPW_15619
IGTPW_15619: 15619
IGT_9036: 9036
xe-5515-f9ef9f302ee01854066ec6da30550da6ea6cb03a: f9ef9f302ee01854066ec6da30550da6ea6cb03a
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/index.html
[-- Attachment #2: Type: text/html, Size: 1310 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* ✗ i915.CI.BAT: failure for YUV Conversion Colorop tests (rev3)
2026-07-31 18:01 [PATCH v4 00/10] [PATCH v4 00/10] YUV Conversion Colorop tests Harry Wentland
` (10 preceding siblings ...)
2026-07-31 18:33 ` ✓ Xe.CI.BAT: success for YUV Conversion Colorop tests (rev3) Patchwork
@ 2026-07-31 18:53 ` Patchwork
2026-07-31 20:49 ` ✓ Xe.CI.FULL: success " Patchwork
12 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2026-07-31 18:53 UTC (permalink / raw)
To: Harry Wentland; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 1666 bytes --]
== Series Details ==
Series: YUV Conversion Colorop tests (rev3)
URL : https://patchwork.freedesktop.org/series/164103/
State : failure
== Summary ==
CI Bug Log - changes from IGT_9036 -> IGTPW_15619
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with IGTPW_15619 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_15619, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15619/index.html
Participating hosts (41 -> 39)
------------------------------
Missing (2): bat-dg2-13 fi-snb-2520m
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_15619:
### IGT changes ###
#### Possible regressions ####
* igt@i915_pm_rpm@module-reload:
- bat-apl-1: [PASS][1] -> [DMESG-WARN][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_9036/bat-apl-1/igt@i915_pm_rpm@module-reload.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15619/bat-apl-1/igt@i915_pm_rpm@module-reload.html
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_9036 -> IGTPW_15619
CI-20190529: 20190529
CI_DRM_18932: f9ef9f302ee01854066ec6da30550da6ea6cb03a @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_15619: 15619
IGT_9036: 9036
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15619/index.html
[-- Attachment #2: Type: text/html, Size: 2269 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* ✓ Xe.CI.FULL: success for YUV Conversion Colorop tests (rev3)
2026-07-31 18:01 [PATCH v4 00/10] [PATCH v4 00/10] YUV Conversion Colorop tests Harry Wentland
` (11 preceding siblings ...)
2026-07-31 18:53 ` ✗ i915.CI.BAT: failure " Patchwork
@ 2026-07-31 20:49 ` Patchwork
12 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2026-07-31 20:49 UTC (permalink / raw)
To: Harry Wentland; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 80333 bytes --]
== Series Details ==
Series: YUV Conversion Colorop tests (rev3)
URL : https://patchwork.freedesktop.org/series/164103/
State : success
== Summary ==
CI Bug Log - changes from XEIGT_9036_FULL -> XEIGTPW_15619_FULL
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (2 -> 2)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in XEIGTPW_15619_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_big_fb@4-tiled-64bpp-rotate-90:
- shard-bmg: NOTRUN -> [SKIP][1] ([Intel XE#2327]) +3 other tests skip
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-10/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html
* igt@kms_big_fb@y-tiled-16bpp-rotate-180:
- shard-bmg: NOTRUN -> [SKIP][2] ([Intel XE#1124]) +8 other tests skip
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-5/igt@kms_big_fb@y-tiled-16bpp-rotate-180.html
* igt@kms_bw@linear-tiling-2-displays-target-1920x1080p:
- shard-bmg: NOTRUN -> [SKIP][3] ([Intel XE#367])
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-2/igt@kms_bw@linear-tiling-2-displays-target-1920x1080p.html
* igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs-cc:
- shard-bmg: NOTRUN -> [SKIP][4] ([Intel XE#2887]) +4 other tests skip
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-5/igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs-cc.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc:
- shard-bmg: NOTRUN -> [SKIP][5] ([Intel XE#3432]) +2 other tests skip
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-3/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs@pipe-d-hdmi-a-3:
- shard-bmg: NOTRUN -> [SKIP][6] ([Intel XE#2652]) +15 other tests skip
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-4/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs@pipe-d-hdmi-a-3.html
* igt@kms_chamelium_color@ctm-red-to-blue:
- shard-bmg: NOTRUN -> [SKIP][7] ([Intel XE#2325] / [Intel XE#7358]) +1 other test skip
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-5/igt@kms_chamelium_color@ctm-red-to-blue.html
* igt@kms_chamelium_edid@dp-edid-read:
- shard-bmg: NOTRUN -> [SKIP][8] ([Intel XE#2252]) +4 other tests skip
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-2/igt@kms_chamelium_edid@dp-edid-read.html
* igt@kms_color_pipeline@plane-lut3d-green-only@pipe-b-plane-0:
- shard-bmg: NOTRUN -> [SKIP][9] ([Intel XE#6969]) +10 other tests skip
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-10/igt@kms_color_pipeline@plane-lut3d-green-only@pipe-b-plane-0.html
* igt@kms_color_pipeline@plane-lut3d-green-only@pipe-d-plane-2:
- shard-bmg: NOTRUN -> [SKIP][10] ([Intel XE#6969] / [Intel XE#7006]) +1 other test skip
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-10/igt@kms_color_pipeline@plane-lut3d-green-only@pipe-d-plane-2.html
* igt@kms_content_protection@atomic-dpms-hdcp14@pipe-a-dp-2:
- shard-bmg: NOTRUN -> [FAIL][11] ([Intel XE#3304] / [Intel XE#7374])
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-1/igt@kms_content_protection@atomic-dpms-hdcp14@pipe-a-dp-2.html
* igt@kms_content_protection@lic-type-1:
- shard-bmg: NOTRUN -> [SKIP][12] ([Intel XE#7642])
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-2/igt@kms_content_protection@lic-type-1.html
* igt@kms_content_protection@srm@pipe-a-dp-2:
- shard-bmg: NOTRUN -> [FAIL][13] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) +1 other test fail
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-10/igt@kms_content_protection@srm@pipe-a-dp-2.html
* igt@kms_cursor_crc@cursor-rapid-movement-32x10:
- shard-bmg: NOTRUN -> [SKIP][14] ([Intel XE#2320]) +3 other tests skip
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-10/igt@kms_cursor_crc@cursor-rapid-movement-32x10.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions:
- shard-bmg: NOTRUN -> [SKIP][15] ([Intel XE#2286] / [Intel XE#6035])
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-9/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html
* igt@kms_dsc@dsc-with-output-formats-bigjoiner:
- shard-bmg: NOTRUN -> [SKIP][16] ([Intel XE#8265]) +1 other test skip
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-9/igt@kms_dsc@dsc-with-output-formats-bigjoiner.html
* igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests:
- shard-bmg: NOTRUN -> [SKIP][17] ([Intel XE#4422] / [Intel XE#7442]) +1 other test skip
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-1/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests.html
* igt@kms_flip@flip-vs-expired-vblank@a-edp1:
- shard-lnl: [PASS][18] -> [FAIL][19] ([Intel XE#301])
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-lnl-8/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling:
- shard-bmg: NOTRUN -> [SKIP][20] ([Intel XE#7178] / [Intel XE#7351])
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-8/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff:
- shard-bmg: NOTRUN -> [SKIP][21] ([Intel XE#4141]) +7 other tests skip
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-8/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-render:
- shard-bmg: NOTRUN -> [SKIP][22] ([Intel XE#2311]) +36 other tests skip
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcdrrs-argb161616f-draw-render:
- shard-bmg: NOTRUN -> [SKIP][23] ([Intel XE#7061] / [Intel XE#7356]) +2 other tests skip
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcdrrs-argb161616f-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-plflip-blt:
- shard-bmg: NOTRUN -> [SKIP][24] ([Intel XE#2313]) +30 other tests skip
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsrhdr-abgr161616f-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][25] ([Intel XE#7061]) +2 other tests skip
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-4/igt@kms_frontbuffer_tracking@fbcpsrhdr-abgr161616f-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsrhdr-tiling-y:
- shard-bmg: NOTRUN -> [SKIP][26] ([Intel XE#7399])
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcpsrhdr-tiling-y.html
* igt@kms_frontbuffer_tracking@plane-fbc-rte:
- shard-bmg: NOTRUN -> [SKIP][27] ([Intel XE#2350] / [Intel XE#7503])
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-6/igt@kms_frontbuffer_tracking@plane-fbc-rte.html
* igt@kms_hdr@invalid-hdr:
- shard-bmg: [PASS][28] -> [SKIP][29] ([Intel XE#1503])
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-2/igt@kms_hdr@invalid-hdr.html
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-3/igt@kms_hdr@invalid-hdr.html
* igt@kms_joiner@basic-max-non-joiner:
- shard-bmg: NOTRUN -> [SKIP][30] ([Intel XE#4298] / [Intel XE#5873])
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-6/igt@kms_joiner@basic-max-non-joiner.html
* igt@kms_panel_fitting@legacy:
- shard-bmg: NOTRUN -> [SKIP][31] ([Intel XE#2486])
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-4/igt@kms_panel_fitting@legacy.html
* igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-cc-modifier-source-clamping:
- shard-bmg: NOTRUN -> [SKIP][32] ([Intel XE#7283]) +3 other tests skip
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-3/igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-cc-modifier-source-clamping.html
* igt@kms_plane@planar-pixel-format-settings@nv12-tile4-src-y:
- shard-bmg: NOTRUN -> [SKIP][33] ([Intel XE#8076])
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-5/igt@kms_plane@planar-pixel-format-settings@nv12-tile4-src-y.html
* igt@kms_plane_multiple@2x-tiling-yf:
- shard-bmg: NOTRUN -> [SKIP][34] ([Intel XE#5021] / [Intel XE#7377]) +1 other test skip
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-1/igt@kms_plane_multiple@2x-tiling-yf.html
* igt@kms_plane_multiple@tiling-yf:
- shard-bmg: NOTRUN -> [SKIP][35] ([Intel XE#5020] / [Intel XE#7348])
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-4/igt@kms_plane_multiple@tiling-yf.html
* igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b:
- shard-bmg: NOTRUN -> [SKIP][36] ([Intel XE#2763] / [Intel XE#6886]) +13 other tests skip
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-8/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b.html
* igt@kms_psr2_sf@fbc-pr-primary-plane-update-sf-dmg-area:
- shard-bmg: NOTRUN -> [SKIP][37] ([Intel XE#1489]) +3 other tests skip
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-8/igt@kms_psr2_sf@fbc-pr-primary-plane-update-sf-dmg-area.html
* igt@kms_psr2_su@page_flip-p010:
- shard-bmg: NOTRUN -> [SKIP][38] ([Intel XE#2387] / [Intel XE#7429])
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-1/igt@kms_psr2_su@page_flip-p010.html
* igt@kms_psr@psr2-no-drrs:
- shard-bmg: NOTRUN -> [SKIP][39] ([Intel XE#2234] / [Intel XE#2850]) +6 other tests skip
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-3/igt@kms_psr@psr2-no-drrs.html
* igt@kms_psr_stress_test@invalidate-primary-flip-overlay:
- shard-bmg: NOTRUN -> [SKIP][40] ([Intel XE#7795])
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-10/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html
* igt@kms_rotation_crc@bad-pixel-format:
- shard-bmg: NOTRUN -> [SKIP][41] ([Intel XE#3904] / [Intel XE#7342])
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-5/igt@kms_rotation_crc@bad-pixel-format.html
* igt@kms_rotation_crc@primary-4-tiled-reflect-x-180:
- shard-bmg: [PASS][42] -> [DMESG-WARN][43] ([Intel XE#8300])
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-1/igt@kms_rotation_crc@primary-4-tiled-reflect-x-180.html
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-8/igt@kms_rotation_crc@primary-4-tiled-reflect-x-180.html
* igt@kms_rotation_crc@primary-y-tiled-reflect-x-180:
- shard-bmg: NOTRUN -> [SKIP][44] ([Intel XE#2330] / [Intel XE#5813])
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-5/igt@kms_rotation_crc@primary-y-tiled-reflect-x-180.html
* igt@kms_scaling_modes@scaling-mode-center:
- shard-bmg: NOTRUN -> [SKIP][45] ([Intel XE#2413])
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-6/igt@kms_scaling_modes@scaling-mode-center.html
* igt@kms_sharpness_filter@invalid-filter-with-scaler:
- shard-bmg: NOTRUN -> [SKIP][46] ([Intel XE#6503])
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-9/igt@kms_sharpness_filter@invalid-filter-with-scaler.html
* igt@kms_vrr@seamless-rr-switch-virtual:
- shard-bmg: NOTRUN -> [SKIP][47] ([Intel XE#1499])
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-4/igt@kms_vrr@seamless-rr-switch-virtual.html
* igt@xe_evict@evict-cm-threads-small-multi-queue:
- shard-bmg: NOTRUN -> [SKIP][48] ([Intel XE#8370])
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-8/igt@xe_evict@evict-cm-threads-small-multi-queue.html
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr:
- shard-bmg: NOTRUN -> [SKIP][49] ([Intel XE#8714]) +80 other tests skip
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr.html
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-userptr-rebind:
- shard-bmg: NOTRUN -> [SKIP][50] ([Intel XE#2322] / [Intel XE#7372]) +5 other tests skip
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-4/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-userptr-rebind.html
* igt@xe_exec_fault_mode@once-multi-queue-rebind-imm:
- shard-bmg: NOTRUN -> [SKIP][51] ([Intel XE#8374]) +8 other tests skip
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-5/igt@xe_exec_fault_mode@once-multi-queue-rebind-imm.html
* igt@xe_exec_multi_queue@few-execs-preempt-mode-userptr-invalidate:
- shard-bmg: NOTRUN -> [SKIP][52] ([Intel XE#8364]) +16 other tests skip
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-4/igt@xe_exec_multi_queue@few-execs-preempt-mode-userptr-invalidate.html
* igt@xe_exec_reset@multi-queue-gt-reset:
- shard-bmg: NOTRUN -> [SKIP][53] ([Intel XE#8369]) +2 other tests skip
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-3/igt@xe_exec_reset@multi-queue-gt-reset.html
* igt@xe_exec_threads@threads-multi-queue-cm-fd-userptr:
- shard-bmg: NOTRUN -> [SKIP][54] ([Intel XE#8378]) +4 other tests skip
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-3/igt@xe_exec_threads@threads-multi-queue-cm-fd-userptr.html
* igt@xe_fault_injection@vm-bind-fail-vm_bind_ioctl_ops_create:
- shard-bmg: [PASS][55] -> [ABORT][56] ([Intel XE#8007])
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-9/igt@xe_fault_injection@vm-bind-fail-vm_bind_ioctl_ops_create.html
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-1/igt@xe_fault_injection@vm-bind-fail-vm_bind_ioctl_ops_create.html
* igt@xe_multigpu_svm@mgpu-latency-prefetch:
- shard-bmg: NOTRUN -> [SKIP][57] ([Intel XE#6964] / [Intel XE#8714])
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@xe_multigpu_svm@mgpu-latency-prefetch.html
* igt@xe_pxp@pxp-stale-bo-bind-post-termination-irq:
- shard-bmg: NOTRUN -> [SKIP][58] ([Intel XE#4733] / [Intel XE#7417]) +2 other tests skip
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-2/igt@xe_pxp@pxp-stale-bo-bind-post-termination-irq.html
* igt@xe_query@multigpu-query-config:
- shard-bmg: NOTRUN -> [SKIP][59] ([Intel XE#944]) +1 other test skip
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-5/igt@xe_query@multigpu-query-config.html
* igt@xe_sriov_vram@vf-access-provisioned:
- shard-bmg: [PASS][60] -> [SKIP][61] ([Intel XE#8714]) +312 other tests skip
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-6/igt@xe_sriov_vram@vf-access-provisioned.html
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@xe_sriov_vram@vf-access-provisioned.html
* igt@xe_wedged@wedged-at-any-timeout:
- shard-bmg: NOTRUN -> [DMESG-WARN][62] ([Intel XE#5545])
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-8/igt@xe_wedged@wedged-at-any-timeout.html
#### Possible fixes ####
* igt@core_getversion@basic:
- shard-bmg: [FAIL][63] ([Intel XE#8714]) -> [PASS][64]
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@core_getversion@basic.html
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-2/igt@core_getversion@basic.html
* igt@fbdev@write:
- shard-bmg: [SKIP][65] ([Intel XE#2134]) -> [PASS][66]
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@fbdev@write.html
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-4/igt@fbdev@write.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic:
- shard-bmg: [FAIL][67] ([Intel XE#7571]) -> [PASS][68]
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-3/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-2/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
* igt@kms_flip@flip-vs-expired-vblank@c-edp1:
- shard-lnl: [FAIL][69] ([Intel XE#301] / [Intel XE#3149]) -> [PASS][70]
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank@c-edp1.html
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-lnl-8/igt@kms_flip@flip-vs-expired-vblank@c-edp1.html
* igt@kms_pm_dc@dc6-psr:
- shard-lnl: [FAIL][71] ([Intel XE#8399]) -> [PASS][72]
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-lnl-5/igt@kms_pm_dc@dc6-psr.html
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-lnl-8/igt@kms_pm_dc@dc6-psr.html
* igt@kms_pm_rpm@legacy-planes-dpms:
- shard-bmg: [SKIP][73] ([Intel XE#8710] / [Intel XE#8714]) -> [PASS][74]
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_pm_rpm@legacy-planes-dpms.html
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-10/igt@kms_pm_rpm@legacy-planes-dpms.html
* igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv:
- shard-bmg: [ABORT][75] ([Intel XE#8007]) -> [PASS][76]
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-8/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-2/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html
* igt@xe_sriov_auto_provisioning@fair-allocation@numvfs-random:
- shard-bmg: [FAIL][77] ([Intel XE#7992]) -> [PASS][78] +3 other tests pass
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-5/igt@xe_sriov_auto_provisioning@fair-allocation@numvfs-random.html
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-9/igt@xe_sriov_auto_provisioning@fair-allocation@numvfs-random.html
* igt@xe_sriov_scheduling@equal-throughput-normal-priority@numvfs-random-gt1-vcs0:
- shard-bmg: [FAIL][79] ([Intel XE#8526]) -> [PASS][80]
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-1/igt@xe_sriov_scheduling@equal-throughput-normal-priority@numvfs-random-gt1-vcs0.html
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-3/igt@xe_sriov_scheduling@equal-throughput-normal-priority@numvfs-random-gt1-vcs0.html
* igt@xe_sysfs_preempt_timeout@preempt_timeout_us-timeout:
- shard-bmg: [SKIP][81] ([Intel XE#8714]) -> [PASS][82] +804 other tests pass
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@xe_sysfs_preempt_timeout@preempt_timeout_us-timeout.html
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-6/igt@xe_sysfs_preempt_timeout@preempt_timeout_us-timeout.html
#### Warnings ####
* igt@kms_big_fb@4-tiled-32bpp-rotate-90:
- shard-bmg: [SKIP][83] ([Intel XE#2327]) -> [SKIP][84] ([Intel XE#8714])
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-3/igt@kms_big_fb@4-tiled-32bpp-rotate-90.html
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_big_fb@4-tiled-32bpp-rotate-90.html
* igt@kms_big_fb@x-tiled-16bpp-rotate-90:
- shard-bmg: [SKIP][85] ([Intel XE#8714]) -> [SKIP][86] ([Intel XE#2327]) +5 other tests skip
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_big_fb@x-tiled-16bpp-rotate-90.html
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-3/igt@kms_big_fb@x-tiled-16bpp-rotate-90.html
* igt@kms_big_fb@y-tiled-32bpp-rotate-270:
- shard-bmg: [SKIP][87] ([Intel XE#8714]) -> [SKIP][88] ([Intel XE#1124]) +12 other tests skip
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_big_fb@y-tiled-32bpp-rotate-270.html
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-2/igt@kms_big_fb@y-tiled-32bpp-rotate-270.html
* igt@kms_big_fb@y-tiled-addfb:
- shard-bmg: [SKIP][89] ([Intel XE#8714]) -> [SKIP][90] ([Intel XE#2328] / [Intel XE#7367])
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_big_fb@y-tiled-addfb.html
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-6/igt@kms_big_fb@y-tiled-addfb.html
* igt@kms_big_fb@y-tiled-addfb-size-offset-overflow:
- shard-bmg: [SKIP][91] ([Intel XE#8714]) -> [SKIP][92] ([Intel XE#607] / [Intel XE#7361])
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_big_fb@y-tiled-addfb-size-offset-overflow.html
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-4/igt@kms_big_fb@y-tiled-addfb-size-offset-overflow.html
* igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip:
- shard-bmg: [SKIP][93] ([Intel XE#1124]) -> [SKIP][94] ([Intel XE#8714]) +5 other tests skip
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-3/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
* igt@kms_big_fb@yf-tiled-addfb-size-overflow:
- shard-bmg: [SKIP][95] ([Intel XE#610] / [Intel XE#7387]) -> [SKIP][96] ([Intel XE#8714])
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-5/igt@kms_big_fb@yf-tiled-addfb-size-overflow.html
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_big_fb@yf-tiled-addfb-size-overflow.html
* igt@kms_bw@connected-linear-tiling-3-displays-target-2160x1440p:
- shard-bmg: [SKIP][97] ([Intel XE#8714]) -> [SKIP][98] ([Intel XE#7679]) +1 other test skip
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_bw@connected-linear-tiling-3-displays-target-2160x1440p.html
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-9/igt@kms_bw@connected-linear-tiling-3-displays-target-2160x1440p.html
* igt@kms_bw@connected-linear-tiling-4-displays-target-2160x1440p:
- shard-bmg: [SKIP][99] ([Intel XE#7679]) -> [SKIP][100] ([Intel XE#8714])
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-2/igt@kms_bw@connected-linear-tiling-4-displays-target-2160x1440p.html
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_bw@connected-linear-tiling-4-displays-target-2160x1440p.html
* igt@kms_bw@linear-tiling-3-displays-target-2160x1440p:
- shard-bmg: [SKIP][101] ([Intel XE#8714]) -> [SKIP][102] ([Intel XE#367]) +1 other test skip
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_bw@linear-tiling-3-displays-target-2160x1440p.html
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-1/igt@kms_bw@linear-tiling-3-displays-target-2160x1440p.html
* igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs:
- shard-bmg: [SKIP][103] ([Intel XE#8714]) -> [SKIP][104] ([Intel XE#2652]) +1 other test skip
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-5/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs:
- shard-bmg: [SKIP][105] ([Intel XE#3432]) -> [SKIP][106] ([Intel XE#8714]) +1 other test skip
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-8/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs.html
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs.html
* igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs:
- shard-bmg: [SKIP][107] ([Intel XE#8714]) -> [SKIP][108] ([Intel XE#3432]) +1 other test skip
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs.html
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-3/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc:
- shard-bmg: [SKIP][109] ([Intel XE#8714]) -> [SKIP][110] ([Intel XE#2887]) +16 other tests skip
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc.html
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-6/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc.html
* igt@kms_ccs@missing-ccs-buffer-yf-tiled-ccs:
- shard-bmg: [SKIP][111] ([Intel XE#2887]) -> [SKIP][112] ([Intel XE#8714]) +5 other tests skip
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-8/igt@kms_ccs@missing-ccs-buffer-yf-tiled-ccs.html
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_ccs@missing-ccs-buffer-yf-tiled-ccs.html
* igt@kms_cdclk@mode-transition-all-outputs:
- shard-bmg: [SKIP][113] ([Intel XE#8714]) -> [SKIP][114] ([Intel XE#2724] / [Intel XE#7449])
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_cdclk@mode-transition-all-outputs.html
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-3/igt@kms_cdclk@mode-transition-all-outputs.html
* igt@kms_chamelium_audio@hdmi-audio-edid:
- shard-bmg: [SKIP][115] ([Intel XE#2252]) -> [SKIP][116] ([Intel XE#8714]) +5 other tests skip
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-3/igt@kms_chamelium_audio@hdmi-audio-edid.html
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_chamelium_audio@hdmi-audio-edid.html
* igt@kms_chamelium_color@ctm-limited-range:
- shard-bmg: [SKIP][117] ([Intel XE#2325] / [Intel XE#7358]) -> [SKIP][118] ([Intel XE#8714])
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-9/igt@kms_chamelium_color@ctm-limited-range.html
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_chamelium_color@ctm-limited-range.html
* igt@kms_chamelium_color@gamma:
- shard-bmg: [SKIP][119] ([Intel XE#8714]) -> [SKIP][120] ([Intel XE#2325] / [Intel XE#7358]) +1 other test skip
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_chamelium_color@gamma.html
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-2/igt@kms_chamelium_color@gamma.html
* igt@kms_chamelium_color_pipeline@plane-ctm3x4:
- shard-bmg: [SKIP][121] ([Intel XE#8714]) -> [SKIP][122] ([Intel XE#7358])
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_chamelium_color_pipeline@plane-ctm3x4.html
[122]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-6/igt@kms_chamelium_color_pipeline@plane-ctm3x4.html
* igt@kms_chamelium_color_pipeline@plane-lut1d-pre-ctm3x4:
- shard-bmg: [SKIP][123] ([Intel XE#7358]) -> [SKIP][124] ([Intel XE#8714])
[123]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-5/igt@kms_chamelium_color_pipeline@plane-lut1d-pre-ctm3x4.html
[124]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_chamelium_color_pipeline@plane-lut1d-pre-ctm3x4.html
* igt@kms_chamelium_edid@dp-edid-change-during-hibernate:
- shard-bmg: [SKIP][125] ([Intel XE#8714]) -> [SKIP][126] ([Intel XE#2252]) +12 other tests skip
[125]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_chamelium_edid@dp-edid-change-during-hibernate.html
[126]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-6/igt@kms_chamelium_edid@dp-edid-change-during-hibernate.html
* igt@kms_content_protection@atomic-dpms-hdcp14:
- shard-bmg: [SKIP][127] ([Intel XE#8714]) -> [FAIL][128] ([Intel XE#3304] / [Intel XE#7374])
[127]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_content_protection@atomic-dpms-hdcp14.html
[128]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-1/igt@kms_content_protection@atomic-dpms-hdcp14.html
* igt@kms_content_protection@dp-mst-type-0-suspend-resume:
- shard-bmg: [SKIP][129] ([Intel XE#8714]) -> [SKIP][130] ([Intel XE#6974])
[129]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_content_protection@dp-mst-type-0-suspend-resume.html
[130]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-1/igt@kms_content_protection@dp-mst-type-0-suspend-resume.html
* igt@kms_content_protection@legacy-hdcp14:
- shard-bmg: [SKIP][131] ([Intel XE#8714]) -> [FAIL][132] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) +1 other test fail
[131]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_content_protection@legacy-hdcp14.html
[132]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-4/igt@kms_content_protection@legacy-hdcp14.html
* igt@kms_content_protection@lic-type-0-hdcp14:
- shard-bmg: [FAIL][133] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) -> [SKIP][134] ([Intel XE#8714])
[133]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-1/igt@kms_content_protection@lic-type-0-hdcp14.html
[134]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_content_protection@lic-type-0-hdcp14.html
* igt@kms_cursor_crc@cursor-offscreen-256x85:
- shard-bmg: [SKIP][135] ([Intel XE#8714]) -> [SKIP][136] ([Intel XE#2320]) +4 other tests skip
[135]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_cursor_crc@cursor-offscreen-256x85.html
[136]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-6/igt@kms_cursor_crc@cursor-offscreen-256x85.html
* igt@kms_cursor_crc@cursor-onscreen-512x170:
- shard-bmg: [SKIP][137] ([Intel XE#2321] / [Intel XE#7355]) -> [SKIP][138] ([Intel XE#8714]) +1 other test skip
[137]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-10/igt@kms_cursor_crc@cursor-onscreen-512x170.html
[138]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_cursor_crc@cursor-onscreen-512x170.html
* igt@kms_cursor_crc@cursor-onscreen-512x512:
- shard-bmg: [SKIP][139] ([Intel XE#8714]) -> [SKIP][140] ([Intel XE#2321] / [Intel XE#7355]) +1 other test skip
[139]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_cursor_crc@cursor-onscreen-512x512.html
[140]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-1/igt@kms_cursor_crc@cursor-onscreen-512x512.html
* igt@kms_cursor_crc@cursor-sliding-64x21:
- shard-bmg: [SKIP][141] ([Intel XE#2320]) -> [SKIP][142] ([Intel XE#8714])
[141]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-9/igt@kms_cursor_crc@cursor-sliding-64x21.html
[142]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_cursor_crc@cursor-sliding-64x21.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size:
- shard-bmg: [SKIP][143] ([Intel XE#8714]) -> [SKIP][144] ([Intel XE#2286] / [Intel XE#6035])
[143]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html
[144]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-1/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle:
- shard-bmg: [SKIP][145] ([Intel XE#2286] / [Intel XE#6035]) -> [SKIP][146] ([Intel XE#8714])
[145]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-4/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html
[146]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html
* igt@kms_dirtyfb@drrs-dirtyfb-ioctl:
- shard-bmg: [SKIP][147] ([Intel XE#8714]) -> [SKIP][148] ([Intel XE#1508])
[147]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_dirtyfb@drrs-dirtyfb-ioctl.html
[148]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-10/igt@kms_dirtyfb@drrs-dirtyfb-ioctl.html
* igt@kms_dirtyfb@fbc-dirtyfb-ioctl:
- shard-bmg: [SKIP][149] ([Intel XE#8714]) -> [SKIP][150] ([Intel XE#4210] / [Intel XE#7467])
[149]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_dirtyfb@fbc-dirtyfb-ioctl.html
[150]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-4/igt@kms_dirtyfb@fbc-dirtyfb-ioctl.html
* igt@kms_dsc@dsc-fractional-bpp-bigjoiner:
- shard-bmg: [SKIP][151] ([Intel XE#8265]) -> [SKIP][152] ([Intel XE#8714]) +3 other tests skip
[151]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-1/igt@kms_dsc@dsc-fractional-bpp-bigjoiner.html
[152]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_dsc@dsc-fractional-bpp-bigjoiner.html
* igt@kms_dsc@dsc-fractional-bpp-with-bpc-bigjoiner:
- shard-bmg: [SKIP][153] ([Intel XE#8714]) -> [SKIP][154] ([Intel XE#8265]) +3 other tests skip
[153]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_dsc@dsc-fractional-bpp-with-bpc-bigjoiner.html
[154]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-5/igt@kms_dsc@dsc-fractional-bpp-with-bpc-bigjoiner.html
* igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-out-visible-area:
- shard-bmg: [SKIP][155] ([Intel XE#8714]) -> [SKIP][156] ([Intel XE#4422] / [Intel XE#7442])
[155]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-out-visible-area.html
[156]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-3/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-out-visible-area.html
* igt@kms_fbcon_fbt@fbc-suspend:
- shard-bmg: [SKIP][157] ([Intel XE#8714]) -> [SKIP][158] ([Intel XE#4156] / [Intel XE#7425]) +1 other test skip
[157]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_fbcon_fbt@fbc-suspend.html
[158]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-4/igt@kms_fbcon_fbt@fbc-suspend.html
* igt@kms_feature_discovery@chamelium:
- shard-bmg: [SKIP][159] ([Intel XE#2372] / [Intel XE#7359]) -> [SKIP][160] ([Intel XE#8714])
[159]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-5/igt@kms_feature_discovery@chamelium.html
[160]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_feature_discovery@chamelium.html
* igt@kms_feature_discovery@display-4x:
- shard-bmg: [SKIP][161] ([Intel XE#1138] / [Intel XE#7344]) -> [SKIP][162] ([Intel XE#8714])
[161]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-4/igt@kms_feature_discovery@display-4x.html
[162]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_feature_discovery@display-4x.html
* igt@kms_feature_discovery@dsc:
- shard-bmg: [SKIP][163] ([Intel XE#8714]) -> [SKIP][164] ([Intel XE#8586])
[163]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_feature_discovery@dsc.html
[164]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-6/igt@kms_feature_discovery@dsc.html
* igt@kms_feature_discovery@psr1:
- shard-bmg: [SKIP][165] ([Intel XE#8714]) -> [SKIP][166] ([Intel XE#2374] / [Intel XE#6127])
[165]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_feature_discovery@psr1.html
[166]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-6/igt@kms_feature_discovery@psr1.html
* igt@kms_flip@flip-vs-expired-vblank:
- shard-lnl: [FAIL][167] ([Intel XE#301] / [Intel XE#3149]) -> [FAIL][168] ([Intel XE#301])
[167]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank.html
[168]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-lnl-8/igt@kms_flip@flip-vs-expired-vblank.html
* igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling:
- shard-bmg: [SKIP][169] ([Intel XE#8714]) -> [SKIP][170] ([Intel XE#7178] / [Intel XE#7349]) +2 other tests skip
[169]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html
[170]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-2/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling:
- shard-bmg: [SKIP][171] ([Intel XE#8714]) -> [SKIP][172] ([Intel XE#7178] / [Intel XE#7351]) +4 other tests skip
[171]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling.html
[172]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-10/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling:
- shard-bmg: [SKIP][173] ([Intel XE#7178] / [Intel XE#7351]) -> [SKIP][174] ([Intel XE#8714]) +1 other test skip
[173]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-1/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling.html
[174]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling.html
* igt@kms_frontbuffer_tracking@drrs-abgr161616f-draw-render:
- shard-bmg: [SKIP][175] ([Intel XE#8714]) -> [SKIP][176] ([Intel XE#7061] / [Intel XE#7356]) +4 other tests skip
[175]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_frontbuffer_tracking@drrs-abgr161616f-draw-render.html
[176]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-1/igt@kms_frontbuffer_tracking@drrs-abgr161616f-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-wc:
- shard-bmg: [SKIP][177] ([Intel XE#8714]) -> [SKIP][178] ([Intel XE#4141]) +16 other tests skip
[177]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-wc.html
[178]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-1/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-pgflip-blt:
- shard-bmg: [SKIP][179] ([Intel XE#4141]) -> [SKIP][180] ([Intel XE#8714]) +7 other tests skip
[179]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-pgflip-blt.html
[180]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-shrfb-plflip-blt:
- shard-bmg: [SKIP][181] ([Intel XE#8714]) -> [SKIP][182] ([Intel XE#2311]) +64 other tests skip
[181]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-shrfb-plflip-blt.html
[182]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-shrfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-shrfb-msflip-blt:
- shard-bmg: [SKIP][183] ([Intel XE#2311]) -> [SKIP][184] ([Intel XE#8714]) +22 other tests skip
[183]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-shrfb-msflip-blt.html
[184]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-shrfb-msflip-blt.html
* igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y:
- shard-bmg: [SKIP][185] ([Intel XE#8714]) -> [SKIP][186] ([Intel XE#2352] / [Intel XE#7399]) +1 other test skip
[185]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y.html
[186]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y.html
* igt@kms_frontbuffer_tracking@fbcdrrshdr-argb161616f-draw-render:
- shard-bmg: [SKIP][187] ([Intel XE#7061]) -> [SKIP][188] ([Intel XE#8714]) +4 other tests skip
[187]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcdrrshdr-argb161616f-draw-render.html
[188]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_frontbuffer_tracking@fbcdrrshdr-argb161616f-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-abgr161616f-draw-mmap-wc:
- shard-bmg: [SKIP][189] ([Intel XE#7061] / [Intel XE#7356]) -> [SKIP][190] ([Intel XE#8714])
[189]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-9/igt@kms_frontbuffer_tracking@fbcpsr-abgr161616f-draw-mmap-wc.html
[190]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_frontbuffer_tracking@fbcpsr-abgr161616f-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-tiling-y:
- shard-bmg: [SKIP][191] ([Intel XE#2352] / [Intel XE#7399]) -> [SKIP][192] ([Intel XE#8714])
[191]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcpsr-tiling-y.html
[192]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_frontbuffer_tracking@fbcpsr-tiling-y.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-render:
- shard-bmg: [SKIP][193] ([Intel XE#8714]) -> [SKIP][194] ([Intel XE#2313]) +71 other tests skip
[193]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-render.html
[194]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-8/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@psrhdr-1p-pri-indfb-multidraw:
- shard-bmg: [SKIP][195] ([Intel XE#2313]) -> [SKIP][196] ([Intel XE#8714]) +26 other tests skip
[195]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-3/igt@kms_frontbuffer_tracking@psrhdr-1p-pri-indfb-multidraw.html
[196]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_frontbuffer_tracking@psrhdr-1p-pri-indfb-multidraw.html
* igt@kms_frontbuffer_tracking@psrhdr-abgr161616f-draw-blt:
- shard-bmg: [SKIP][197] ([Intel XE#8714]) -> [SKIP][198] ([Intel XE#7061]) +8 other tests skip
[197]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_frontbuffer_tracking@psrhdr-abgr161616f-draw-blt.html
[198]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-3/igt@kms_frontbuffer_tracking@psrhdr-abgr161616f-draw-blt.html
* igt@kms_hdmi_inject@inject-audio:
- shard-bmg: [SKIP][199] ([Intel XE#8714]) -> [SKIP][200] ([Intel XE#7308])
[199]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_hdmi_inject@inject-audio.html
[200]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-4/igt@kms_hdmi_inject@inject-audio.html
* igt@kms_joiner@basic-ultra-joiner:
- shard-bmg: [SKIP][201] ([Intel XE#8714]) -> [SKIP][202] ([Intel XE#6911] / [Intel XE#7378])
[201]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_joiner@basic-ultra-joiner.html
[202]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-4/igt@kms_joiner@basic-ultra-joiner.html
* igt@kms_panel_fitting@atomic-fastset:
- shard-bmg: [SKIP][203] ([Intel XE#2486]) -> [SKIP][204] ([Intel XE#8714])
[203]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-3/igt@kms_panel_fitting@atomic-fastset.html
[204]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_panel_fitting@atomic-fastset.html
* igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier-source-clamping:
- shard-bmg: [SKIP][205] ([Intel XE#8714]) -> [SKIP][206] ([Intel XE#7283]) +4 other tests skip
[205]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier-source-clamping.html
[206]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-2/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier-source-clamping.html
* igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier-source-clamping:
- shard-bmg: [SKIP][207] ([Intel XE#7283]) -> [SKIP][208] ([Intel XE#8714])
[207]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-10/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier-source-clamping.html
[208]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier-source-clamping.html
* igt@kms_plane_lowres@tiling-y:
- shard-bmg: [SKIP][209] ([Intel XE#2393]) -> [SKIP][210] ([Intel XE#8714])
[209]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-6/igt@kms_plane_lowres@tiling-y.html
[210]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_plane_lowres@tiling-y.html
* igt@kms_plane_lowres@tiling-yf:
- shard-bmg: [SKIP][211] ([Intel XE#8714]) -> [SKIP][212] ([Intel XE#2393])
[211]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_plane_lowres@tiling-yf.html
[212]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-4/igt@kms_plane_lowres@tiling-yf.html
* igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75:
- shard-bmg: [SKIP][213] ([Intel XE#8714]) -> [SKIP][214] ([Intel XE#2763] / [Intel XE#6886])
[213]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75.html
[214]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-3/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75.html
* igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5:
- shard-bmg: [SKIP][215] ([Intel XE#2763] / [Intel XE#6886]) -> [SKIP][216] ([Intel XE#8714])
[215]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-8/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5.html
[216]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5.html
* igt@kms_pm_backlight@bad-brightness:
- shard-bmg: [SKIP][217] ([Intel XE#8714]) -> [SKIP][218] ([Intel XE#7376] / [Intel XE#7760] / [Intel XE#870])
[217]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_pm_backlight@bad-brightness.html
[218]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-4/igt@kms_pm_backlight@bad-brightness.html
* igt@kms_pm_backlight@brightness-with-dpms:
- shard-bmg: [SKIP][219] ([Intel XE#2938] / [Intel XE#7376] / [Intel XE#7760]) -> [SKIP][220] ([Intel XE#8714])
[219]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-3/igt@kms_pm_backlight@brightness-with-dpms.html
[220]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_pm_backlight@brightness-with-dpms.html
* igt@kms_pm_backlight@fade-with-dpms:
- shard-bmg: [SKIP][221] ([Intel XE#7376] / [Intel XE#7760] / [Intel XE#870]) -> [SKIP][222] ([Intel XE#8714])
[221]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-10/igt@kms_pm_backlight@fade-with-dpms.html
[222]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_pm_backlight@fade-with-dpms.html
* igt@kms_pm_dc@dc5-pageflip-negative:
- shard-bmg: [SKIP][223] ([Intel XE#8714]) -> [SKIP][224] ([Intel XE#6927])
[223]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_pm_dc@dc5-pageflip-negative.html
[224]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-2/igt@kms_pm_dc@dc5-pageflip-negative.html
* igt@kms_pm_dc@dc6-psr:
- shard-bmg: [SKIP][225] ([Intel XE#8714]) -> [SKIP][226] ([Intel XE#7794]) +1 other test skip
[225]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_pm_dc@dc6-psr.html
[226]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-10/igt@kms_pm_dc@dc6-psr.html
* igt@kms_pm_dc@deep-pkgc:
- shard-bmg: [SKIP][227] ([Intel XE#2505] / [Intel XE#7447]) -> [SKIP][228] ([Intel XE#8714])
[227]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-10/igt@kms_pm_dc@deep-pkgc.html
[228]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_pm_dc@deep-pkgc.html
* igt@kms_pm_rpm@modeset-lpsp-stress:
- shard-bmg: [SKIP][229] ([Intel XE#1439] / [Intel XE#3141] / [Intel XE#7383] / [Intel XE#836]) -> [SKIP][230] ([Intel XE#8714])
[229]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-8/igt@kms_pm_rpm@modeset-lpsp-stress.html
[230]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_pm_rpm@modeset-lpsp-stress.html
* igt@kms_pm_rpm@modeset-lpsp-stress-no-wait:
- shard-bmg: [SKIP][231] ([Intel XE#8714]) -> [SKIP][232] ([Intel XE#1439] / [Intel XE#3141] / [Intel XE#7383] / [Intel XE#836])
[231]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html
[232]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-3/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html
* igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area:
- shard-bmg: [SKIP][233] ([Intel XE#1489]) -> [SKIP][234] ([Intel XE#8714]) +4 other tests skip
[233]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-6/igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area.html
[234]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area.html
* igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-fully-sf:
- shard-bmg: [SKIP][235] ([Intel XE#8714]) -> [SKIP][236] ([Intel XE#1489]) +14 other tests skip
[235]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-fully-sf.html
[236]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-6/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr@fbc-psr-primary-render:
- shard-bmg: [SKIP][237] ([Intel XE#2234] / [Intel XE#2850]) -> [SKIP][238] ([Intel XE#8714]) +7 other tests skip
[237]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-9/igt@kms_psr@fbc-psr-primary-render.html
[238]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_psr@fbc-psr-primary-render.html
* igt@kms_psr@fbc-psr2-cursor-plane-move:
- shard-bmg: [SKIP][239] ([Intel XE#8714]) -> [SKIP][240] ([Intel XE#2234] / [Intel XE#2850]) +15 other tests skip
[239]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_psr@fbc-psr2-cursor-plane-move.html
[240]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-3/igt@kms_psr@fbc-psr2-cursor-plane-move.html
* igt@kms_rotation_crc@primary-y-tiled-reflect-x-0:
- shard-bmg: [SKIP][241] ([Intel XE#8714]) -> [SKIP][242] ([Intel XE#2330] / [Intel XE#5813])
[241]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_rotation_crc@primary-y-tiled-reflect-x-0.html
[242]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-6/igt@kms_rotation_crc@primary-y-tiled-reflect-x-0.html
* igt@kms_rotation_crc@primary-y-tiled-reflect-x-270:
- shard-bmg: [SKIP][243] ([Intel XE#3904] / [Intel XE#7342]) -> [SKIP][244] ([Intel XE#8714])
[243]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-1/igt@kms_rotation_crc@primary-y-tiled-reflect-x-270.html
[244]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_rotation_crc@primary-y-tiled-reflect-x-270.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
- shard-bmg: [SKIP][245] ([Intel XE#2330] / [Intel XE#5813]) -> [SKIP][246] ([Intel XE#8714])
[245]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-9/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html
[246]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90:
- shard-bmg: [SKIP][247] ([Intel XE#8714]) -> [SKIP][248] ([Intel XE#3904] / [Intel XE#7342]) +1 other test skip
[247]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html
[248]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-5/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html
* igt@kms_scaling_modes@scaling-mode-full:
- shard-bmg: [SKIP][249] ([Intel XE#2413]) -> [SKIP][250] ([Intel XE#8714])
[249]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-3/igt@kms_scaling_modes@scaling-mode-full.html
[250]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_scaling_modes@scaling-mode-full.html
* igt@kms_setmode@invalid-clone-exclusive-crtc:
- shard-bmg: [SKIP][251] ([Intel XE#8714]) -> [SKIP][252] ([Intel XE#1435] / [Intel XE#8695])
[251]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_setmode@invalid-clone-exclusive-crtc.html
[252]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-8/igt@kms_setmode@invalid-clone-exclusive-crtc.html
* igt@kms_sharpness_filter@filter-basic:
- shard-bmg: [SKIP][253] ([Intel XE#6503]) -> [SKIP][254] ([Intel XE#8714]) +1 other test skip
[253]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-2/igt@kms_sharpness_filter@filter-basic.html
[254]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_sharpness_filter@filter-basic.html
* igt@kms_sharpness_filter@invalid-filter-with-scaling-mode:
- shard-bmg: [SKIP][255] ([Intel XE#8714]) -> [SKIP][256] ([Intel XE#6503]) +2 other tests skip
[255]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_sharpness_filter@invalid-filter-with-scaling-mode.html
[256]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-2/igt@kms_sharpness_filter@invalid-filter-with-scaling-mode.html
* igt@kms_tiled_display@basic-test-pattern:
- shard-bmg: [SKIP][257] ([Intel XE#2426] / [Intel XE#5848]) -> [FAIL][258] ([Intel XE#1729] / [Intel XE#7424])
[257]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-6/igt@kms_tiled_display@basic-test-pattern.html
[258]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-1/igt@kms_tiled_display@basic-test-pattern.html
* igt@kms_tv_load_detect@load-detect:
- shard-bmg: [SKIP][259] ([Intel XE#8714]) -> [SKIP][260] ([Intel XE#2450] / [Intel XE#5857])
[259]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_tv_load_detect@load-detect.html
[260]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-4/igt@kms_tv_load_detect@load-detect.html
* igt@kms_vrr@flip-suspend:
- shard-bmg: [SKIP][261] ([Intel XE#8714]) -> [SKIP][262] ([Intel XE#1499]) +2 other tests skip
[261]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@kms_vrr@flip-suspend.html
[262]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-3/igt@kms_vrr@flip-suspend.html
* igt@kms_vrr@lobf-dc3co:
- shard-bmg: [SKIP][263] ([Intel XE#8397]) -> [SKIP][264] ([Intel XE#8714])
[263]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-9/igt@kms_vrr@lobf-dc3co.html
[264]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@kms_vrr@lobf-dc3co.html
* igt@xe_create@multigpu-create-massive-size:
- shard-bmg: [SKIP][265] ([Intel XE#8714]) -> [SKIP][266] ([Intel XE#2504] / [Intel XE#7319] / [Intel XE#7350])
[265]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@xe_create@multigpu-create-massive-size.html
[266]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-5/igt@xe_create@multigpu-create-massive-size.html
* igt@xe_cw_post_sync@walker-post-sync:
- shard-bmg: [SKIP][267] ([Intel XE#8714]) -> [SKIP][268] ([Intel XE#8608])
[267]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@xe_cw_post_sync@walker-post-sync.html
[268]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-4/igt@xe_cw_post_sync@walker-post-sync.html
* igt@xe_evict@evict-threads-small-multi-queue:
- shard-bmg: [SKIP][269] ([Intel XE#8714]) -> [SKIP][270] ([Intel XE#8370]) +4 other tests skip
[269]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@xe_evict@evict-threads-small-multi-queue.html
[270]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-3/igt@xe_evict@evict-threads-small-multi-queue.html
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue:
- shard-bmg: [SKIP][271] ([Intel XE#8714]) -> [SKIP][272] ([Intel XE#2322] / [Intel XE#7372]) +9 other tests skip
[271]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue.html
[272]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-5/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue.html
* igt@xe_exec_basic@multigpu-once-userptr-rebind:
- shard-bmg: [SKIP][273] ([Intel XE#2322] / [Intel XE#7372]) -> [SKIP][274] ([Intel XE#8714]) +2 other tests skip
[273]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-10/igt@xe_exec_basic@multigpu-once-userptr-rebind.html
[274]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@xe_exec_basic@multigpu-once-userptr-rebind.html
* igt@xe_exec_fault_mode@twice-multi-queue-userptr:
- shard-bmg: [SKIP][275] ([Intel XE#8374]) -> [SKIP][276] ([Intel XE#8714]) +8 other tests skip
[275]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-6/igt@xe_exec_fault_mode@twice-multi-queue-userptr.html
[276]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@xe_exec_fault_mode@twice-multi-queue-userptr.html
* igt@xe_exec_fault_mode@twice-multi-queue-userptr-rebind-prefetch:
- shard-bmg: [SKIP][277] ([Intel XE#8714]) -> [SKIP][278] ([Intel XE#8374]) +15 other tests skip
[277]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@xe_exec_fault_mode@twice-multi-queue-userptr-rebind-prefetch.html
[278]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-2/igt@xe_exec_fault_mode@twice-multi-queue-userptr-rebind-prefetch.html
* igt@xe_exec_multi_queue@many-execs-preempt-mode-fault-userptr-invalidate:
- shard-bmg: [SKIP][279] ([Intel XE#8714]) -> [SKIP][280] ([Intel XE#8364]) +37 other tests skip
[279]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@xe_exec_multi_queue@many-execs-preempt-mode-fault-userptr-invalidate.html
[280]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-4/igt@xe_exec_multi_queue@many-execs-preempt-mode-fault-userptr-invalidate.html
* igt@xe_exec_multi_queue@two-queues-priority:
- shard-bmg: [SKIP][281] ([Intel XE#8364]) -> [SKIP][282] ([Intel XE#8714]) +15 other tests skip
[281]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-1/igt@xe_exec_multi_queue@two-queues-priority.html
[282]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@xe_exec_multi_queue@two-queues-priority.html
* igt@xe_exec_reset@cm-multi-queue-cat-error:
- shard-bmg: [SKIP][283] ([Intel XE#8714]) -> [SKIP][284] ([Intel XE#8369]) +1 other test skip
[283]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@xe_exec_reset@cm-multi-queue-cat-error.html
[284]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-4/igt@xe_exec_reset@cm-multi-queue-cat-error.html
* igt@xe_exec_reset@cm-multi-queue-cat-error-on-secondary:
- shard-bmg: [SKIP][285] ([Intel XE#8369]) -> [SKIP][286] ([Intel XE#8714]) +1 other test skip
[285]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-5/igt@xe_exec_reset@cm-multi-queue-cat-error-on-secondary.html
[286]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@xe_exec_reset@cm-multi-queue-cat-error-on-secondary.html
* igt@xe_exec_threads@threads-multi-queue-fd-userptr-invalidate:
- shard-bmg: [SKIP][287] ([Intel XE#8378]) -> [SKIP][288] ([Intel XE#8714]) +2 other tests skip
[287]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-9/igt@xe_exec_threads@threads-multi-queue-fd-userptr-invalidate.html
[288]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@xe_exec_threads@threads-multi-queue-fd-userptr-invalidate.html
* igt@xe_exec_threads@threads-multi-queue-mixed-fd-userptr:
- shard-bmg: [SKIP][289] ([Intel XE#8714]) -> [SKIP][290] ([Intel XE#8378]) +11 other tests skip
[289]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@xe_exec_threads@threads-multi-queue-mixed-fd-userptr.html
[290]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-6/igt@xe_exec_threads@threads-multi-queue-mixed-fd-userptr.html
* igt@xe_mmap@small-bar:
- shard-bmg: [SKIP][291] ([Intel XE#8714]) -> [SKIP][292] ([Intel XE#586] / [Intel XE#7323] / [Intel XE#7384])
[291]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@xe_mmap@small-bar.html
[292]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-4/igt@xe_mmap@small-bar.html
* igt@xe_multigpu_svm@mgpu-concurrent-access-basic:
- shard-bmg: [SKIP][293] ([Intel XE#6964] / [Intel XE#8714]) -> [SKIP][294] ([Intel XE#6964]) +5 other tests skip
[293]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@xe_multigpu_svm@mgpu-concurrent-access-basic.html
[294]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-3/igt@xe_multigpu_svm@mgpu-concurrent-access-basic.html
* igt@xe_page_reclaim@basic-mixed:
- shard-bmg: [SKIP][295] ([Intel XE#8714]) -> [SKIP][296] ([Intel XE#7793]) +1 other test skip
[295]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@xe_page_reclaim@basic-mixed.html
[296]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-10/igt@xe_page_reclaim@basic-mixed.html
* igt@xe_page_reclaim@many-vma-same-bo:
- shard-bmg: [SKIP][297] ([Intel XE#7793]) -> [SKIP][298] ([Intel XE#8714]) +1 other test skip
[297]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-9/igt@xe_page_reclaim@many-vma-same-bo.html
[298]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@xe_page_reclaim@many-vma-same-bo.html
* igt@xe_pat@xa-app-transient-media-off:
- shard-bmg: [SKIP][299] ([Intel XE#8714]) -> [SKIP][300] ([Intel XE#7590])
[299]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@xe_pat@xa-app-transient-media-off.html
[300]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-9/igt@xe_pat@xa-app-transient-media-off.html
* igt@xe_peer2peer@read:
- shard-bmg: [SKIP][301] ([Intel XE#2427] / [Intel XE#6953] / [Intel XE#7326] / [Intel XE#7353]) -> [SKIP][302] ([Intel XE#2427] / [Intel XE#6953] / [Intel XE#7326] / [Intel XE#7353] / [Intel XE#8714])
[301]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-8/igt@xe_peer2peer@read.html
[302]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@xe_peer2peer@read.html
* igt@xe_pm@d3cold-basic:
- shard-bmg: [SKIP][303] ([Intel XE#8714]) -> [SKIP][304] ([Intel XE#2284] / [Intel XE#7370]) +3 other tests skip
[303]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@xe_pm@d3cold-basic.html
[304]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-3/igt@xe_pm@d3cold-basic.html
* igt@xe_prefetch_fault@prefetch-fault:
- shard-bmg: [SKIP][305] ([Intel XE#8714]) -> [SKIP][306] ([Intel XE#7599])
[305]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@xe_prefetch_fault@prefetch-fault.html
[306]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-3/igt@xe_prefetch_fault@prefetch-fault.html
* igt@xe_pxp@pxp-stale-bo-exec-post-rpm:
- shard-bmg: [SKIP][307] ([Intel XE#4733] / [Intel XE#7417]) -> [SKIP][308] ([Intel XE#8714])
[307]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-2/igt@xe_pxp@pxp-stale-bo-exec-post-rpm.html
[308]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@xe_pxp@pxp-stale-bo-exec-post-rpm.html
* igt@xe_pxp@pxp-stale-bo-exec-post-suspend:
- shard-bmg: [SKIP][309] ([Intel XE#8714]) -> [SKIP][310] ([Intel XE#4733] / [Intel XE#7417]) +2 other tests skip
[309]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@xe_pxp@pxp-stale-bo-exec-post-suspend.html
[310]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-8/igt@xe_pxp@pxp-stale-bo-exec-post-suspend.html
* igt@xe_query@multigpu-query-invalid-query:
- shard-bmg: [SKIP][311] ([Intel XE#8714]) -> [SKIP][312] ([Intel XE#944]) +1 other test skip
[311]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-7/igt@xe_query@multigpu-query-invalid-query.html
[312]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-3/igt@xe_query@multigpu-query-invalid-query.html
* igt@xe_query@multigpu-query-topology-l3-bank-mask:
- shard-bmg: [SKIP][313] ([Intel XE#944]) -> [SKIP][314] ([Intel XE#8714])
[313]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-8/igt@xe_query@multigpu-query-topology-l3-bank-mask.html
[314]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-7/igt@xe_query@multigpu-query-topology-l3-bank-mask.html
* igt@xe_sriov_flr@flr-vfs-parallel:
- shard-bmg: [FAIL][315] ([Intel XE#6569]) -> [FAIL][316] ([Intel XE#7992])
[315]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9036/shard-bmg-2/igt@xe_sriov_flr@flr-vfs-parallel.html
[316]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/shard-bmg-9/igt@xe_sriov_flr@flr-vfs-parallel.html
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1138
[Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
[Intel XE#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435
[Intel XE#1439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1439
[Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
[Intel XE#1499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1499
[Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
[Intel XE#1508]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1508
[Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
[Intel XE#2134]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2134
[Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
[Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
[Intel XE#2286]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2286
[Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
[Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
[Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
[Intel XE#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321
[Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
[Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325
[Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
[Intel XE#2328]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2328
[Intel XE#2330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2330
[Intel XE#2350]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2350
[Intel XE#2352]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2352
[Intel XE#2372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2372
[Intel XE#2374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2374
[Intel XE#2387]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2387
[Intel XE#2393]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2393
[Intel XE#2413]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2413
[Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
[Intel XE#2427]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2427
[Intel XE#2450]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2450
[Intel XE#2486]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2486
[Intel XE#2504]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2504
[Intel XE#2505]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2505
[Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
[Intel XE#2724]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2724
[Intel XE#2763]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2763
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
[Intel XE#2938]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2938
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
[Intel XE#3141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3141
[Intel XE#3149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3149
[Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
[Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
[Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
[Intel XE#4156]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4156
[Intel XE#4210]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4210
[Intel XE#4298]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4298
[Intel XE#4422]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4422
[Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
[Intel XE#5020]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5020
[Intel XE#5021]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5021
[Intel XE#5545]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5545
[Intel XE#5813]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5813
[Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848
[Intel XE#5857]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5857
[Intel XE#586]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/586
[Intel XE#5873]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5873
[Intel XE#6035]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6035
[Intel XE#607]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/607
[Intel XE#610]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/610
[Intel XE#6127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6127
[Intel XE#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503
[Intel XE#6569]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6569
[Intel XE#6886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6886
[Intel XE#6911]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6911
[Intel XE#6927]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6927
[Intel XE#6953]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6953
[Intel XE#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964
[Intel XE#6969]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6969
[Intel XE#6974]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6974
[Intel XE#7006]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7006
[Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
[Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
[Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283
[Intel XE#7308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7308
[Intel XE#7319]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7319
[Intel XE#7323]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7323
[Intel XE#7326]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7326
[Intel XE#7342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7342
[Intel XE#7344]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7344
[Intel XE#7348]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7348
[Intel XE#7349]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7349
[Intel XE#7350]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7350
[Intel XE#7351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7351
[Intel XE#7353]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7353
[Intel XE#7355]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7355
[Intel XE#7356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7356
[Intel XE#7358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7358
[Intel XE#7359]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7359
[Intel XE#7361]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7361
[Intel XE#7367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7367
[Intel XE#7370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7370
[Intel XE#7372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7372
[Intel XE#7374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7374
[Intel XE#7376]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7376
[Intel XE#7377]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7377
[Intel XE#7378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7378
[Intel XE#7383]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7383
[Intel XE#7384]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7384
[Intel XE#7387]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7387
[Intel XE#7399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7399
[Intel XE#7417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7417
[Intel XE#7424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7424
[Intel XE#7425]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7425
[Intel XE#7429]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7429
[Intel XE#7442]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7442
[Intel XE#7447]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7447
[Intel XE#7449]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7449
[Intel XE#7467]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7467
[Intel XE#7503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7503
[Intel XE#7571]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7571
[Intel XE#7590]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7590
[Intel XE#7599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7599
[Intel XE#7642]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7642
[Intel XE#7679]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7679
[Intel XE#7760]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7760
[Intel XE#7793]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7793
[Intel XE#7794]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7794
[Intel XE#7795]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7795
[Intel XE#7992]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7992
[Intel XE#8007]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8007
[Intel XE#8076]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8076
[Intel XE#8265]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8265
[Intel XE#8300]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8300
[Intel XE#836]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/836
[Intel XE#8364]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8364
[Intel XE#8369]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8369
[Intel XE#8370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8370
[Intel XE#8374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8374
[Intel XE#8378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8378
[Intel XE#8397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8397
[Intel XE#8399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8399
[Intel XE#8526]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8526
[Intel XE#8586]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8586
[Intel XE#8608]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8608
[Intel XE#8695]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8695
[Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
[Intel XE#8710]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8710
[Intel XE#8714]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8714
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
Build changes
-------------
* IGT: IGT_9036 -> IGTPW_15619
IGTPW_15619: 15619
IGT_9036: 9036
xe-5515-f9ef9f302ee01854066ec6da30550da6ea6cb03a: f9ef9f302ee01854066ec6da30550da6ea6cb03a
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15619/index.html
[-- Attachment #2: Type: text/html, Size: 102987 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v4 07/10] lib/igt_color: Refactor transform_pixels for input/output FBs and CSC
2026-07-31 18:01 ` [PATCH v4 07/10] lib/igt_color: Refactor transform_pixels for input/output FBs and CSC Harry Wentland
@ 2026-08-14 19:55 ` Alex Hung
0 siblings, 0 replies; 15+ messages in thread
From: Alex Hung @ 2026-08-14 19:55 UTC (permalink / raw)
To: Harry Wentland, igt-dev
Reviewed-by: Alex Hung <alex.hung@amd.com>
On 7/31/26 12:01, Harry Wentland wrote:
> Refactor igt_color_transform_pixels() to accept separate input and
> output framebuffers, plus optional YUV encoding/range parameters for
> CSC conversion. This enables:
> - Reading from YUV input (NV12/P010) and writing to RGB output
> - Inline YUV-to-RGB CSC using the igt_color_encoding matrix library
> - Skipping the first transform when CSC is applied (since it's done
> inline via the matrix)
>
> Update apply_transforms() in kms_colorop.c to extract encoding/range
> from the first colorop when it's a FIXED_MATRIX type, and pass both input
> and output FBs to the refactored function.
>
> Also update colorop_plane_test() to create sw_transform_fb with the
> output format rather than copying the input FB.
>
> Assisted-by: Claude:claude-sonnet-4-5
> Signed-off-by: Harry Wentland <harry.wentland@amd.com>
> ---
> lib/igt_color.c | 170 +++++++++++++++++++++++++++++++++++---------
> lib/igt_color.h | 6 +-
> tests/kms_colorop.c | 34 +++++----
> 3 files changed, 160 insertions(+), 50 deletions(-)
>
> diff --git a/lib/igt_color.c b/lib/igt_color.c
> index a451f5642bac..582fc6c0c3bc 100644
> --- a/lib/igt_color.c
> +++ b/lib/igt_color.c
> @@ -13,6 +13,7 @@
>
> #include "drmtest.h"
> #include "igt_color.h"
> +#include "igt_color_encoding.h"
> #include "igt_core.h"
> #include "igt_x86.h"
>
> @@ -578,58 +579,159 @@ igt_color_pixel_to_fourcc(uint32_t drm_format, igt_pixel_t *pixel)
> return raw_pixel;
> }
>
> -int igt_color_transform_pixels(igt_fb_t *fb, igt_pixel_transform transforms[], int num_transforms)
> +int igt_color_transform_pixels(igt_fb_t *input_fb, igt_fb_t *output_fb,
> + igt_pixel_transform transforms[],
> + int num_transforms,
> + int yuv_encoding,
> + enum igt_color_range yuv_range)
> {
> - uint32_t *line = NULL;
> - void *map;
> - char *ptr;
> - int x, y, cpp = igt_drm_format_to_bpp(fb->drm_format) / 8;
> - uint32_t stride = igt_fb_calc_plane_stride(fb, 0);
> + uint32_t *input_line = NULL;
> + uint32_t *output_line = NULL;
> + void *input_map, *output_map;
> + char *input_ptr, *output_ptr;
> + int x, y;
> + int input_cpp = 0;
> + int output_cpp = igt_drm_format_to_bpp(output_fb->drm_format) / 8;
> + uint32_t input_stride = 0, output_stride = igt_fb_calc_plane_stride(output_fb, 0);
> + uint8_t *y_plane = NULL, *uv_plane = NULL;
> + int y_stride = 0, uv_stride = 0;
> + bool input_is_yuv = (input_fb->drm_format == DRM_FORMAT_NV12 ||
> + input_fb->drm_format == DRM_FORMAT_P010);
> + bool output_is_yuv = (output_fb->drm_format == DRM_FORMAT_NV12 ||
> + output_fb->drm_format == DRM_FORMAT_P010);
> + struct igt_mat4 csc_matrix;
> + bool apply_csc = false;
>
> - if (fb->num_planes != 1)
> + /* Validate framebuffer dimensions match */
> + igt_assert(input_fb->width == output_fb->width);
> + igt_assert(input_fb->height == output_fb->height);
> +
> + if (input_is_yuv && yuv_encoding >= 0) {
> + apply_csc = true;
> +
> + csc_matrix = igt_ycbcr_to_rgb_matrix(input_fb->drm_format,
> + output_fb->drm_format,
> + yuv_encoding, yuv_range);
> + }
> +
> + /* Validate plane counts */
> + if (!input_is_yuv && input_fb->num_planes != 1)
> return -EINVAL;
>
> - ptr = igt_fb_map_buffer(fb->fd, fb);
> - igt_assert(ptr);
> - map = ptr;
> + if (input_is_yuv && input_fb->num_planes != 2)
> + return -EINVAL;
>
> - /*
> - * Framebuffers are often uncached, which can make byte-wise accesses
> - * very slow. We copy each line of the FB into a local buffer to speed
> - * up the hashing.
> - */
> - line = malloc(stride);
> - if (!line) {
> - munmap(map, fb->size);
> + if (!output_is_yuv && output_fb->num_planes != 1)
> + return -EINVAL;
> +
> + if (output_is_yuv && output_fb->num_planes != 2)
> + return -EINVAL;
> +
> + /* Map input buffer */
> + input_ptr = igt_fb_map_buffer(input_fb->fd, input_fb);
> + igt_assert(input_ptr);
> + input_map = input_ptr;
> +
> + /* For YUV input, set up plane pointers */
> + if (input_is_yuv) {
> + y_plane = input_map;
> + y_stride = input_fb->strides[0];
> + uv_plane = y_plane + input_fb->offsets[1];
> + uv_stride = input_fb->strides[1];
> + } else {
> + input_cpp = igt_drm_format_to_bpp(input_fb->drm_format) / 8;
> + input_stride = igt_fb_calc_plane_stride(input_fb, 0);
> + }
> +
> + /* Map output buffer */
> + output_ptr = igt_fb_map_buffer(output_fb->fd, output_fb);
> + igt_assert(output_ptr);
> + output_map = output_ptr;
> +
> + /* Allocate line buffers for speed */
> + if (!input_is_yuv) {
> + input_line = malloc(input_stride);
> + if (!input_line) {
> + igt_fb_unmap_buffer(output_fb, output_map);
> + igt_fb_unmap_buffer(input_fb, input_map);
> + return -ENOMEM;
> + }
> + }
> +
> + output_line = malloc(output_stride);
> + if (!output_line) {
> + free(input_line);
> + igt_fb_unmap_buffer(output_fb, output_map);
> + igt_fb_unmap_buffer(input_fb, input_map);
> return -ENOMEM;
> }
>
> - for (y = 0; y < fb->height; y++, ptr += stride) {
> + for (y = 0; y < input_fb->height; y++) {
> + /* For RGB input, read line from input buffer */
> + if (!input_is_yuv)
> + igt_memcpy_from_wc(input_line, input_ptr + y * input_stride,
> + input_fb->width * input_cpp);
>
> - /* get line from buffer */
> - igt_memcpy_from_wc(line, ptr, fb->width * cpp);
> -
> - for (x = 0; x < fb->width; x++) {
> - uint32_t raw_pixel = le32_to_cpu(line[x]);
> + for (x = 0; x < input_fb->width; x++) {
> igt_pixel_t pixel;
> int i;
> + int start_transform;
>
> - igt_color_fourcc_to_pixel(raw_pixel, fb->drm_format, &pixel);
> + /* READ from input buffer */
> + if (input_is_yuv) {
> + uint32_t raw_y, raw_u, raw_v;
> + struct igt_vec4 yuv, rgb;
>
> - /* run transform on pixel */
> - for (i = 0; i < num_transforms; i++)
> - transforms[i](&pixel);
> + /* Extract raw Y, U, V from YUV input buffer */
> + igt_color_extract_yuv_pixel(input_fb, x, y, y_plane, uv_plane,
> + y_stride, uv_stride,
> + &raw_y, &raw_u, &raw_v);
>
> - /* write back to line */
> - line[x] = cpu_to_le32(igt_color_pixel_to_fourcc(fb->drm_format, &pixel));
> + /* Convert YUV to RGB using pre-computed CSC matrix */
> + if (apply_csc) {
> + float rgb_max;
> +
> + /* Matrix expects raw format values */
> + yuv.d[0] = raw_y;
> + yuv.d[1] = raw_u;
> + yuv.d[2] = raw_v;
> + yuv.d[3] = 1.0f;
> +
> + rgb = igt_matrix_transform(&csc_matrix, &yuv);
> +
> + rgb_max = (output_fb->drm_format == DRM_FORMAT_XRGB2101010) ? 1023.0f : 255.0f;
> +
> + pixel.r = rgb.d[0] / rgb_max;
> + pixel.g = rgb.d[1] / rgb_max;
> + pixel.b = rgb.d[2] / rgb_max;
> + } else {
> + igt_color_yuv_to_pixel(input_fb->drm_format, raw_y, raw_u, raw_v, &pixel);
> + }
> + } else {
> + uint32_t raw_pixel = le32_to_cpu(input_line[x]);
> + igt_color_fourcc_to_pixel(raw_pixel, input_fb->drm_format, &pixel);
> + }
> +
> + /* Transform pixel through remaining transforms */
> + /* Skip first transform if it was a CSC that we already applied */
> + start_transform = apply_csc ? 1 : 0;
> + for (i = start_transform; i < num_transforms; i++)
> + if (transforms[i])
> + transforms[i](&pixel);
> +
> + /* write to output buffer */
> + output_line[x] = cpu_to_le32(igt_color_pixel_to_fourcc(output_fb->drm_format, &pixel));
> }
>
> - /* copy line back to fb buffer */
> - igt_memcpy_from_wc(ptr, line, fb->width * cpp);
> + /* Copy output line to output buffer */
> + igt_memcpy_from_wc(output_ptr + y * output_stride, output_line,
> + output_fb->width * output_cpp);
> }
>
> - free(line);
> - igt_fb_unmap_buffer(fb, map);
> + free(output_line);
> + free(input_line);
> + igt_fb_unmap_buffer(output_fb, output_map);
> + igt_fb_unmap_buffer(input_fb, input_map);
>
> return 0;
> }
> diff --git a/lib/igt_color.h b/lib/igt_color.h
> index 722446400f01..d66cfebc4191 100644
> --- a/lib/igt_color.h
> +++ b/lib/igt_color.h
> @@ -72,7 +72,11 @@ void igt_dump_fb(igt_display_t *display, igt_fb_t *fb, const char *path_name, co
>
> typedef void (*igt_pixel_transform)(igt_pixel_t *pixel);
>
> -int igt_color_transform_pixels(igt_fb_t *fb, igt_pixel_transform transforms[], int num_transforms);
> +int igt_color_transform_pixels(igt_fb_t *input_fb, igt_fb_t *output_fb,
> + igt_pixel_transform transforms[],
> + int num_transforms,
> + int yuv_encoding,
> + enum igt_color_range yuv_range);
>
> /* colorop helpers */
>
> diff --git a/tests/kms_colorop.c b/tests/kms_colorop.c
> index 16db0b8ad37f..bdfe312b8124 100644
> --- a/tests/kms_colorop.c
> +++ b/tests/kms_colorop.c
> @@ -195,15 +195,25 @@ static bool compare_with_bracket(igt_fb_t *in, igt_fb_t *out)
>
> #define MAX_COLOROPS 5
>
> -static void apply_transforms(kms_colorop_t *colorops[], igt_fb_t *sw_transform_fb)
> +static void apply_transforms(kms_colorop_t *colorops[], igt_fb_t *input_fb,
> + igt_fb_t *sw_transform_fb)
> {
> int i;
> + int yuv_encoding = -1;
> + enum igt_color_range yuv_range = IGT_COLOR_YCBCR_LIMITED_RANGE;
> igt_pixel_transform transforms[MAX_COLOROPS];
>
> for (i = 0; colorops[i]; i++)
> transforms[i] = colorops[i]->transform;
>
> - igt_color_transform_pixels(sw_transform_fb, transforms, i);
> + /* If first colorop is CSC FF, extract encoding/range for sw reference */
> + if (colorops[0] && colorops[0]->type == KMS_COLOROP_FIXED_MATRIX) {
> + yuv_encoding = colorops[0]->fixed_matrix_info.encoding;
> + yuv_range = colorops[0]->fixed_matrix_info.range;
> + }
> +
> + igt_color_transform_pixels(input_fb, sw_transform_fb, transforms, i,
> + yuv_encoding, yuv_range);
> }
>
> static void colorop_plane_test(igt_display_t *display,
> @@ -217,11 +227,8 @@ static void colorop_plane_test(igt_display_t *display,
> {
> igt_colorop_t *color_pipeline = NULL;
> igt_fb_t sw_transform_fb;
> - igt_crc_t input_crc, output_crc;
> int res;
>
> - igt_fb_get_fnv1a_crc(input_fb, &input_crc);
> -
> /* reset color pipeline*/
>
> set_color_pipeline_bypass(plane);
> @@ -235,18 +242,15 @@ static void colorop_plane_test(igt_display_t *display,
> NULL);
> igt_get_and_wait_out_fence(output);
>
> - /* Compare input and output buffers. They should be equal here. */
> - igt_fb_get_fnv1a_crc(output_fb, &output_crc);
> -
> - igt_assert_crc_equal(&input_crc, &output_crc);
> -
> - /* create sw transformed buffer */
> - res = igt_copy_fb(display->drm_fd, input_fb, &sw_transform_fb);
> + /* create sw transform buffer with output format */
> + res = igt_create_fb(display->drm_fd,
> + input_fb->width, input_fb->height,
> + output_fb->drm_format,
> + DRM_FORMAT_MOD_LINEAR,
> + &sw_transform_fb);
> igt_assert_lte(0, res);
>
> - igt_assert(igt_cmp_fb_pixels(input_fb, &sw_transform_fb, 0, 0));
> -
> - apply_transforms(colorops, &sw_transform_fb);
> + apply_transforms(colorops, input_fb, &sw_transform_fb);
>
> if (data.dump_check)
> igt_dump_fb(display, &sw_transform_fb, ".", "sw_transform");
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2026-08-14 19:56 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-31 18:01 [PATCH v4 00/10] [PATCH v4 00/10] YUV Conversion Colorop tests Harry Wentland
2026-07-31 18:01 ` [PATCH v4 01/10] include/drm-uapi: Add DRM_COLOROP_FIXED_MATRIX Harry Wentland
2026-07-31 18:01 ` [PATCH v4 02/10] lib/igt_kms: Add IGT_COLOROP_FIXED_MATRIX property Harry Wentland
2026-07-31 18:01 ` [PATCH v4 03/10] tests/kms_colorop_helper: Add Fixed Matrix colorop infrastructure Harry Wentland
2026-07-31 18:01 ` [PATCH v4 04/10] lib/igt_fb: Add YUV color pattern framebuffer support Harry Wentland
2026-07-31 18:01 ` [PATCH v4 05/10] lib/igt_color_encoding: Add XRGB2101010 format support Harry Wentland
2026-07-31 18:01 ` [PATCH v4 06/10] lib/igt_color: Add YUV pixel reading support Harry Wentland
2026-07-31 18:01 ` [PATCH v4 07/10] lib/igt_color: Refactor transform_pixels for input/output FBs and CSC Harry Wentland
2026-08-14 19:55 ` Alex Hung
2026-07-31 18:01 ` [PATCH v4 08/10] tests/kms_colorop: Add FIXED_MATRIX colorop tests Harry Wentland
2026-07-31 18:01 ` [PATCH v4 09/10] tests/kms_colorop: Add bypass transition tests Harry Wentland
2026-07-31 18:02 ` [PATCH v4 10/10] tests/kms_colorop: Increase VKMS bracket to 3 up Harry Wentland
2026-07-31 18:33 ` ✓ Xe.CI.BAT: success for YUV Conversion Colorop tests (rev3) Patchwork
2026-07-31 18:53 ` ✗ i915.CI.BAT: failure " Patchwork
2026-07-31 20:49 ` ✓ Xe.CI.FULL: success " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox