All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t v2 0/6] Enable VDSC output formats validation
@ 2023-02-02  7:21 Swati Sharma
  2023-02-02  7:21 ` [igt-dev] [PATCH i-g-t v2 1/6] lib/dsc: Fix return value Swati Sharma
                   ` (8 more replies)
  0 siblings, 9 replies; 15+ messages in thread
From: Swati Sharma @ 2023-02-02  7:21 UTC (permalink / raw)
  To: igt-dev

This series is split from
https://patchwork.freedesktop.org/series/111342/

Initial dsc lib related changes got merged. Received review
comments on driver debugfs YCBCR420 changes, to make debugfs
entry generic so that all supported output formats can be
validated.

In this series, review comments from above PW are addressed.
Along, with that changes are done to make test generic to
validate all supported dsc formats.

Swati Sharma (6):
  lib/dsc: Fix return value
  tests/i915/kms_dsc: Add plane_format as struct data_t member
  tests/i915/kms_dsc: Remove pointless struct
  tests/i915/kms_dsc: Make bpc_list static
  lib/dsc: Add helpers for VDSC output format debugfs entry
  tests/i915/kms_dsc: Enable validation for VDSC output formats

 lib/igt_dsc.c               |  56 +++++++++++++++-
 lib/igt_dsc.h               |   5 ++
 lib/igt_kms.c               |  18 +++++
 lib/igt_kms.h               |   7 ++
 tests/i915/kms_dsc.c        | 128 ++++++++++++++++++++++++++----------
 tests/i915/kms_dsc_helper.c |  40 ++++++++++-
 tests/i915/kms_dsc_helper.h |   4 ++
 7 files changed, 218 insertions(+), 40 deletions(-)

-- 
2.25.1

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [igt-dev] [PATCH i-g-t v2 1/6] lib/dsc: Fix return value
  2023-02-02  7:21 [igt-dev] [PATCH i-g-t v2 0/6] Enable VDSC output formats validation Swati Sharma
@ 2023-02-02  7:21 ` Swati Sharma
  2023-02-02  7:21 ` [igt-dev] [PATCH i-g-t v2 2/6] tests/i915/kms_dsc: Add plane_format as struct data_t member Swati Sharma
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 15+ messages in thread
From: Swati Sharma @ 2023-02-02  7:21 UTC (permalink / raw)
  To: igt-dev

0 is usually success, < 0 is error. Fix that.

Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
---
 lib/igt_dsc.c               | 7 +++++--
 tests/i915/kms_dsc_helper.c | 4 ++--
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/lib/igt_dsc.c b/lib/igt_dsc.c
index 25dcb5840..64dd6b29a 100644
--- a/lib/igt_dsc.c
+++ b/lib/igt_dsc.c
@@ -35,6 +35,9 @@ static int write_dsc_debugfs(int drmfd, char *connector_name, const char *file_n
 
 	close(debugfs_fd);
 
+	if (ret > 0)
+		return 0;
+
 	return ret;
 }
 
@@ -92,7 +95,7 @@ bool igt_is_force_dsc_enabled(int drmfd, char *connector_name)
  * @drmfd: A drm file descriptor
  * @connector_name: Name of the libdrm connector we're going to use
  *
- * Returns: 1 on success or negative error code, in case of failure.
+ * Returns: 0 on success or negative error code, in case of failure.
  */
 int igt_force_dsc_enable(int drmfd, char *connector_name)
 {
@@ -105,7 +108,7 @@ int igt_force_dsc_enable(int drmfd, char *connector_name)
  * @connector_name: Name of the libdrm connector we're going to use
  * @bpc: Input BPC
  *
- * Returns: No. of bytes written or negative error code, in case of failure.
+ * Returns: 0 on success or negative error code, in case of failure.
  */
 int igt_force_dsc_enable_bpc(int drmfd, char *connector_name, int bpc)
 {
diff --git a/tests/i915/kms_dsc_helper.c b/tests/i915/kms_dsc_helper.c
index a80f3d787..e2c278c7a 100644
--- a/tests/i915/kms_dsc_helper.c
+++ b/tests/i915/kms_dsc_helper.c
@@ -14,7 +14,7 @@ void force_dsc_enable(int drmfd, igt_output_t *output)
 
 	igt_debug("Forcing DSC enable on %s\n", output->name);
 	ret = igt_force_dsc_enable(drmfd, output->name);
-	igt_assert_f(ret > 0, "forcing dsc enable debugfs_write failed\n");
+	igt_assert_f(ret == 0, "forcing dsc enable debugfs_write failed\n");
 }
 
 void force_dsc_enable_bpc(int drmfd, igt_output_t *output, int input_bpc)
@@ -24,7 +24,7 @@ void force_dsc_enable_bpc(int drmfd, igt_output_t *output, int input_bpc)
 	igt_debug("Forcing input DSC BPC to %d on %s\n",
 		  input_bpc, output->name);
 	ret = igt_force_dsc_enable_bpc(drmfd, output->name, input_bpc);
-	igt_assert_f(ret > 0, "forcing input dsc bpc debugfs_write failed\n");
+	igt_assert_f(ret == 0, "forcing input dsc bpc debugfs_write failed\n");
 }
 
 void save_force_dsc_en(int drmfd, igt_output_t *output)
-- 
2.25.1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [igt-dev] [PATCH i-g-t v2 2/6] tests/i915/kms_dsc: Add plane_format as struct data_t member
  2023-02-02  7:21 [igt-dev] [PATCH i-g-t v2 0/6] Enable VDSC output formats validation Swati Sharma
  2023-02-02  7:21 ` [igt-dev] [PATCH i-g-t v2 1/6] lib/dsc: Fix return value Swati Sharma
@ 2023-02-02  7:21 ` Swati Sharma
  2023-02-02  7:21 ` [igt-dev] [PATCH i-g-t v2 3/6] tests/i915/kms_dsc: Remove pointless struct Swati Sharma
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 15+ messages in thread
From: Swati Sharma @ 2023-02-02  7:21 UTC (permalink / raw)
  To: igt-dev

plane_format is added as struct data_t member. Also, corresponding
changes are done to accommodate this change.

Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
---
 tests/i915/kms_dsc.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/tests/i915/kms_dsc.c b/tests/i915/kms_dsc.c
index 8f32ae950..af9466518 100644
--- a/tests/i915/kms_dsc.c
+++ b/tests/i915/kms_dsc.c
@@ -44,6 +44,7 @@ typedef struct {
 	uint32_t devid;
 	igt_display_t display;
 	struct igt_fb fb_test_pattern;
+	unsigned int plane_format;
 	igt_output_t *output;
 	int input_bpc;
 	int n_pipes;
@@ -108,7 +109,7 @@ static void test_cleanup(data_t *data)
 }
 
 /* re-probe connectors and do a modeset with DSC */
-static void update_display(data_t *data, enum dsc_test_type test_type, unsigned int plane_format)
+static void update_display(data_t *data, enum dsc_test_type test_type)
 {
 	bool enabled;
 	igt_plane_t *primary;
@@ -137,13 +138,13 @@ static void update_display(data_t *data, enum dsc_test_type test_type, unsigned
 
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 
-	igt_skip_on(!igt_plane_has_format_mod(primary, plane_format,
+	igt_skip_on(!igt_plane_has_format_mod(primary, data->plane_format,
 		    DRM_FORMAT_MOD_LINEAR));
 
 	igt_create_pattern_fb(data->drm_fd,
 			      mode->hdisplay,
 			      mode->vdisplay,
-			      plane_format,
+			      data->plane_format,
 			      DRM_FORMAT_MOD_LINEAR,
 			      &data->fb_test_pattern);
 
@@ -184,6 +185,7 @@ static void test_dsc(data_t *data, enum dsc_test_type test_type, int bpc,
 	enum pipe pipe;
 
 	for_each_pipe_with_valid_output(display, pipe, output) {
+		data->plane_format = plane_format;
 		data->input_bpc = bpc;
 		data->output = output;
 		data->pipe = pipe;
@@ -201,12 +203,12 @@ static void test_dsc(data_t *data, enum dsc_test_type test_type, int bpc,
 			continue;
 
 		if (test_type == TEST_DSC_BPC)
-			snprintf(name, sizeof(name), "-%dbpc-%s", data->input_bpc, igt_format_str(plane_format));
+			snprintf(name, sizeof(name), "-%dbpc-%s", data->input_bpc, igt_format_str(data->plane_format));
 		else
-			snprintf(name, sizeof(name), "-%s", igt_format_str(plane_format));
+			snprintf(name, sizeof(name), "-%s", igt_format_str(data->plane_format));
 
 		igt_dynamic_f("pipe-%s-%s%s",  kmstest_pipe_name(data->pipe), data->output->name, name)
-			update_display(data, test_type, plane_format);
+			update_display(data, test_type);
 	}
 }
 
-- 
2.25.1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [igt-dev] [PATCH i-g-t v2 3/6] tests/i915/kms_dsc: Remove pointless struct
  2023-02-02  7:21 [igt-dev] [PATCH i-g-t v2 0/6] Enable VDSC output formats validation Swati Sharma
  2023-02-02  7:21 ` [igt-dev] [PATCH i-g-t v2 1/6] lib/dsc: Fix return value Swati Sharma
  2023-02-02  7:21 ` [igt-dev] [PATCH i-g-t v2 2/6] tests/i915/kms_dsc: Add plane_format as struct data_t member Swati Sharma
@ 2023-02-02  7:21 ` Swati Sharma
  2023-02-03 12:29   ` Kamil Konieczny
  2023-02-02  7:21 ` [igt-dev] [PATCH i-g-t v2 4/6] tests/i915/kms_dsc: Make bpc_list static Swati Sharma
                   ` (5 subsequent siblings)
  8 siblings, 1 reply; 15+ messages in thread
From: Swati Sharma @ 2023-02-02  7:21 UTC (permalink / raw)
  To: igt-dev

Array can be used for plane_format. Use that and remove
struct.

v2: -make format list static (Jouni)

Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
---
 tests/i915/kms_dsc.c | 15 +++------------
 1 file changed, 3 insertions(+), 12 deletions(-)

diff --git a/tests/i915/kms_dsc.c b/tests/i915/kms_dsc.c
index af9466518..0f048e575 100644
--- a/tests/i915/kms_dsc.c
+++ b/tests/i915/kms_dsc.c
@@ -52,16 +52,7 @@ typedef struct {
 	enum pipe pipe;
 } data_t;
 
-const struct {
-	const int format;
-	const char format_str[20];
-} format_list[] = {
-	{DRM_FORMAT_XYUV8888, "XYUV8888"},
-	{DRM_FORMAT_XRGB2101010, "XRGB2101010"},
-	{DRM_FORMAT_XRGB16161616F, "XRGB16161616F"},
-	{DRM_FORMAT_YUYV, "YUYV"},
-};
-
+static int format_list[] =  {DRM_FORMAT_XYUV8888, DRM_FORMAT_XRGB2101010, DRM_FORMAT_XRGB16161616F, DRM_FORMAT_YUYV};
 uint32_t bpc_list[] = {12, 10, 8};
 
 static inline void manual(const char *expected)
@@ -242,7 +233,7 @@ igt_main
 		     "with default parameters and creating fb with diff formats");
 	igt_subtest_with_dynamic("dsc-with-formats") {
 		for (int k = 0; k < ARRAY_SIZE(format_list); k++)
-			test_dsc(&data, TEST_DSC_BASIC, 0, format_list[k].format);
+			test_dsc(&data, TEST_DSC_BASIC, 0, format_list[k]);
 	}
 
 	igt_describe("Tests basic display stream compression functionality if supported "
@@ -259,7 +250,7 @@ igt_main
 	igt_subtest_with_dynamic("dsc-with-bpc-formats") {
 		for (int j = 0; j < ARRAY_SIZE(bpc_list); j++) {
 			for (int k = 0; k < ARRAY_SIZE(format_list); k++) {
-				test_dsc(&data, TEST_DSC_BPC, bpc_list[j], format_list[k].format);
+				test_dsc(&data, TEST_DSC_BPC, bpc_list[j], format_list[k]);
 			}
 		}
 	}
-- 
2.25.1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [igt-dev] [PATCH i-g-t v2 4/6] tests/i915/kms_dsc: Make bpc_list static
  2023-02-02  7:21 [igt-dev] [PATCH i-g-t v2 0/6] Enable VDSC output formats validation Swati Sharma
                   ` (2 preceding siblings ...)
  2023-02-02  7:21 ` [igt-dev] [PATCH i-g-t v2 3/6] tests/i915/kms_dsc: Remove pointless struct Swati Sharma
@ 2023-02-02  7:21 ` Swati Sharma
  2023-02-02  7:21 ` [igt-dev] [PATCH i-g-t v2 5/6] lib/dsc: Add helpers for VDSC output format debugfs entry Swati Sharma
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 15+ messages in thread
From: Swati Sharma @ 2023-02-02  7:21 UTC (permalink / raw)
  To: igt-dev

Change bpc_list as static.

Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
---
 tests/i915/kms_dsc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/i915/kms_dsc.c b/tests/i915/kms_dsc.c
index 0f048e575..21addb234 100644
--- a/tests/i915/kms_dsc.c
+++ b/tests/i915/kms_dsc.c
@@ -53,7 +53,7 @@ typedef struct {
 } data_t;
 
 static int format_list[] =  {DRM_FORMAT_XYUV8888, DRM_FORMAT_XRGB2101010, DRM_FORMAT_XRGB16161616F, DRM_FORMAT_YUYV};
-uint32_t bpc_list[] = {12, 10, 8};
+static uint32_t bpc_list[] = {12, 10, 8};
 
 static inline void manual(const char *expected)
 {
-- 
2.25.1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [igt-dev] [PATCH i-g-t v2 5/6] lib/dsc: Add helpers for VDSC output format debugfs entry
  2023-02-02  7:21 [igt-dev] [PATCH i-g-t v2 0/6] Enable VDSC output formats validation Swati Sharma
                   ` (3 preceding siblings ...)
  2023-02-02  7:21 ` [igt-dev] [PATCH i-g-t v2 4/6] tests/i915/kms_dsc: Make bpc_list static Swati Sharma
@ 2023-02-02  7:21 ` Swati Sharma
  2023-02-03 12:39   ` Kamil Konieczny
  2023-02-02  7:21 ` [igt-dev] [PATCH i-g-t v2 6/6] tests/i915/kms_dsc: Enable validation for VDSC output formats Swati Sharma
                   ` (3 subsequent siblings)
  8 siblings, 1 reply; 15+ messages in thread
From: Swati Sharma @ 2023-02-02  7:21 UTC (permalink / raw)
  To: igt-dev

Helper functions are added for VDSC output format debugfs entry.

Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
---
 lib/igt_dsc.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
 lib/igt_dsc.h |  5 +++++
 lib/igt_kms.h |  6 ++++++
 3 files changed, 60 insertions(+)

diff --git a/lib/igt_dsc.c b/lib/igt_dsc.c
index 64dd6b29a..1f6d33291 100644
--- a/lib/igt_dsc.c
+++ b/lib/igt_dsc.c
@@ -134,3 +134,52 @@ int igt_get_dsc_debugfs_fd(int drmfd, char *connector_name)
 
 	return openat(igt_debugfs_dir(drmfd), file_name, O_WRONLY);
 }
+
+/*
+ * igt_is_dsc_output_format_supported_by_sink:
+ * @drmfd: A drm file descriptor
+ * @connector_name: Name of the libdrm connector we're going to use
+ * @output_format: Output format
+ *
+ * Returns: True if DSC output format is supported for the given connector,
+ * false otherwise.
+ */
+bool igt_is_dsc_output_format_supported_by_sink(int drmfd, char *connector_name,
+						enum dsc_output_format output_format)
+{
+	const char *check_str = "OUTPUTFORMATNOTFOUND";
+
+	switch(output_format) {
+	case DSC_FORMAT_RGB:
+		check_str = "RGB: yes";
+		break;
+	case DSC_FORMAT_YCBCR420:
+		check_str = "YCBCR420: yes";
+		break;
+	case DSC_FORMAT_YCBCR444:
+		check_str = "YCBCR444: yes";
+		break;
+	default:
+		break;
+	}
+
+	return check_dsc_debugfs(drmfd, connector_name, check_str);
+}
+
+/*
+ * igt_force_dsc_output_format:
+ * @drmfd: A drm file descriptor
+ * @connector_name: Name of the libdrm connector we're going to use
+ * @output_format: Output format
+ *
+ * Returns: 0 on success or negative error code, in case of failure.
+ */
+int igt_force_dsc_output_format(int drmfd, char *connector_name,
+				enum dsc_output_format output_format)
+{
+	char buf[20] = {0};
+
+	sprintf(buf, "%d", output_format);
+
+	return write_dsc_debugfs(drmfd, connector_name, "i915_dsc_output_format", buf);
+}
diff --git a/lib/igt_dsc.h b/lib/igt_dsc.h
index 291c2cdea..9608aad44 100644
--- a/lib/igt_dsc.h
+++ b/lib/igt_dsc.h
@@ -7,6 +7,7 @@
 #define IGT_DSC_H
 
 #include "igt_fb.h"
+#include "igt_kms.h"
 
 bool igt_is_dsc_supported(int drmfd, char *connector_name);
 bool igt_is_fec_supported(int drmfd, char *connector_name);
@@ -15,5 +16,9 @@ bool igt_is_force_dsc_enabled(int drmfd, char *connector_name);
 int igt_force_dsc_enable(int drmfd, char *connector_name);
 int igt_force_dsc_enable_bpc(int drmfd, char *connector_name, int bpc);
 int igt_get_dsc_debugfs_fd(int drmfd, char *connector_name);
+bool igt_is_dsc_output_format_supported_by_sink(int drmfd, char *connector_name,
+						enum dsc_output_format output_format);
+int igt_force_dsc_output_format(int drmfd, char *connector_name,
+				enum dsc_output_format output_format);
 
 #endif
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index be5482e08..9f5bef170 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -106,6 +106,12 @@ enum igt_custom_edid_type {
  */
 #define kmstest_port_name(port) ((port) + 'A')
 
+enum dsc_output_format {
+	DSC_FORMAT_RGB = 0,
+	DSC_FORMAT_YCBCR420,
+	DSC_FORMAT_YCBCR444
+};
+
 const char *kmstest_encoder_type_str(int type);
 const char *kmstest_connector_status_str(int status);
 const char *kmstest_connector_type_str(int type);
-- 
2.25.1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [igt-dev] [PATCH i-g-t v2 6/6] tests/i915/kms_dsc: Enable validation for VDSC output formats
  2023-02-02  7:21 [igt-dev] [PATCH i-g-t v2 0/6] Enable VDSC output formats validation Swati Sharma
                   ` (4 preceding siblings ...)
  2023-02-02  7:21 ` [igt-dev] [PATCH i-g-t v2 5/6] lib/dsc: Add helpers for VDSC output format debugfs entry Swati Sharma
@ 2023-02-02  7:21 ` Swati Sharma
  2023-02-02  7:48 ` [igt-dev] ✓ Fi.CI.BAT: success for Enable VDSC output formats validation (rev2) Patchwork
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 15+ messages in thread
From: Swati Sharma @ 2023-02-02  7:21 UTC (permalink / raw)
  To: igt-dev

Existing i-g-t is extended to enable validation for VDSC output formats. Output
format is selected as per driver policy. For ex: If a mode is supported
in both RGB and YCbCr420 output formats by the sink, i915 driver policy is
to try RGB first and fall back to YCbCr420, if mode cannot be shown using RGB.

To test DSC output format, a debugfs entry is created to force this output format.
However, before setting debugfs entry, we have checked capability i.e. output
format is supported by both platform and sink.

Also, each mode doesn't support all output formats; so if both sink and platform
support an output format, we will do a try commit with each mode till we get a
successful commit.

v2: -used is_dsc_ycbcr420_supported() (Ankit)
    -handled try-commit correctly (Ankit)
    -instead of flag use enum for output formats (Ankit)
v3: -instead of global count, pass count as para (Ankit)
    -print output format (Ankit)
v4: -optimized while loop (Jouni)
    -used only try commit (Jouni)
    -fixed get_next_mode() (Jouni)
v5: -made generic test to validate all output formats (Jani N)
v6: -fixed assert (Jouni)

Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
---
 lib/igt_kms.c               |  18 +++++++
 lib/igt_kms.h               |   1 +
 tests/i915/kms_dsc.c        | 103 +++++++++++++++++++++++++++++-------
 tests/i915/kms_dsc_helper.c |  36 +++++++++++++
 tests/i915/kms_dsc_helper.h |   4 ++
 5 files changed, 142 insertions(+), 20 deletions(-)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 31e6dfda0..8563af470 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -966,6 +966,24 @@ const char *kmstest_scaling_filter_str(int filter)
 	return find_type_name(scaling_filter_names, filter);
 }
 
+static const struct type_name dsc_output_format_names[] = {
+	{ DSC_FORMAT_RGB, "RGB" },
+	{ DSC_FORMAT_YCBCR420, "YCBCR420" },
+	{ DSC_FORMAT_YCBCR444, "YCBCR444" },
+	{}
+};
+
+/**
+ * kmstest_dsc_output_format_str:
+ * @output_format: DSC_FORMAT_* output format value
+ *
+ * Returns: A string representing the output format @output format.
+ */
+const char *kmstest_dsc_output_format_str(int output_format)
+{
+	return find_type_name(dsc_output_format_names, output_format);
+}
+
 static const struct type_name connector_type_names[] = {
 	{ DRM_MODE_CONNECTOR_Unknown, "Unknown" },
 	{ DRM_MODE_CONNECTOR_VGA, "VGA" },
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index 9f5bef170..70f40baca 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -116,6 +116,7 @@ const char *kmstest_encoder_type_str(int type);
 const char *kmstest_connector_status_str(int status);
 const char *kmstest_connector_type_str(int type);
 const char *kmstest_scaling_filter_str(int filter);
+const char *kmstest_dsc_output_format_str(int output_format);
 
 void kmstest_dump_mode(drmModeModeInfo *mode);
 #define MAX_HDISPLAY_PER_PIPE 5120
diff --git a/tests/i915/kms_dsc.c b/tests/i915/kms_dsc.c
index 21addb234..ec0a69302 100644
--- a/tests/i915/kms_dsc.c
+++ b/tests/i915/kms_dsc.c
@@ -36,7 +36,8 @@ IGT_TEST_DESCRIPTION("Test to validate display stream compression");
 
 enum dsc_test_type {
 	TEST_DSC_BASIC,
-	TEST_DSC_BPC
+	TEST_DSC_BPC,
+	TEST_DSC_OUTPUT_FORMAT
 };
 
 typedef struct {
@@ -44,6 +45,7 @@ typedef struct {
 	uint32_t devid;
 	igt_display_t display;
 	struct igt_fb fb_test_pattern;
+	enum dsc_output_format output_format;
 	unsigned int plane_format;
 	igt_output_t *output;
 	int input_bpc;
@@ -52,6 +54,7 @@ typedef struct {
 	enum pipe pipe;
 } data_t;
 
+static int output_format_list[] = {DSC_FORMAT_YCBCR420, DSC_FORMAT_YCBCR444};
 static int format_list[] =  {DRM_FORMAT_XYUV8888, DRM_FORMAT_XRGB2101010, DRM_FORMAT_XRGB16161616F, DRM_FORMAT_YUYV};
 static uint32_t bpc_list[] = {12, 10, 8};
 
@@ -72,6 +75,17 @@ static drmModeModeInfo *get_highres_mode(igt_output_t *output)
 	return highest_mode;
 }
 
+static drmModeModeInfo *get_next_mode(igt_output_t *output, int index)
+{
+	drmModeConnector *connector = output->config.connector;
+	drmModeModeInfo *next_mode = NULL;
+
+	if (index < connector->count_modes)
+		next_mode = &connector->modes[index];
+
+	return next_mode;
+}
+
 static bool check_big_joiner_pipe_constraint(data_t *data)
 {
 	igt_output_t *output = data->output;
@@ -102,7 +116,9 @@ static void test_cleanup(data_t *data)
 /* re-probe connectors and do a modeset with DSC */
 static void update_display(data_t *data, enum dsc_test_type test_type)
 {
+	int ret;
 	bool enabled;
+	int index = 0;
 	igt_plane_t *primary;
 	drmModeModeInfo *mode;
 	igt_output_t *output = data->output;
@@ -121,26 +137,47 @@ static void update_display(data_t *data, enum dsc_test_type test_type)
 		force_dsc_enable_bpc(data->drm_fd, data->output, data->input_bpc);
 	}
 
-	igt_output_set_pipe(output, data->pipe);
-
-	mode = get_highres_mode(output);
-	igt_require(mode != NULL);
-	igt_output_override_mode(output, mode);
+	if (test_type == TEST_DSC_OUTPUT_FORMAT) {
+		igt_debug("Trying to set DSC %s output format\n",
+			   kmstest_dsc_output_format_str(data->output_format));
+		force_dsc_output_format(data->drm_fd, data->output, data->output_format);
+	}
 
+	igt_output_set_pipe(output, data->pipe);
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 
 	igt_skip_on(!igt_plane_has_format_mod(primary, data->plane_format,
 		    DRM_FORMAT_MOD_LINEAR));
 
-	igt_create_pattern_fb(data->drm_fd,
-			      mode->hdisplay,
-			      mode->vdisplay,
-			      data->plane_format,
-			      DRM_FORMAT_MOD_LINEAR,
-			      &data->fb_test_pattern);
+	do {
+		if (data->output_format == DSC_FORMAT_RGB) {
+			mode = get_highres_mode(output);
+		} else {
+			mode = get_next_mode(output, index);
+			index++;
+		}
 
-	igt_plane_set_fb(primary, &data->fb_test_pattern);
-	igt_display_commit(display);
+		igt_require(mode != NULL);
+		igt_output_override_mode(output, mode);
+
+		igt_create_pattern_fb(data->drm_fd,
+				      mode->hdisplay,
+				      mode->vdisplay,
+				      data->plane_format,
+				      DRM_FORMAT_MOD_LINEAR,
+				      &data->fb_test_pattern);
+		igt_plane_set_fb(primary, &data->fb_test_pattern);
+
+		ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
+		if (data->output_format != DSC_FORMAT_RGB && ret != 0) {
+			igt_remove_fb(data->drm_fd, &data->fb_test_pattern);
+				continue;
+		} else {
+				break;
+		}
+	} while(1);
+
+	igt_assert_eq(ret, 0);
 
 	/* until we have CRC check support, manually check if RGB test
 	 * pattern has no corruption.
@@ -155,10 +192,15 @@ static void update_display(data_t *data, enum dsc_test_type test_type)
 				enabled ? "ON" : "OFF");
 
 	restore_force_dsc_en();
-	igt_debug("Reset compression BPC\n");
+
+	igt_debug("Reset input BPC\n");
 	data->input_bpc = 0;
 	force_dsc_enable_bpc(data->drm_fd, data->output, data->input_bpc);
 
+	igt_debug("Reset DSC output format\n");
+	data->output_format = DSC_FORMAT_RGB;
+	force_dsc_output_format(data->drm_fd, data->output, data->output_format);
+
 	igt_assert_f(enabled,
 		     "Default DSC enable failed on connector: %s pipe: %s\n",
 		     output->name,
@@ -168,7 +210,7 @@ static void update_display(data_t *data, enum dsc_test_type test_type)
 }
 
 static void test_dsc(data_t *data, enum dsc_test_type test_type, int bpc,
-		     unsigned int plane_format)
+		     unsigned int plane_format, enum dsc_output_format output_format)
 {
 	igt_display_t *display = &data->display;
 	igt_output_t *output;
@@ -176,6 +218,7 @@ static void test_dsc(data_t *data, enum dsc_test_type test_type, int bpc,
 	enum pipe pipe;
 
 	for_each_pipe_with_valid_output(display, pipe, output) {
+		data->output_format = output_format;
 		data->plane_format = plane_format;
 		data->input_bpc = bpc;
 		data->output = output;
@@ -184,6 +227,10 @@ static void test_dsc(data_t *data, enum dsc_test_type test_type, int bpc,
 		if (!check_dsc_on_connector(data->drm_fd, data->output))
 			continue;
 
+		if (!is_dsc_output_format_supported(data->drm_fd, data->disp_ver,
+						    data->output, data->output_format))
+			continue;
+
 		if (!check_gen11_dp_constraint(data->drm_fd, data->output, data->pipe))
 			continue;
 
@@ -195,6 +242,9 @@ static void test_dsc(data_t *data, enum dsc_test_type test_type, int bpc,
 
 		if (test_type == TEST_DSC_BPC)
 			snprintf(name, sizeof(name), "-%dbpc-%s", data->input_bpc, igt_format_str(data->plane_format));
+		else if (test_type == TEST_DSC_OUTPUT_FORMAT)
+			snprintf(name, sizeof(name), "-%s-%s", kmstest_dsc_output_format_str(data->output_format),
+							       igt_format_str(data->plane_format));
 		else
 			snprintf(name, sizeof(name), "-%s", igt_format_str(data->plane_format));
 
@@ -226,14 +276,16 @@ igt_main
 		     "by a connector by forcing DSC on all connectors that support it "
 		     "with default parameters");
 	igt_subtest_with_dynamic("basic-dsc")
-			test_dsc(&data, TEST_DSC_BASIC, 0, DRM_FORMAT_XRGB8888);
+			test_dsc(&data, TEST_DSC_BASIC, 0,
+				 DRM_FORMAT_XRGB8888, DSC_FORMAT_RGB);
 
 	igt_describe("Tests basic display stream compression functionality if supported "
 		     "by a connector by forcing DSC on all connectors that support it "
 		     "with default parameters and creating fb with diff formats");
 	igt_subtest_with_dynamic("dsc-with-formats") {
 		for (int k = 0; k < ARRAY_SIZE(format_list); k++)
-			test_dsc(&data, TEST_DSC_BASIC, 0, format_list[k]);
+			test_dsc(&data, TEST_DSC_BASIC, 0,
+				 format_list[k], DSC_FORMAT_RGB);
 	}
 
 	igt_describe("Tests basic display stream compression functionality if supported "
@@ -241,7 +293,8 @@ igt_main
 		     "with certain input BPC for the connector");
 	igt_subtest_with_dynamic("dsc-with-bpc") {
 		for (int j = 0; j < ARRAY_SIZE(bpc_list); j++)
-			test_dsc(&data, TEST_DSC_BPC, bpc_list[j], DRM_FORMAT_XRGB8888);
+			test_dsc(&data, TEST_DSC_BPC, bpc_list[j],
+				 DRM_FORMAT_XRGB8888, DSC_FORMAT_RGB);
 	}
 
 	igt_describe("Tests basic display stream compression functionality if supported "
@@ -250,11 +303,21 @@ igt_main
 	igt_subtest_with_dynamic("dsc-with-bpc-formats") {
 		for (int j = 0; j < ARRAY_SIZE(bpc_list); j++) {
 			for (int k = 0; k < ARRAY_SIZE(format_list); k++) {
-				test_dsc(&data, TEST_DSC_BPC, bpc_list[j], format_list[k]);
+				test_dsc(&data, TEST_DSC_BPC, bpc_list[j],
+				format_list[k], DSC_FORMAT_RGB);
 			}
 		}
 	}
 
+	igt_describe("Tests basic display stream compression functionality if supported "
+		     "by a connector by forcing DSC and output format on all connectors "
+		     "that support it");
+	igt_subtest_with_dynamic("dsc-with-output-formats") {
+		for (int k = 0; k < ARRAY_SIZE(output_format_list); k++)
+			test_dsc(&data, TEST_DSC_OUTPUT_FORMAT, 0, DRM_FORMAT_XRGB8888,
+				 output_format_list[k]);
+	}
+
 	igt_fixture {
 		igt_display_fini(&data.display);
 		close(data.drm_fd);
diff --git a/tests/i915/kms_dsc_helper.c b/tests/i915/kms_dsc_helper.c
index e2c278c7a..05b38e5f9 100644
--- a/tests/i915/kms_dsc_helper.c
+++ b/tests/i915/kms_dsc_helper.c
@@ -97,3 +97,39 @@ bool check_gen11_bpc_constraint(int drmfd, igt_output_t *output, int input_bpc)
 
 	return true;
 }
+
+void force_dsc_output_format(int drmfd, igt_output_t *output,
+			     enum dsc_output_format output_format)
+{
+	int ret;
+
+	igt_debug("Forcing DSC %s output format on %s\n",
+		  kmstest_dsc_output_format_str(output_format), output->name);
+	ret = igt_force_dsc_output_format(drmfd, output->name, output_format);
+	igt_assert_f(ret == 0, "forcing dsc output format debugfs_write failed\n");
+}
+
+/* YCbCr420 DSC is supported on display version 14+ with DSC1.2a */
+static bool is_dsc_output_format_supported_by_platform(int disp_ver, enum dsc_output_format output_format)
+{
+	if (disp_ver < 14 && output_format == DSC_FORMAT_YCBCR420) {
+		igt_debug("Ouput format DSC YCBCR420 supported on D14+ platforms\n");
+		return false;
+	}
+
+	return true;
+}
+
+bool is_dsc_output_format_supported(int drmfd, int disp_ver, igt_output_t *output,
+				    enum dsc_output_format output_format)
+{
+	if (!(igt_is_dsc_output_format_supported_by_sink(drmfd, output->name, output_format)) &&
+	     (is_dsc_output_format_supported_by_platform(disp_ver, output_format))) {
+		    igt_debug("DSC %s output format not supported on connector %s\n",
+			       kmstest_dsc_output_format_str(output_format),
+			       output->name);
+			return false;
+		}
+
+	return true;
+}
diff --git a/tests/i915/kms_dsc_helper.h b/tests/i915/kms_dsc_helper.h
index fe479dac4..244293cd0 100644
--- a/tests/i915/kms_dsc_helper.h
+++ b/tests/i915/kms_dsc_helper.h
@@ -31,5 +31,9 @@ void kms_dsc_exit_handler(int sig);
 bool check_dsc_on_connector(int drmfd, igt_output_t *output);
 bool check_gen11_dp_constraint(int drmfd, igt_output_t *output, enum pipe pipe);
 bool check_gen11_bpc_constraint(int drmfd, igt_output_t *output, int input_bpc);
+void force_dsc_output_format(int drmfd, igt_output_t *output,
+			     enum dsc_output_format output_format);
+bool is_dsc_output_format_supported(int disp_ver, int drmfd, igt_output_t *output,
+				    enum dsc_output_format output_format);
 
 #endif
-- 
2.25.1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [igt-dev] ✓ Fi.CI.BAT: success for Enable VDSC output formats validation (rev2)
  2023-02-02  7:21 [igt-dev] [PATCH i-g-t v2 0/6] Enable VDSC output formats validation Swati Sharma
                   ` (5 preceding siblings ...)
  2023-02-02  7:21 ` [igt-dev] [PATCH i-g-t v2 6/6] tests/i915/kms_dsc: Enable validation for VDSC output formats Swati Sharma
@ 2023-02-02  7:48 ` Patchwork
  2023-02-02 10:52 ` [igt-dev] [PATCH i-g-t v2 0/6] Enable VDSC output formats validation Hogander, Jouni
  2023-02-02 16:00 ` [igt-dev] ✓ Fi.CI.IGT: success for Enable VDSC output formats validation (rev2) Patchwork
  8 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2023-02-02  7:48 UTC (permalink / raw)
  To: Swati Sharma; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 3688 bytes --]

== Series Details ==

Series: Enable VDSC output formats validation (rev2)
URL   : https://patchwork.freedesktop.org/series/113253/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_12681 -> IGTPW_8433
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/index.html

Participating hosts (25 -> 25)
------------------------------

  Additional (1): fi-apl-guc 
  Missing    (1): fi-snb-2520m 

Known issues
------------

  Here are the changes found in IGTPW_8433 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@fbdev@write:
    - fi-blb-e6850:       [PASS][1] -> [SKIP][2] ([fdo#109271]) +4 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12681/fi-blb-e6850/igt@fbdev@write.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/fi-blb-e6850/igt@fbdev@write.html

  * igt@gem_lmem_swapping@basic:
    - fi-apl-guc:         NOTRUN -> [SKIP][3] ([fdo#109271] / [i915#4613]) +3 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/fi-apl-guc/igt@gem_lmem_swapping@basic.html

  * igt@kms_chamelium_hpd@vga-hpd-fast:
    - fi-apl-guc:         NOTRUN -> [SKIP][4] ([fdo#109271]) +21 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/fi-apl-guc/igt@kms_chamelium_hpd@vga-hpd-fast.html

  
#### Possible fixes ####

  * igt@gem_exec_suspend@basic-s0@smem:
    - {bat-rpls-1}:       [ABORT][5] ([i915#6311] / [i915#7359]) -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12681/bat-rpls-1/igt@gem_exec_suspend@basic-s0@smem.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/bat-rpls-1/igt@gem_exec_suspend@basic-s0@smem.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
  [i915#6311]: https://gitlab.freedesktop.org/drm/intel/issues/6311
  [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
  [i915#7359]: https://gitlab.freedesktop.org/drm/intel/issues/7359
  [i915#7609]: https://gitlab.freedesktop.org/drm/intel/issues/7609
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#7977]: https://gitlab.freedesktop.org/drm/intel/issues/7977
  [i915#7996]: https://gitlab.freedesktop.org/drm/intel/issues/7996


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_7143 -> IGTPW_8433

  CI-20190529: 20190529
  CI_DRM_12681: 8ee2ec597aa4b8331124bf852432c2ca2fd7b8d1 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8433: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/index.html
  IGT_7143: c7b12dcc460fc2348e1fa7f4dcb791bb82e29e44 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git


Testlist changes
----------------

+igt@kms_dsc@dsc-with-output-formats
+igt@kms_plane_alpha_blend@alpha-7efc
+igt@kms_plane_alpha_blend@alpha-basic
+igt@kms_plane_alpha_blend@alpha-opaque-fb
+igt@kms_plane_alpha_blend@alpha-transparent-fb
+igt@kms_plane_alpha_blend@constant-alpha-max
+igt@kms_plane_alpha_blend@constant-alpha-mid
+igt@kms_plane_alpha_blend@constant-alpha-min
+igt@kms_plane_alpha_blend@coverage-7efc
+igt@kms_plane_alpha_blend@coverage-vs-premult-vs-constant

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/index.html

[-- Attachment #2: Type: text/html, Size: 4082 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v2 0/6] Enable VDSC output formats validation
  2023-02-02  7:21 [igt-dev] [PATCH i-g-t v2 0/6] Enable VDSC output formats validation Swati Sharma
                   ` (6 preceding siblings ...)
  2023-02-02  7:48 ` [igt-dev] ✓ Fi.CI.BAT: success for Enable VDSC output formats validation (rev2) Patchwork
@ 2023-02-02 10:52 ` Hogander, Jouni
  2023-02-03 10:53   ` Swati Sharma
  2023-02-02 16:00 ` [igt-dev] ✓ Fi.CI.IGT: success for Enable VDSC output formats validation (rev2) Patchwork
  8 siblings, 1 reply; 15+ messages in thread
From: Hogander, Jouni @ 2023-02-02 10:52 UTC (permalink / raw)
  To: igt-dev, Sharma, Swati2

On Thu, 2023-02-02 at 12:51 +0530, Swati Sharma wrote:
> This series is split from
> https://patchwork.freedesktop.org/series/111342/
> 
> Initial dsc lib related changes got merged. Received review
> comments on driver debugfs YCBCR420 changes, to make debugfs
> entry generic so that all supported output formats can be
> validated.
> 
> In this series, review comments from above PW are addressed.
> Along, with that changes are done to make test generic to
> validate all supported dsc formats.

For the whole set:

Reviewed-by: Jouni Högander <jouni.hogander@intel.com>

> 
> Swati Sharma (6):
>   lib/dsc: Fix return value
>   tests/i915/kms_dsc: Add plane_format as struct data_t member
>   tests/i915/kms_dsc: Remove pointless struct
>   tests/i915/kms_dsc: Make bpc_list static
>   lib/dsc: Add helpers for VDSC output format debugfs entry
>   tests/i915/kms_dsc: Enable validation for VDSC output formats
> 
>  lib/igt_dsc.c               |  56 +++++++++++++++-
>  lib/igt_dsc.h               |   5 ++
>  lib/igt_kms.c               |  18 +++++
>  lib/igt_kms.h               |   7 ++
>  tests/i915/kms_dsc.c        | 128 ++++++++++++++++++++++++++--------
> --
>  tests/i915/kms_dsc_helper.c |  40 ++++++++++-
>  tests/i915/kms_dsc_helper.h |   4 ++
>  7 files changed, 218 insertions(+), 40 deletions(-)
> 


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [igt-dev] ✓ Fi.CI.IGT: success for Enable VDSC output formats validation (rev2)
  2023-02-02  7:21 [igt-dev] [PATCH i-g-t v2 0/6] Enable VDSC output formats validation Swati Sharma
                   ` (7 preceding siblings ...)
  2023-02-02 10:52 ` [igt-dev] [PATCH i-g-t v2 0/6] Enable VDSC output formats validation Hogander, Jouni
@ 2023-02-02 16:00 ` Patchwork
  8 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2023-02-02 16:00 UTC (permalink / raw)
  To: Swati Sharma; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 21471 bytes --]

== Series Details ==

Series: Enable VDSC output formats validation (rev2)
URL   : https://patchwork.freedesktop.org/series/113253/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_12681_full -> IGTPW_8433_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/index.html

Participating hosts (10 -> 10)
------------------------------

  No changes in participating hosts

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_8433_full:

### IGT changes ###

#### Possible regressions ####

  * {igt@kms_dsc@dsc-with-output-formats} (NEW):
    - {shard-dg1}:        NOTRUN -> [SKIP][1]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/shard-dg1-12/igt@kms_dsc@dsc-with-output-formats.html
    - {shard-tglu}:       NOTRUN -> [SKIP][2]
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/shard-tglu-6/igt@kms_dsc@dsc-with-output-formats.html

  
New tests
---------

  New tests have been introduced between CI_DRM_12681_full and IGTPW_8433_full:

### New IGT tests (1) ###

  * igt@kms_dsc@dsc-with-output-formats:
    - Statuses : 4 skip(s)
    - Exec time: [0.0] s

  

Known issues
------------

  Here are the changes found in IGTPW_8433_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_fair@basic-none-share@rcs0:
    - shard-glk:          [PASS][3] -> [FAIL][4] ([i915#2842]) +2 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12681/shard-glk3/igt@gem_exec_fair@basic-none-share@rcs0.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/shard-glk3/igt@gem_exec_fair@basic-none-share@rcs0.html

  * {igt@kms_dsc@dsc-with-output-formats} (NEW):
    - {shard-rkl}:        NOTRUN -> [SKIP][5] ([i915#4098])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/shard-rkl-4/igt@kms_dsc@dsc-with-output-formats.html
    - shard-glk:          NOTRUN -> [SKIP][6] ([fdo#109271])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/shard-glk6/igt@kms_dsc@dsc-with-output-formats.html

  * igt@kms_flip@2x-plain-flip-fb-recreate@ab-hdmi-a1-hdmi-a2:
    - shard-glk:          [PASS][7] -> [FAIL][8] ([i915#2122])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12681/shard-glk4/igt@kms_flip@2x-plain-flip-fb-recreate@ab-hdmi-a1-hdmi-a2.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/shard-glk6/igt@kms_flip@2x-plain-flip-fb-recreate@ab-hdmi-a1-hdmi-a2.html

  
#### Possible fixes ####

  * igt@drm_fdinfo@idle@rcs0:
    - {shard-rkl}:        [FAIL][9] ([i915#7742]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12681/shard-rkl-6/igt@drm_fdinfo@idle@rcs0.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/shard-rkl-3/igt@drm_fdinfo@idle@rcs0.html

  * igt@fbdev@info:
    - {shard-rkl}:        [SKIP][11] ([i915#2582]) -> [PASS][12] +1 similar issue
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12681/shard-rkl-4/igt@fbdev@info.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/shard-rkl-6/igt@fbdev@info.html

  * igt@gem_ctx_persistence@engines-hang@bcs0:
    - {shard-rkl}:        [SKIP][13] ([i915#6252]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12681/shard-rkl-5/igt@gem_ctx_persistence@engines-hang@bcs0.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/shard-rkl-6/igt@gem_ctx_persistence@engines-hang@bcs0.html

  * igt@gem_eio@in-flight-suspend:
    - {shard-rkl}:        [FAIL][15] ([fdo#103375]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12681/shard-rkl-3/igt@gem_eio@in-flight-suspend.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/shard-rkl-5/igt@gem_eio@in-flight-suspend.html

  * igt@gem_exec_endless@dispatch@bcs0:
    - {shard-rkl}:        [SKIP][17] ([i915#6247]) -> [PASS][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12681/shard-rkl-5/igt@gem_exec_endless@dispatch@bcs0.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/shard-rkl-3/igt@gem_exec_endless@dispatch@bcs0.html

  * igt@gem_exec_fair@basic-deadline:
    - {shard-rkl}:        [FAIL][19] ([i915#2846]) -> [PASS][20]
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12681/shard-rkl-1/igt@gem_exec_fair@basic-deadline.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/shard-rkl-1/igt@gem_exec_fair@basic-deadline.html

  * igt@gem_exec_fair@basic-throttle@rcs0:
    - {shard-rkl}:        [FAIL][21] ([i915#2842]) -> [PASS][22]
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12681/shard-rkl-4/igt@gem_exec_fair@basic-throttle@rcs0.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/shard-rkl-5/igt@gem_exec_fair@basic-throttle@rcs0.html

  * igt@gem_exec_reloc@basic-gtt-read-noreloc:
    - {shard-rkl}:        [SKIP][23] ([i915#3281]) -> [PASS][24] +15 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12681/shard-rkl-3/igt@gem_exec_reloc@basic-gtt-read-noreloc.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/shard-rkl-5/igt@gem_exec_reloc@basic-gtt-read-noreloc.html

  * igt@gem_mmap_wc@set-cache-level:
    - {shard-rkl}:        [SKIP][25] ([i915#1850]) -> [PASS][26]
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12681/shard-rkl-3/igt@gem_mmap_wc@set-cache-level.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/shard-rkl-6/igt@gem_mmap_wc@set-cache-level.html

  * igt@gem_userptr_blits@forbidden-operations:
    - {shard-rkl}:        [SKIP][27] ([i915#3282]) -> [PASS][28] +3 similar issues
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12681/shard-rkl-4/igt@gem_userptr_blits@forbidden-operations.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/shard-rkl-5/igt@gem_userptr_blits@forbidden-operations.html

  * igt@gen9_exec_parse@bb-start-out:
    - {shard-rkl}:        [SKIP][29] ([i915#2527]) -> [PASS][30] +1 similar issue
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12681/shard-rkl-1/igt@gen9_exec_parse@bb-start-out.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/shard-rkl-5/igt@gen9_exec_parse@bb-start-out.html

  * igt@i915_pm_rpm@drm-resources-equal:
    - {shard-rkl}:        [SKIP][31] ([fdo#109308]) -> [PASS][32]
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12681/shard-rkl-4/igt@i915_pm_rpm@drm-resources-equal.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/shard-rkl-6/igt@i915_pm_rpm@drm-resources-equal.html

  * igt@i915_pm_sseu@full-enable:
    - {shard-rkl}:        [SKIP][33] ([i915#4387]) -> [PASS][34]
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12681/shard-rkl-6/igt@i915_pm_sseu@full-enable.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/shard-rkl-5/igt@i915_pm_sseu@full-enable.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-async-flip:
    - {shard-rkl}:        [SKIP][35] ([i915#1845] / [i915#4098]) -> [PASS][36] +23 similar issues
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12681/shard-rkl-2/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/shard-rkl-6/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html

  * igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_rc_ccs:
    - {shard-tglu}:       [SKIP][37] ([i915#7651]) -> [PASS][38] +6 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12681/shard-tglu-6/igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_rc_ccs.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/shard-tglu-2/igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_rc_ccs.html

  * igt@kms_frontbuffer_tracking@fbc-shrfb-scaledprimary:
    - {shard-rkl}:        [SKIP][39] ([i915#1849] / [i915#4098]) -> [PASS][40] +9 similar issues
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12681/shard-rkl-5/igt@kms_frontbuffer_tracking@fbc-shrfb-scaledprimary.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-shrfb-scaledprimary.html

  * igt@kms_plane@pixel-format@pipe-b-planes:
    - {shard-rkl}:        [SKIP][41] ([i915#1849]) -> [PASS][42] +3 similar issues
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12681/shard-rkl-4/igt@kms_plane@pixel-format@pipe-b-planes.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/shard-rkl-6/igt@kms_plane@pixel-format@pipe-b-planes.html

  * igt@kms_psr@primary_mmap_gtt:
    - {shard-rkl}:        [SKIP][43] ([i915#1072]) -> [PASS][44] +2 similar issues
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12681/shard-rkl-5/igt@kms_psr@primary_mmap_gtt.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/shard-rkl-6/igt@kms_psr@primary_mmap_gtt.html

  * igt@kms_universal_plane@universal-plane-pipe-c-sanity:
    - {shard-tglu}:       [SKIP][45] ([fdo#109274]) -> [PASS][46] +1 similar issue
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12681/shard-tglu-6/igt@kms_universal_plane@universal-plane-pipe-c-sanity.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/shard-tglu-8/igt@kms_universal_plane@universal-plane-pipe-c-sanity.html

  * igt@perf_pmu@idle@rcs0:
    - {shard-rkl}:        [FAIL][47] ([i915#4349]) -> [PASS][48]
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12681/shard-rkl-4/igt@perf_pmu@idle@rcs0.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/shard-rkl-5/igt@perf_pmu@idle@rcs0.html

  * igt@prime_vgem@basic-read:
    - {shard-rkl}:        [SKIP][49] ([fdo#109295] / [i915#3291] / [i915#3708]) -> [PASS][50]
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12681/shard-rkl-1/igt@prime_vgem@basic-read.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/shard-rkl-5/igt@prime_vgem@basic-read.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [IGT#2]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/2
  [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
  [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [fdo#109300]: https://bugs.freedesktop.org/show_bug.cgi?id=109300
  [fdo#109303]: https://bugs.freedesktop.org/show_bug.cgi?id=109303
  [fdo#109307]: https://bugs.freedesktop.org/show_bug.cgi?id=109307
  [fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308
  [fdo#109314]: https://bugs.freedesktop.org/show_bug.cgi?id=109314
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
  [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
  [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
  [fdo#111644]: https://bugs.freedesktop.org/show_bug.cgi?id=111644
  [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
  [fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1257]: https://gitlab.freedesktop.org/drm/intel/issues/1257
  [i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [i915#1722]: https://gitlab.freedesktop.org/drm/intel/issues/1722
  [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
  [i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
  [i915#1850]: https://gitlab.freedesktop.org/drm/intel/issues/1850
  [i915#1902]: https://gitlab.freedesktop.org/drm/intel/issues/1902
  [i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
  [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
  [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
  [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
  [i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658
  [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
  [i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
  [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
  [i915#284]: https://gitlab.freedesktop.org/drm/intel/issues/284
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
  [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
  [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
  [i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116
  [i915#315]: https://gitlab.freedesktop.org/drm/intel/issues/315
  [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
  [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
  [i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299
  [i915#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323
  [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
  [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
  [i915#3469]: https://gitlab.freedesktop.org/drm/intel/issues/3469
  [i915#3528]: https://gitlab.freedesktop.org/drm/intel/issues/3528
  [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
  [i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
  [i915#3547]: https://gitlab.freedesktop.org/drm/intel/issues/3547
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3558]: https://gitlab.freedesktop.org/drm/intel/issues/3558
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
  [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
  [i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
  [i915#3804]: https://gitlab.freedesktop.org/drm/intel/issues/3804
  [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#3936]: https://gitlab.freedesktop.org/drm/intel/issues/3936
  [i915#3952]: https://gitlab.freedesktop.org/drm/intel/issues/3952
  [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
  [i915#4036]: https://gitlab.freedesktop.org/drm/intel/issues/4036
  [i915#404]: https://gitlab.freedesktop.org/drm/intel/issues/404
  [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
  [i915#4387]: https://gitlab.freedesktop.org/drm/intel/issues/4387
  [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
  [i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4767]: https://gitlab.freedesktop.org/drm/intel/issues/4767
  [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
  [i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
  [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
  [i915#4859]: https://gitlab.freedesktop.org/drm/intel/issues/4859
  [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
  [i915#4877]: https://gitlab.freedesktop.org/drm/intel/issues/4877
  [i915#4881]: https://gitlab.freedesktop.org/drm/intel/issues/4881
  [i915#4885]: https://gitlab.freedesktop.org/drm/intel/issues/4885
  [i915#5115]: https://gitlab.freedesktop.org/drm/intel/issues/5115
  [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
  [i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288
  [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
  [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439
  [i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461
  [i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
  [i915#5723]: https://gitlab.freedesktop.org/drm/intel/issues/5723
  [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#6227]: https://gitlab.freedesktop.org/drm/intel/issues/6227
  [i915#6247]: https://gitlab.freedesktop.org/drm/intel/issues/6247
  [i915#6248]: https://gitlab.freedesktop.org/drm/intel/issues/6248
  [i915#6252]: https://gitlab.freedesktop.org/drm/intel/issues/6252
  [i915#6258]: https://gitlab.freedesktop.org/drm/intel/issues/6258
  [i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301
  [i915#6344]: https://gitlab.freedesktop.org/drm/intel/issues/6344
  [i915#6355]: https://gitlab.freedesktop.org/drm/intel/issues/6355
  [i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433
  [i915#6493]: https://gitlab.freedesktop.org/drm/intel/issues/6493
  [i915#6497]: https://gitlab.freedesktop.org/drm/intel/issues/6497
  [i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
  [i915#6590]: https://gitlab.freedesktop.org/drm/intel/issues/6590
  [i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768
  [i915#6944]: https://gitlab.freedesktop.org/drm/intel/issues/6944
  [i915#6946]: https://gitlab.freedesktop.org/drm/intel/issues/6946
  [i915#6953]: https://gitlab.freedesktop.org/drm/intel/issues/6953
  [i915#7052]: https://gitlab.freedesktop.org/drm/intel/issues/7052
  [i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
  [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
  [i915#7128]: https://gitlab.freedesktop.org/drm/intel/issues/7128
  [i915#7178]: https://gitlab.freedesktop.org/drm/intel/issues/7178
  [i915#7294]: https://gitlab.freedesktop.org/drm/intel/issues/7294
  [i915#7330]: https://gitlab.freedesktop.org/drm/intel/issues/7330
  [i915#7443]: https://gitlab.freedesktop.org/drm/intel/issues/7443
  [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
  [i915#7582]: https://gitlab.freedesktop.org/drm/intel/issues/7582
  [i915#7651]: https://gitlab.freedesktop.org/drm/intel/issues/7651
  [i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697
  [i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701
  [i915#7707]: https://gitlab.freedesktop.org/drm/intel/issues/7707
  [i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
  [i915#7742]: https://gitlab.freedesktop.org/drm/intel/issues/7742
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#7949]: https://gitlab.freedesktop.org/drm/intel/issues/7949
  [i915#7957]: https://gitlab.freedesktop.org/drm/intel/issues/7957
  [i915#7984]: https://gitlab.freedesktop.org/drm/intel/issues/7984


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_7143 -> IGTPW_8433

  CI-20190529: 20190529
  CI_DRM_12681: 8ee2ec597aa4b8331124bf852432c2ca2fd7b8d1 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8433: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/index.html
  IGT_7143: c7b12dcc460fc2348e1fa7f4dcb791bb82e29e44 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8433/index.html

[-- Attachment #2: Type: text/html, Size: 13928 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v2 0/6] Enable VDSC output formats validation
  2023-02-02 10:52 ` [igt-dev] [PATCH i-g-t v2 0/6] Enable VDSC output formats validation Hogander, Jouni
@ 2023-02-03 10:53   ` Swati Sharma
  0 siblings, 0 replies; 15+ messages in thread
From: Swati Sharma @ 2023-02-03 10:53 UTC (permalink / raw)
  To: Hogander, Jouni, igt-dev

Thanks for the review. Pushed 4/6 patches.

On 02-Feb-23 4:22 PM, Hogander, Jouni wrote:
> On Thu, 2023-02-02 at 12:51 +0530, Swati Sharma wrote:
>> This series is split from
>> https://patchwork.freedesktop.org/series/111342/
>>
>> Initial dsc lib related changes got merged. Received review
>> comments on driver debugfs YCBCR420 changes, to make debugfs
>> entry generic so that all supported output formats can be
>> validated.
>>
>> In this series, review comments from above PW are addressed.
>> Along, with that changes are done to make test generic to
>> validate all supported dsc formats.
> 
> For the whole set:
> 
> Reviewed-by: Jouni Högander <jouni.hogander@intel.com>
> 
>>
>> Swati Sharma (6):
>>    lib/dsc: Fix return value
>>    tests/i915/kms_dsc: Add plane_format as struct data_t member
>>    tests/i915/kms_dsc: Remove pointless struct
>>    tests/i915/kms_dsc: Make bpc_list static
>>    lib/dsc: Add helpers for VDSC output format debugfs entry
>>    tests/i915/kms_dsc: Enable validation for VDSC output formats
>>
>>   lib/igt_dsc.c               |  56 +++++++++++++++-
>>   lib/igt_dsc.h               |   5 ++
>>   lib/igt_kms.c               |  18 +++++
>>   lib/igt_kms.h               |   7 ++
>>   tests/i915/kms_dsc.c        | 128 ++++++++++++++++++++++++++--------
>> --
>>   tests/i915/kms_dsc_helper.c |  40 ++++++++++-
>>   tests/i915/kms_dsc_helper.h |   4 ++
>>   7 files changed, 218 insertions(+), 40 deletions(-)
>>
> 

-- 
~Swati Sharma

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v2 3/6] tests/i915/kms_dsc: Remove pointless struct
  2023-02-02  7:21 ` [igt-dev] [PATCH i-g-t v2 3/6] tests/i915/kms_dsc: Remove pointless struct Swati Sharma
@ 2023-02-03 12:29   ` Kamil Konieczny
  2023-02-03 13:26     ` Swati Sharma
  0 siblings, 1 reply; 15+ messages in thread
From: Kamil Konieczny @ 2023-02-03 12:29 UTC (permalink / raw)
  To: igt-dev

Hi Swati,

On 2023-02-02 at 12:51:18 +0530, Swati Sharma wrote:
> Array can be used for plane_format. Use that and remove
> struct.
> 
> v2: -make format list static (Jouni)

Please use checkpatch script from Linux kernel source to find out
and correct some problems. You can sometimes ignore some warnings
like line too long or string splitted but please correct all
others.

+cc Jouni

> 
> Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
> ---
>  tests/i915/kms_dsc.c | 15 +++------------
>  1 file changed, 3 insertions(+), 12 deletions(-)
> 
> diff --git a/tests/i915/kms_dsc.c b/tests/i915/kms_dsc.c
> index af9466518..0f048e575 100644
> --- a/tests/i915/kms_dsc.c
> +++ b/tests/i915/kms_dsc.c
> @@ -52,16 +52,7 @@ typedef struct {
>  	enum pipe pipe;
>  } data_t;
>  
> -const struct {
> -	const int format;
> -	const char format_str[20];
> -} format_list[] = {
> -	{DRM_FORMAT_XYUV8888, "XYUV8888"},
> -	{DRM_FORMAT_XRGB2101010, "XRGB2101010"},
> -	{DRM_FORMAT_XRGB16161616F, "XRGB16161616F"},
> -	{DRM_FORMAT_YUYV, "YUYV"},
> -};
> -
> +static int format_list[] =  {DRM_FORMAT_XYUV8888, DRM_FORMAT_XRGB2101010, DRM_FORMAT_XRGB16161616F, DRM_FORMAT_YUYV};
---------------------------- ^^ ^
imho this should be:
static int format_list[] = {
	DRM_FORMAT_XYUV8888,
	DRM_FORMAT_XRGB2101010,
	DRM_FORMAT_XRGB16161616F,
	DRM_FORMAT_YUYV
};

Regards,
Kamil

>  uint32_t bpc_list[] = {12, 10, 8};
>  
>  static inline void manual(const char *expected)
> @@ -242,7 +233,7 @@ igt_main
>  		     "with default parameters and creating fb with diff formats");
>  	igt_subtest_with_dynamic("dsc-with-formats") {
>  		for (int k = 0; k < ARRAY_SIZE(format_list); k++)
> -			test_dsc(&data, TEST_DSC_BASIC, 0, format_list[k].format);
> +			test_dsc(&data, TEST_DSC_BASIC, 0, format_list[k]);
>  	}
>  
>  	igt_describe("Tests basic display stream compression functionality if supported "
> @@ -259,7 +250,7 @@ igt_main
>  	igt_subtest_with_dynamic("dsc-with-bpc-formats") {
>  		for (int j = 0; j < ARRAY_SIZE(bpc_list); j++) {
>  			for (int k = 0; k < ARRAY_SIZE(format_list); k++) {
> -				test_dsc(&data, TEST_DSC_BPC, bpc_list[j], format_list[k].format);
> +				test_dsc(&data, TEST_DSC_BPC, bpc_list[j], format_list[k]);
>  			}
>  		}
>  	}
> -- 
> 2.25.1
> 

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v2 5/6] lib/dsc: Add helpers for VDSC output format debugfs entry
  2023-02-02  7:21 ` [igt-dev] [PATCH i-g-t v2 5/6] lib/dsc: Add helpers for VDSC output format debugfs entry Swati Sharma
@ 2023-02-03 12:39   ` Kamil Konieczny
  2023-02-03 13:28     ` Swati Sharma
  0 siblings, 1 reply; 15+ messages in thread
From: Kamil Konieczny @ 2023-02-03 12:39 UTC (permalink / raw)
  To: igt-dev

Hi Swati,

On 2023-02-02 at 12:51:20 +0530, Swati Sharma wrote:
> Helper functions are added for VDSC output format debugfs entry.
> 
> Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
> ---
>  lib/igt_dsc.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
>  lib/igt_dsc.h |  5 +++++
>  lib/igt_kms.h |  6 ++++++
>  3 files changed, 60 insertions(+)
> 
> diff --git a/lib/igt_dsc.c b/lib/igt_dsc.c
> index 64dd6b29a..1f6d33291 100644
> --- a/lib/igt_dsc.c
> +++ b/lib/igt_dsc.c
> @@ -134,3 +134,52 @@ int igt_get_dsc_debugfs_fd(int drmfd, char *connector_name)
>  
>  	return openat(igt_debugfs_dir(drmfd), file_name, O_WRONLY);
>  }
> +
> +/*
--- ^
Descriptions should start with two stars, so it should look like:

/**
 * igt_is_dsc_output_format_supported_by_sink:

> + * igt_is_dsc_output_format_supported_by_sink:
> + * @drmfd: A drm file descriptor
> + * @connector_name: Name of the libdrm connector we're going to use
> + * @output_format: Output format
> + *
> + * Returns: True if DSC output format is supported for the given connector,
> + * false otherwise.
> + */
> +bool igt_is_dsc_output_format_supported_by_sink(int drmfd, char *connector_name,
> +						enum dsc_output_format output_format)
> +{
> +	const char *check_str = "OUTPUTFORMATNOTFOUND";
> +
> +	switch(output_format) {
--------------^
Put space after "switch" and before opening "(":
	switch (output_format) {

Please use checkpatch script from Linux kernel sources, it can help
you catch such errors.

> +	case DSC_FORMAT_RGB:
> +		check_str = "RGB: yes";
> +		break;
> +	case DSC_FORMAT_YCBCR420:
> +		check_str = "YCBCR420: yes";
> +		break;
> +	case DSC_FORMAT_YCBCR444:
> +		check_str = "YCBCR444: yes";
> +		break;
> +	default:
> +		break;
> +	}
> +
> +	return check_dsc_debugfs(drmfd, connector_name, check_str);
> +}
> +
> +/*
--- ^
Same here, two stars.

Regards,
Kamil

> + * igt_force_dsc_output_format:
> + * @drmfd: A drm file descriptor
> + * @connector_name: Name of the libdrm connector we're going to use
> + * @output_format: Output format
> + *
> + * Returns: 0 on success or negative error code, in case of failure.
> + */
> +int igt_force_dsc_output_format(int drmfd, char *connector_name,
> +				enum dsc_output_format output_format)
> +{
> +	char buf[20] = {0};
> +
> +	sprintf(buf, "%d", output_format);
> +
> +	return write_dsc_debugfs(drmfd, connector_name, "i915_dsc_output_format", buf);
> +}
> diff --git a/lib/igt_dsc.h b/lib/igt_dsc.h
> index 291c2cdea..9608aad44 100644
> --- a/lib/igt_dsc.h
> +++ b/lib/igt_dsc.h
> @@ -7,6 +7,7 @@
>  #define IGT_DSC_H
>  
>  #include "igt_fb.h"
> +#include "igt_kms.h"
>  
>  bool igt_is_dsc_supported(int drmfd, char *connector_name);
>  bool igt_is_fec_supported(int drmfd, char *connector_name);
> @@ -15,5 +16,9 @@ bool igt_is_force_dsc_enabled(int drmfd, char *connector_name);
>  int igt_force_dsc_enable(int drmfd, char *connector_name);
>  int igt_force_dsc_enable_bpc(int drmfd, char *connector_name, int bpc);
>  int igt_get_dsc_debugfs_fd(int drmfd, char *connector_name);
> +bool igt_is_dsc_output_format_supported_by_sink(int drmfd, char *connector_name,
> +						enum dsc_output_format output_format);
> +int igt_force_dsc_output_format(int drmfd, char *connector_name,
> +				enum dsc_output_format output_format);
>  
>  #endif
> diff --git a/lib/igt_kms.h b/lib/igt_kms.h
> index be5482e08..9f5bef170 100644
> --- a/lib/igt_kms.h
> +++ b/lib/igt_kms.h
> @@ -106,6 +106,12 @@ enum igt_custom_edid_type {
>   */
>  #define kmstest_port_name(port) ((port) + 'A')
>  
> +enum dsc_output_format {
> +	DSC_FORMAT_RGB = 0,
> +	DSC_FORMAT_YCBCR420,
> +	DSC_FORMAT_YCBCR444
> +};
> +
>  const char *kmstest_encoder_type_str(int type);
>  const char *kmstest_connector_status_str(int status);
>  const char *kmstest_connector_type_str(int type);
> -- 
> 2.25.1
> 

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v2 3/6] tests/i915/kms_dsc: Remove pointless struct
  2023-02-03 12:29   ` Kamil Konieczny
@ 2023-02-03 13:26     ` Swati Sharma
  0 siblings, 0 replies; 15+ messages in thread
From: Swati Sharma @ 2023-02-03 13:26 UTC (permalink / raw)
  To: Kamil Konieczny, igt-dev, Jouni Högander

Hi Kamil,

Can we add checkpatch for patchwork IGT in CI infrastructure like how we 
have for patchwork intel-gfx?

On 03-Feb-23 5:59 PM, Kamil Konieczny wrote:
> Hi Swati,
> 
> On 2023-02-02 at 12:51:18 +0530, Swati Sharma wrote:
>> Array can be used for plane_format. Use that and remove
>> struct.
>>
>> v2: -make format list static (Jouni)
> 
> Please use checkpatch script from Linux kernel source to find out
> and correct some problems. You can sometimes ignore some warnings
> like line too long or string splitted but please correct all
> others.
> 
> +cc Jouni

Sorry, this patch is already merged; will take care next time.

> 
>>
>> Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
>> ---
>>   tests/i915/kms_dsc.c | 15 +++------------
>>   1 file changed, 3 insertions(+), 12 deletions(-)
>>
>> diff --git a/tests/i915/kms_dsc.c b/tests/i915/kms_dsc.c
>> index af9466518..0f048e575 100644
>> --- a/tests/i915/kms_dsc.c
>> +++ b/tests/i915/kms_dsc.c
>> @@ -52,16 +52,7 @@ typedef struct {
>>   	enum pipe pipe;
>>   } data_t;
>>   
>> -const struct {
>> -	const int format;
>> -	const char format_str[20];
>> -} format_list[] = {
>> -	{DRM_FORMAT_XYUV8888, "XYUV8888"},
>> -	{DRM_FORMAT_XRGB2101010, "XRGB2101010"},
>> -	{DRM_FORMAT_XRGB16161616F, "XRGB16161616F"},
>> -	{DRM_FORMAT_YUYV, "YUYV"},
>> -};
>> -
>> +static int format_list[] =  {DRM_FORMAT_XYUV8888, DRM_FORMAT_XRGB2101010, DRM_FORMAT_XRGB16161616F, DRM_FORMAT_YUYV};
> ---------------------------- ^^ ^
> imho this should be:
> static int format_list[] = {
> 	DRM_FORMAT_XYUV8888,
> 	DRM_FORMAT_XRGB2101010,
> 	DRM_FORMAT_XRGB16161616F,
> 	DRM_FORMAT_YUYV
> };
> 
> Regards,
> Kamil
> 
>>   uint32_t bpc_list[] = {12, 10, 8};
>>   
>>   static inline void manual(const char *expected)
>> @@ -242,7 +233,7 @@ igt_main
>>   		     "with default parameters and creating fb with diff formats");
>>   	igt_subtest_with_dynamic("dsc-with-formats") {
>>   		for (int k = 0; k < ARRAY_SIZE(format_list); k++)
>> -			test_dsc(&data, TEST_DSC_BASIC, 0, format_list[k].format);
>> +			test_dsc(&data, TEST_DSC_BASIC, 0, format_list[k]);
>>   	}
>>   
>>   	igt_describe("Tests basic display stream compression functionality if supported "
>> @@ -259,7 +250,7 @@ igt_main
>>   	igt_subtest_with_dynamic("dsc-with-bpc-formats") {
>>   		for (int j = 0; j < ARRAY_SIZE(bpc_list); j++) {
>>   			for (int k = 0; k < ARRAY_SIZE(format_list); k++) {
>> -				test_dsc(&data, TEST_DSC_BPC, bpc_list[j], format_list[k].format);
>> +				test_dsc(&data, TEST_DSC_BPC, bpc_list[j], format_list[k]);
>>   			}
>>   		}
>>   	}
>> -- 
>> 2.25.1
>>

-- 
~Swati Sharma

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v2 5/6] lib/dsc: Add helpers for VDSC output format debugfs entry
  2023-02-03 12:39   ` Kamil Konieczny
@ 2023-02-03 13:28     ` Swati Sharma
  0 siblings, 0 replies; 15+ messages in thread
From: Swati Sharma @ 2023-02-03 13:28 UTC (permalink / raw)
  To: Kamil Konieczny, igt-dev

Hi Kamil,

Will address your review comments in next version.

On 03-Feb-23 6:09 PM, Kamil Konieczny wrote:
> Hi Swati,
> 
> On 2023-02-02 at 12:51:20 +0530, Swati Sharma wrote:
>> Helper functions are added for VDSC output format debugfs entry.
>>
>> Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
>> ---
>>   lib/igt_dsc.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
>>   lib/igt_dsc.h |  5 +++++
>>   lib/igt_kms.h |  6 ++++++
>>   3 files changed, 60 insertions(+)
>>
>> diff --git a/lib/igt_dsc.c b/lib/igt_dsc.c
>> index 64dd6b29a..1f6d33291 100644
>> --- a/lib/igt_dsc.c
>> +++ b/lib/igt_dsc.c
>> @@ -134,3 +134,52 @@ int igt_get_dsc_debugfs_fd(int drmfd, char *connector_name)
>>   
>>   	return openat(igt_debugfs_dir(drmfd), file_name, O_WRONLY);
>>   }
>> +
>> +/*
> --- ^
> Descriptions should start with two stars, so it should look like:
> 
> /**
>   * igt_is_dsc_output_format_supported_by_sink:
> 
>> + * igt_is_dsc_output_format_supported_by_sink:
>> + * @drmfd: A drm file descriptor
>> + * @connector_name: Name of the libdrm connector we're going to use
>> + * @output_format: Output format
>> + *
>> + * Returns: True if DSC output format is supported for the given connector,
>> + * false otherwise.
>> + */
>> +bool igt_is_dsc_output_format_supported_by_sink(int drmfd, char *connector_name,
>> +						enum dsc_output_format output_format)
>> +{
>> +	const char *check_str = "OUTPUTFORMATNOTFOUND";
>> +
>> +	switch(output_format) {
> --------------^
> Put space after "switch" and before opening "(":
> 	switch (output_format) {
> 
> Please use checkpatch script from Linux kernel sources, it can help
> you catch such errors.
> 
>> +	case DSC_FORMAT_RGB:
>> +		check_str = "RGB: yes";
>> +		break;
>> +	case DSC_FORMAT_YCBCR420:
>> +		check_str = "YCBCR420: yes";
>> +		break;
>> +	case DSC_FORMAT_YCBCR444:
>> +		check_str = "YCBCR444: yes";
>> +		break;
>> +	default:
>> +		break;
>> +	}
>> +
>> +	return check_dsc_debugfs(drmfd, connector_name, check_str);
>> +}
>> +
>> +/*
> --- ^
> Same here, two stars.
> 
> Regards,
> Kamil
> 
>> + * igt_force_dsc_output_format:
>> + * @drmfd: A drm file descriptor
>> + * @connector_name: Name of the libdrm connector we're going to use
>> + * @output_format: Output format
>> + *
>> + * Returns: 0 on success or negative error code, in case of failure.
>> + */
>> +int igt_force_dsc_output_format(int drmfd, char *connector_name,
>> +				enum dsc_output_format output_format)
>> +{
>> +	char buf[20] = {0};
>> +
>> +	sprintf(buf, "%d", output_format);
>> +
>> +	return write_dsc_debugfs(drmfd, connector_name, "i915_dsc_output_format", buf);
>> +}
>> diff --git a/lib/igt_dsc.h b/lib/igt_dsc.h
>> index 291c2cdea..9608aad44 100644
>> --- a/lib/igt_dsc.h
>> +++ b/lib/igt_dsc.h
>> @@ -7,6 +7,7 @@
>>   #define IGT_DSC_H
>>   
>>   #include "igt_fb.h"
>> +#include "igt_kms.h"
>>   
>>   bool igt_is_dsc_supported(int drmfd, char *connector_name);
>>   bool igt_is_fec_supported(int drmfd, char *connector_name);
>> @@ -15,5 +16,9 @@ bool igt_is_force_dsc_enabled(int drmfd, char *connector_name);
>>   int igt_force_dsc_enable(int drmfd, char *connector_name);
>>   int igt_force_dsc_enable_bpc(int drmfd, char *connector_name, int bpc);
>>   int igt_get_dsc_debugfs_fd(int drmfd, char *connector_name);
>> +bool igt_is_dsc_output_format_supported_by_sink(int drmfd, char *connector_name,
>> +						enum dsc_output_format output_format);
>> +int igt_force_dsc_output_format(int drmfd, char *connector_name,
>> +				enum dsc_output_format output_format);
>>   
>>   #endif
>> diff --git a/lib/igt_kms.h b/lib/igt_kms.h
>> index be5482e08..9f5bef170 100644
>> --- a/lib/igt_kms.h
>> +++ b/lib/igt_kms.h
>> @@ -106,6 +106,12 @@ enum igt_custom_edid_type {
>>    */
>>   #define kmstest_port_name(port) ((port) + 'A')
>>   
>> +enum dsc_output_format {
>> +	DSC_FORMAT_RGB = 0,
>> +	DSC_FORMAT_YCBCR420,
>> +	DSC_FORMAT_YCBCR444
>> +};
>> +
>>   const char *kmstest_encoder_type_str(int type);
>>   const char *kmstest_connector_status_str(int status);
>>   const char *kmstest_connector_type_str(int type);
>> -- 
>> 2.25.1
>>

-- 
~Swati Sharma

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2023-02-03 13:28 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-02  7:21 [igt-dev] [PATCH i-g-t v2 0/6] Enable VDSC output formats validation Swati Sharma
2023-02-02  7:21 ` [igt-dev] [PATCH i-g-t v2 1/6] lib/dsc: Fix return value Swati Sharma
2023-02-02  7:21 ` [igt-dev] [PATCH i-g-t v2 2/6] tests/i915/kms_dsc: Add plane_format as struct data_t member Swati Sharma
2023-02-02  7:21 ` [igt-dev] [PATCH i-g-t v2 3/6] tests/i915/kms_dsc: Remove pointless struct Swati Sharma
2023-02-03 12:29   ` Kamil Konieczny
2023-02-03 13:26     ` Swati Sharma
2023-02-02  7:21 ` [igt-dev] [PATCH i-g-t v2 4/6] tests/i915/kms_dsc: Make bpc_list static Swati Sharma
2023-02-02  7:21 ` [igt-dev] [PATCH i-g-t v2 5/6] lib/dsc: Add helpers for VDSC output format debugfs entry Swati Sharma
2023-02-03 12:39   ` Kamil Konieczny
2023-02-03 13:28     ` Swati Sharma
2023-02-02  7:21 ` [igt-dev] [PATCH i-g-t v2 6/6] tests/i915/kms_dsc: Enable validation for VDSC output formats Swati Sharma
2023-02-02  7:48 ` [igt-dev] ✓ Fi.CI.BAT: success for Enable VDSC output formats validation (rev2) Patchwork
2023-02-02 10:52 ` [igt-dev] [PATCH i-g-t v2 0/6] Enable VDSC output formats validation Hogander, Jouni
2023-02-03 10:53   ` Swati Sharma
2023-02-02 16:00 ` [igt-dev] ✓ Fi.CI.IGT: success for Enable VDSC output formats validation (rev2) Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.