All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH 0/2] Add Colorspace tests to kms_hdr
@ 2022-12-12 19:24 Harry Wentland
  2022-12-12 19:24 ` [igt-dev] [PATCH 1/2] tests/kms_hdr: Add test for output Colorspace Harry Wentland
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Harry Wentland @ 2022-12-12 19:24 UTC (permalink / raw)
  To: igt-dev; +Cc: Sebastian Wick, Pekka Paalanen, Joshua Ashton

We've had a Colorspace property on the drm_connector
but no IGT tests. These patches add IGT tests for this
property. They're currently only enabled on amdgpu with
the kernel at [1] but could be enabled for other drivers
if those drivers decide to expose a debugfs to read the
currently applied colorspace.

[1] https://gitlab.freedesktop.org/hwentland/linux/-/tree/hdr-colorimetry

Cc: Pekka Paalanen <ppaalanen@gmail.com>
Cc: Sebastian Wick <sebastian.wick@redhat.com>
Cc: Vitaly.Prosyak@amd.com
Cc: Uma Shankar <uma.shankar@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Joshua Ashton <joshua@froggi.es>
Cc: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Cc: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Cc: Alex Hung <Alex.Hung@amd.com>

Harry Wentland (2):
  tests/kms_hdr: Add test for output Colorspace
  tests/kms_hdr: Add suspend and DPMS Colorspace tests

 lib/igt_kms.c   |  51 ++++++++++++++++
 lib/igt_kms.h   |   6 ++
 tests/kms_hdr.c | 156 ++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 213 insertions(+)

--
2.38.1

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

* [igt-dev] [PATCH 1/2] tests/kms_hdr: Add test for output Colorspace
  2022-12-12 19:24 [igt-dev] [PATCH 0/2] Add Colorspace tests to kms_hdr Harry Wentland
@ 2022-12-12 19:24 ` Harry Wentland
  2022-12-13 11:39   ` Pekka Paalanen
  2022-12-12 19:24 ` [igt-dev] [PATCH 2/2] tests/kms_hdr: Add suspend and DPMS Colorspace tests Harry Wentland
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 9+ messages in thread
From: Harry Wentland @ 2022-12-12 19:24 UTC (permalink / raw)
  To: igt-dev; +Cc: Sebastian Wick, Pekka Paalanen, Joshua Ashton

The drm_connector Colorspace property needs a test.
This adds a Colorspace switch test, similar to the
bpc switch.

Currently this will only work on amdgpu. Other drivers
will need to provide a debugfs to readback the currently
set Colorspace in order to pass the test.

Signed-off-by: Harry Wentland <harry.wentland@amd.com>
Cc: Pekka Paalanen <ppaalanen@gmail.com>
Cc: Sebastian Wick <sebastian.wick@redhat.com>
Cc: Vitaly.Prosyak@amd.com
Cc: Uma Shankar <uma.shankar@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Joshua Ashton <joshua@froggi.es>
Cc: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Cc: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Cc: Alex Hung <Alex.Hung@amd.com>
---
 lib/igt_kms.c   |  51 +++++++++++++++++
 lib/igt_kms.h   |   6 ++
 tests/kms_hdr.c | 143 ++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 200 insertions(+)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index b4a98ae176e1..15fe49b3f55c 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -640,6 +640,7 @@ const char * const igt_connector_prop_names[IGT_NUM_CONNECTOR_PROPS] = {
 	[IGT_CONNECTOR_LINK_STATUS] = "link-status",
 	[IGT_CONNECTOR_MAX_BPC] = "max bpc",
 	[IGT_CONNECTOR_HDR_OUTPUT_METADATA] = "HDR_OUTPUT_METADATA",
+	[IGT_CONNECTOR_COLORSPACE] = "Colorspace",
 	[IGT_CONNECTOR_WRITEBACK_PIXEL_FORMATS] = "WRITEBACK_PIXEL_FORMATS",
 	[IGT_CONNECTOR_WRITEBACK_FB_ID] = "WRITEBACK_FB_ID",
 	[IGT_CONNECTOR_WRITEBACK_OUT_FENCE_PTR] = "WRITEBACK_OUT_FENCE_PTR",
@@ -2272,6 +2273,10 @@ static void igt_output_reset(igt_output_t *output)
 		igt_output_set_prop_value(output,
 					  IGT_CONNECTOR_HDR_OUTPUT_METADATA, 0);
 
+	if (igt_output_has_prop(output, IGT_CONNECTOR_COLORSPACE))
+		igt_output_set_prop_enum(output,
+					  IGT_CONNECTOR_COLORSPACE, "Default");
+
 	if (igt_output_has_prop(output, IGT_CONNECTOR_WRITEBACK_FB_ID))
 		igt_output_set_prop_value(output, IGT_CONNECTOR_WRITEBACK_FB_ID, 0);
 	if (igt_output_has_prop(output, IGT_CONNECTOR_WRITEBACK_OUT_FENCE_PTR)) {
@@ -2296,6 +2301,7 @@ static void igt_output_reset(igt_output_t *output)
  * - %IGT_CONNECTOR_BROADCAST_RGB (if applicable)
  *   %IGT_CONNECTOR_CONTENT_PROTECTION (if applicable)
  *   %IGT_CONNECTOR_HDR_OUTPUT_METADATA (if applicable)
+ *   %IGT_CONNECTOR_COLORSPACE (if applicable)
  * - %IGT_CONNECTOR_DITHERING_MODE (if applicable)
  * - igt_output_override_mode() to default.
  *
@@ -5801,6 +5807,51 @@ bool igt_check_output_bpc_equal(int drmfd, enum pipe pipe,
 	return (current == bpc);
 }
 
+
+/*
+ * igt_get_pipe_current_colorspace:
+ * @drmfd: A drm file descriptor
+ * @pipe: Display pipe
+ *
+ * Returns: The current colorspace from the crtc debugfs.
+ */
+void igt_get_pipe_current_colorspace(int drmfd, enum pipe pipe,
+				     char *colorspace, int size)
+{
+	char debugfs_name[30];
+	int fd, res;
+
+	fd = igt_debugfs_pipe_dir(drmfd, pipe, O_RDONLY);
+	igt_assert(fd >= 0);
+
+	/* TODO add support for other drivers */
+	if (is_amdgpu_device(drmfd))
+		strcpy(debugfs_name, "amdgpu_current_colorspace");
+
+	res = igt_debugfs_simple_read(fd, debugfs_name, colorspace, size);
+	igt_require(res > 0);
+
+	close(fd);
+}
+
+/*
+ * igt_assert_output_bpc_equal:
+ * @drmfd: A drm file descriptor
+ * @pipe: Display pipe
+ * @output_name: Name of the libdrm connector we're going to use
+ * @bpc: BPC to compare with max & current bpc
+ *
+ * Assert if crtc's current bpc is not matched with the requested one.
+ */
+void igt_assert_output_colorspace_equal(int drmfd, enum pipe pipe,
+					const char *colorspace)
+{
+	char buf[35];
+
+	igt_get_pipe_current_colorspace(drmfd, pipe, buf, sizeof(buf));
+	igt_assert(strcmp(colorspace, buf) == 0);
+}
+
 /*
  * igt_max_bpc_constraint
  * @display: a pointer to an #igt_display_t structure
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index 7a00d204545e..136292929fab 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -152,6 +152,7 @@ enum igt_atomic_connector_properties {
        IGT_CONNECTOR_LINK_STATUS,
        IGT_CONNECTOR_MAX_BPC,
        IGT_CONNECTOR_HDR_OUTPUT_METADATA,
+       IGT_CONNECTOR_COLORSPACE,
        IGT_CONNECTOR_WRITEBACK_PIXEL_FORMATS,
        IGT_CONNECTOR_WRITEBACK_FB_ID,
        IGT_CONNECTOR_WRITEBACK_OUT_FENCE_PTR,
@@ -991,6 +992,11 @@ void igt_assert_output_bpc_equal(int drmfd, enum pipe pipe,
 bool igt_check_output_bpc_equal(int drmfd, enum pipe pipe,
 				char *output_name, unsigned int bpc);
 
+void igt_get_pipe_current_colorspace(int drmfd, enum pipe pipe,
+				     char *colorspace, int size);
+void igt_assert_output_colorspace_equal(int drmfd, enum pipe pipe,
+					const char *colorspace);
+
 int sort_drm_modes_by_clk_dsc(const void *a, const void *b);
 int sort_drm_modes_by_clk_asc(const void *a, const void *b);
 int sort_drm_modes_by_res_dsc(const void *a, const void *b);
diff --git a/tests/kms_hdr.c b/tests/kms_hdr.c
index 655c3e14f7ef..b656dc7a7ed5 100644
--- a/tests/kms_hdr.c
+++ b/tests/kms_hdr.c
@@ -244,6 +244,145 @@ static void test_bpc_switch(data_t *data, uint32_t flags)
 	}
 }
 
+/*
+ * List of all DP and HDMI colorspaces from drm_connector.c
+ *
+ * We purposely omit "Default" since driver behavior varies
+ * and there is no good way to test for it.
+ */
+static const char *colorspaces[] = {
+	/* Standard Definition Colorimetry based on CEA 861 */
+	"SMPTE_170M_YCC",
+	"BT709_YCC",
+	/* Standard Definition Colorimetry based on IEC 61966-2-4 */
+	"XVYCC_601",
+	/* High Definition Colorimetry based on IEC 61966-2-4 */
+	"XVYCC_709",
+	/* Colorimetry based on IEC 61966-2-1/Amendment 1 */
+	"SYCC_601",
+	/* Colorimetry based on IEC 61966-2-5 [33] */
+	"opYCC_601",
+	/* Colorimetry based on IEC 61966-2-5 */
+	"opRGB",
+	/* Colorimetry based on ITU-R BT.2020 */
+	"BT2020_CYCC",
+	/* Colorimetry based on ITU-R BT.2020 */
+	"BT2020_RGB",
+	/* Colorimetry based on ITU-R BT.2020 */
+	"BT2020_YCC",
+	/* Added as part of Additional Colorimetry Extension in 861.G */
+	"DCI-P3_RGB_D65",
+	"DCI-P3_RGB_Theater",
+	/* For Default case, driver will set the colorspace */
+	"RGB_Wide_Gamut_Fixed_Point",
+	/* Colorimetry based on scRGB (IEC 61966-2-2) */
+	"RGB_Wide_Gamut_Floating_Point",
+	"BT601_YCC",
+	NULL
+};
+
+/* Prints the colorspace name on the framebuffer */
+static void draw_colorspace(igt_fb_t *fb, const char* colorspace)
+{
+	cairo_t *cr = igt_get_cairo_ctx(fb->fd, fb);
+
+	igt_paint_color(cr, 0, 0, fb->width, 50, 1.0, 1.0, 1.0);
+	cairo_move_to(cr, fb->width / 2, 20);
+	cairo_set_font_size(cr, 12);
+	igt_cairo_printf_line(cr, align_hcenter, 0, "%s", colorspace);
+
+	igt_put_cairo_ctx(cr);
+}
+
+
+static void test_colorspace_switch_on_output(data_t *data, enum pipe pipe,
+				      igt_output_t *output,
+				      uint32_t flags)
+{
+	igt_display_t *display = &data->display;
+	// igt_crc_t ref_crc, new_crc;
+	igt_fb_t afb;
+	int afb_id, ret;
+
+	/* 10-bit formats are slow, so limit the size. */
+	afb_id = igt_create_fb(data->fd, 512, 512, DRM_FORMAT_XRGB2101010, 0, &afb);
+	igt_assert(afb_id);
+
+	draw_hdr_pattern(&afb);
+
+	/* Plane may be required to fit fullscreen. Check it here and allow
+	 * smaller plane size in following tests.
+	 */
+	igt_plane_set_fb(data->primary, &afb);
+	igt_plane_set_size(data->primary, data->w, data->h);
+	ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_TEST_ONLY, NULL);
+	if (!ret) {
+		data->w = afb.width;
+		data->h = afb.height;
+	}
+
+	/* require Colorspace prop */
+	igt_require(igt_output_has_prop(output, IGT_CONNECTOR_COLORSPACE));
+
+	/* Get enum values for colorspace */
+	/* for each value set colorspace */
+	for (int i = 0; colorspaces[i]; i++) {
+		if (igt_output_try_prop_enum(output, IGT_CONNECTOR_COLORSPACE, colorspaces[i])) {
+			igt_info("Testing colorspace %s on %s\n",
+				 colorspaces[i],
+				 igt_output_name(output));
+			draw_colorspace(&afb, colorspaces[i]);
+			igt_output_set_prop_enum(output, IGT_CONNECTOR_COLORSPACE, colorspaces[i]);
+			igt_display_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
+			/* get and check current colorspace */
+			igt_assert_output_colorspace_equal(data->fd, pipe, colorspaces[i]);
+		}
+	}
+
+	igt_info("Testing bad colorspace on %s\n",
+			igt_output_name(output));
+	draw_colorspace(&afb, "bad");
+	igt_require(!igt_output_try_prop_enum(output, IGT_CONNECTOR_COLORSPACE, "bad"));
+
+	/* revert back to "Default" */
+	igt_info("Testing colorspace %s on %s\n",
+			"Default",
+			igt_output_name(output));
+	draw_colorspace(&afb, "Default");
+	igt_output_set_prop_enum(output, IGT_CONNECTOR_COLORSPACE, "Default");
+	igt_display_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
+
+	test_fini(data);
+	igt_remove_fb(data->fd, &afb);
+}
+
+static void test_colorspace_switch(data_t *data, uint32_t flags)
+{
+	igt_display_t *display = &data->display;
+	igt_output_t *output;
+
+	for_each_connected_output(display, output) {
+		enum pipe pipe;
+
+		for_each_pipe(display, pipe) {
+			if (igt_pipe_connector_valid(pipe, output)) {
+				prepare_test(data, output, pipe);
+
+				data->mode = igt_output_get_mode(output);
+				data->w = data->mode->hdisplay;
+				data->h = data->mode->vdisplay;
+
+				igt_dynamic_f("pipe-%s-%s",
+					      kmstest_pipe_name(pipe), output->name)
+					test_colorspace_switch_on_output(data, pipe, output, flags);
+
+				/* One pipe is enough */
+				break;
+			}
+		}
+	}
+}
+
 static bool cta_block(const char *edid_ext)
 {
 	/*
@@ -599,6 +738,10 @@ igt_main
 	igt_subtest_with_dynamic("bpc-switch-suspend")
 		test_bpc_switch(&data, TEST_SUSPEND);
 
+	igt_describe("Tests switching Colorspace property, .i.e., the display colorimetry");
+	igt_subtest_with_dynamic("colorspace-switch")
+		test_colorspace_switch(&data, TEST_NONE);
+
 	igt_describe("Tests entering and exiting HDR mode");
 	igt_subtest_with_dynamic("static-toggle")
 		test_hdr(&data, TEST_NONE);
-- 
2.38.1

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

* [igt-dev] [PATCH 2/2] tests/kms_hdr: Add suspend and DPMS Colorspace tests
  2022-12-12 19:24 [igt-dev] [PATCH 0/2] Add Colorspace tests to kms_hdr Harry Wentland
  2022-12-12 19:24 ` [igt-dev] [PATCH 1/2] tests/kms_hdr: Add test for output Colorspace Harry Wentland
@ 2022-12-12 19:24 ` Harry Wentland
  2022-12-12 20:28 ` [igt-dev] ✓ Fi.CI.BAT: success for Add Colorspace tests to kms_hdr Patchwork
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Harry Wentland @ 2022-12-12 19:24 UTC (permalink / raw)
  To: igt-dev; +Cc: Sebastian Wick, Pekka Paalanen, Joshua Ashton

These test that Colorspace settings aren't lost over a
DPMS or suspend cycle.

Signed-off-by: Harry Wentland <harry.wentland@amd.com>
Cc: Pekka Paalanen <ppaalanen@gmail.com>
Cc: Sebastian Wick <sebastian.wick@redhat.com>
Cc: Vitaly.Prosyak@amd.com
Cc: Uma Shankar <uma.shankar@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Joshua Ashton <joshua@froggi.es>
Cc: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Cc: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Cc: Alex Hung <Alex.Hung@amd.com>
---
 tests/kms_hdr.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/tests/kms_hdr.c b/tests/kms_hdr.c
index b656dc7a7ed5..1c7c04191df4 100644
--- a/tests/kms_hdr.c
+++ b/tests/kms_hdr.c
@@ -336,6 +336,13 @@ static void test_colorspace_switch_on_output(data_t *data, enum pipe pipe,
 			igt_display_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
 			/* get and check current colorspace */
 			igt_assert_output_colorspace_equal(data->fd, pipe, colorspaces[i]);
+			/* test suspend only once since it's slow */
+			if (flags & TEST_SUSPEND) {
+				test_cycle_flags(data, flags);
+				igt_assert_output_colorspace_equal(data->fd, pipe, colorspaces[i]);
+				break;
+			}
+
 		}
 	}
 
@@ -741,6 +748,12 @@ igt_main
 	igt_describe("Tests switching Colorspace property, .i.e., the display colorimetry");
 	igt_subtest_with_dynamic("colorspace-switch")
 		test_colorspace_switch(&data, TEST_NONE);
+	igt_describe("Tests Colorspace switch with DPMS");
+	igt_subtest_with_dynamic("colorspace-switch-dpms")
+		test_colorspace_switch(&data, TEST_DPMS);
+	igt_describe("Tests Colorspace switch with suspend");
+	igt_subtest_with_dynamic("colorspace-switch-suspend")
+		test_colorspace_switch(&data, TEST_SUSPEND);
 
 	igt_describe("Tests entering and exiting HDR mode");
 	igt_subtest_with_dynamic("static-toggle")
-- 
2.38.1

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

* [igt-dev] ✓ Fi.CI.BAT: success for Add Colorspace tests to kms_hdr
  2022-12-12 19:24 [igt-dev] [PATCH 0/2] Add Colorspace tests to kms_hdr Harry Wentland
  2022-12-12 19:24 ` [igt-dev] [PATCH 1/2] tests/kms_hdr: Add test for output Colorspace Harry Wentland
  2022-12-12 19:24 ` [igt-dev] [PATCH 2/2] tests/kms_hdr: Add suspend and DPMS Colorspace tests Harry Wentland
@ 2022-12-12 20:28 ` Patchwork
  2022-12-13 13:29 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  2022-12-30 20:06 ` [igt-dev] [PATCH 0/2] " Swati Sharma
  4 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2022-12-12 20:28 UTC (permalink / raw)
  To: Harry Wentland; +Cc: igt-dev

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

== Series Details ==

Series: Add Colorspace tests to kms_hdr
URL   : https://patchwork.freedesktop.org/series/111867/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_12497 -> IGTPW_8222
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (18 -> 18)
------------------------------

  Additional (1): fi-pnv-d510 
  Missing    (1): fi-rkl-11600 

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

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

### IGT changes ###

#### Issues hit ####

  * igt@kms_pipe_crc_basic@suspend-read-crc:
    - fi-ivb-3770:        NOTRUN -> [SKIP][1] ([fdo#109271])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/fi-ivb-3770/igt@kms_pipe_crc_basic@suspend-read-crc.html

  * igt@kms_psr@primary_page_flip:
    - fi-pnv-d510:        NOTRUN -> [SKIP][2] ([fdo#109271]) +44 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/fi-pnv-d510/igt@kms_psr@primary_page_flip.html

  
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7091 -> IGTPW_8222

  CI-20190529: 20190529
  CI_DRM_12497: 6636ff92fd32bda3fed63832bc12bf2a9d7c1c33 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8222: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/index.html
  IGT_7091: b8015f920c9f469d3733854263cb878373c1df51 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git


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

+igt@kms_hdr@colorspace-switch
+igt@kms_hdr@colorspace-switch-dpms
+igt@kms_hdr@colorspace-switch-suspend

== Logs ==

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

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

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

* Re: [igt-dev] [PATCH 1/2] tests/kms_hdr: Add test for output Colorspace
  2022-12-12 19:24 ` [igt-dev] [PATCH 1/2] tests/kms_hdr: Add test for output Colorspace Harry Wentland
@ 2022-12-13 11:39   ` Pekka Paalanen
  2022-12-13 15:06     ` Harry Wentland
  0 siblings, 1 reply; 9+ messages in thread
From: Pekka Paalanen @ 2022-12-13 11:39 UTC (permalink / raw)
  To: Harry Wentland; +Cc: Sebastian Wick, igt-dev, Joshua Ashton

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

On Mon, 12 Dec 2022 14:24:24 -0500
Harry Wentland <harry.wentland@amd.com> wrote:

> The drm_connector Colorspace property needs a test.
> This adds a Colorspace switch test, similar to the
> bpc switch.
> 
> Currently this will only work on amdgpu. Other drivers
> will need to provide a debugfs to readback the currently
> set Colorspace in order to pass the test.
> 
> Signed-off-by: Harry Wentland <harry.wentland@amd.com>
> Cc: Pekka Paalanen <ppaalanen@gmail.com>
> Cc: Sebastian Wick <sebastian.wick@redhat.com>
> Cc: Vitaly.Prosyak@amd.com
> Cc: Uma Shankar <uma.shankar@intel.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: Joshua Ashton <joshua@froggi.es>
> Cc: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> Cc: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
> Cc: Alex Hung <Alex.Hung@amd.com>
> ---
>  lib/igt_kms.c   |  51 +++++++++++++++++
>  lib/igt_kms.h   |   6 ++
>  tests/kms_hdr.c | 143 ++++++++++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 200 insertions(+)
> 
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index b4a98ae176e1..15fe49b3f55c 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -640,6 +640,7 @@ const char * const igt_connector_prop_names[IGT_NUM_CONNECTOR_PROPS] = {
>  	[IGT_CONNECTOR_LINK_STATUS] = "link-status",
>  	[IGT_CONNECTOR_MAX_BPC] = "max bpc",
>  	[IGT_CONNECTOR_HDR_OUTPUT_METADATA] = "HDR_OUTPUT_METADATA",
> +	[IGT_CONNECTOR_COLORSPACE] = "Colorspace",
>  	[IGT_CONNECTOR_WRITEBACK_PIXEL_FORMATS] = "WRITEBACK_PIXEL_FORMATS",
>  	[IGT_CONNECTOR_WRITEBACK_FB_ID] = "WRITEBACK_FB_ID",
>  	[IGT_CONNECTOR_WRITEBACK_OUT_FENCE_PTR] = "WRITEBACK_OUT_FENCE_PTR",
> @@ -2272,6 +2273,10 @@ static void igt_output_reset(igt_output_t *output)
>  		igt_output_set_prop_value(output,
>  					  IGT_CONNECTOR_HDR_OUTPUT_METADATA, 0);
>  
> +	if (igt_output_has_prop(output, IGT_CONNECTOR_COLORSPACE))
> +		igt_output_set_prop_enum(output,
> +					  IGT_CONNECTOR_COLORSPACE, "Default");
> +
>  	if (igt_output_has_prop(output, IGT_CONNECTOR_WRITEBACK_FB_ID))
>  		igt_output_set_prop_value(output, IGT_CONNECTOR_WRITEBACK_FB_ID, 0);
>  	if (igt_output_has_prop(output, IGT_CONNECTOR_WRITEBACK_OUT_FENCE_PTR)) {
> @@ -2296,6 +2301,7 @@ static void igt_output_reset(igt_output_t *output)
>   * - %IGT_CONNECTOR_BROADCAST_RGB (if applicable)
>   *   %IGT_CONNECTOR_CONTENT_PROTECTION (if applicable)
>   *   %IGT_CONNECTOR_HDR_OUTPUT_METADATA (if applicable)
> + *   %IGT_CONNECTOR_COLORSPACE (if applicable)
>   * - %IGT_CONNECTOR_DITHERING_MODE (if applicable)
>   * - igt_output_override_mode() to default.
>   *
> @@ -5801,6 +5807,51 @@ bool igt_check_output_bpc_equal(int drmfd, enum pipe pipe,
>  	return (current == bpc);
>  }
>  
> +
> +/*
> + * igt_get_pipe_current_colorspace:
> + * @drmfd: A drm file descriptor
> + * @pipe: Display pipe
> + *
> + * Returns: The current colorspace from the crtc debugfs.
> + */
> +void igt_get_pipe_current_colorspace(int drmfd, enum pipe pipe,
> +				     char *colorspace, int size)
> +{
> +	char debugfs_name[30];
> +	int fd, res;
> +
> +	fd = igt_debugfs_pipe_dir(drmfd, pipe, O_RDONLY);
> +	igt_assert(fd >= 0);
> +
> +	/* TODO add support for other drivers */
> +	if (is_amdgpu_device(drmfd))
> +		strcpy(debugfs_name, "amdgpu_current_colorspace");
> +
> +	res = igt_debugfs_simple_read(fd, debugfs_name, colorspace, size);
> +	igt_require(res > 0);
> +
> +	close(fd);
> +}
> +
> +/*
> + * igt_assert_output_bpc_equal:
> + * @drmfd: A drm file descriptor
> + * @pipe: Display pipe
> + * @output_name: Name of the libdrm connector we're going to use
> + * @bpc: BPC to compare with max & current bpc
> + *
> + * Assert if crtc's current bpc is not matched with the requested one.

Hi,

forgot to rewrite the doc comment.


> + */
> +void igt_assert_output_colorspace_equal(int drmfd, enum pipe pipe,
> +					const char *colorspace)
> +{
> +	char buf[35];
> +
> +	igt_get_pipe_current_colorspace(drmfd, pipe, buf, sizeof(buf));
> +	igt_assert(strcmp(colorspace, buf) == 0);
> +}
> +
>  /*
>   * igt_max_bpc_constraint
>   * @display: a pointer to an #igt_display_t structure
> diff --git a/lib/igt_kms.h b/lib/igt_kms.h
> index 7a00d204545e..136292929fab 100644
> --- a/lib/igt_kms.h
> +++ b/lib/igt_kms.h
> @@ -152,6 +152,7 @@ enum igt_atomic_connector_properties {
>         IGT_CONNECTOR_LINK_STATUS,
>         IGT_CONNECTOR_MAX_BPC,
>         IGT_CONNECTOR_HDR_OUTPUT_METADATA,
> +       IGT_CONNECTOR_COLORSPACE,
>         IGT_CONNECTOR_WRITEBACK_PIXEL_FORMATS,
>         IGT_CONNECTOR_WRITEBACK_FB_ID,
>         IGT_CONNECTOR_WRITEBACK_OUT_FENCE_PTR,
> @@ -991,6 +992,11 @@ void igt_assert_output_bpc_equal(int drmfd, enum pipe pipe,
>  bool igt_check_output_bpc_equal(int drmfd, enum pipe pipe,
>  				char *output_name, unsigned int bpc);
>  
> +void igt_get_pipe_current_colorspace(int drmfd, enum pipe pipe,
> +				     char *colorspace, int size);
> +void igt_assert_output_colorspace_equal(int drmfd, enum pipe pipe,
> +					const char *colorspace);
> +
>  int sort_drm_modes_by_clk_dsc(const void *a, const void *b);
>  int sort_drm_modes_by_clk_asc(const void *a, const void *b);
>  int sort_drm_modes_by_res_dsc(const void *a, const void *b);
> diff --git a/tests/kms_hdr.c b/tests/kms_hdr.c
> index 655c3e14f7ef..b656dc7a7ed5 100644
> --- a/tests/kms_hdr.c
> +++ b/tests/kms_hdr.c
> @@ -244,6 +244,145 @@ static void test_bpc_switch(data_t *data, uint32_t flags)
>  	}
>  }
>  
> +/*
> + * List of all DP and HDMI colorspaces from drm_connector.c
> + *
> + * We purposely omit "Default" since driver behavior varies
> + * and there is no good way to test for it.
> + */
> +static const char *colorspaces[] = {
> +	/* Standard Definition Colorimetry based on CEA 861 */
> +	"SMPTE_170M_YCC",
> +	"BT709_YCC",
> +	/* Standard Definition Colorimetry based on IEC 61966-2-4 */
> +	"XVYCC_601",
> +	/* High Definition Colorimetry based on IEC 61966-2-4 */
> +	"XVYCC_709",
> +	/* Colorimetry based on IEC 61966-2-1/Amendment 1 */
> +	"SYCC_601",
> +	/* Colorimetry based on IEC 61966-2-5 [33] */
> +	"opYCC_601",
> +	/* Colorimetry based on IEC 61966-2-5 */
> +	"opRGB",
> +	/* Colorimetry based on ITU-R BT.2020 */
> +	"BT2020_CYCC",
> +	/* Colorimetry based on ITU-R BT.2020 */
> +	"BT2020_RGB",
> +	/* Colorimetry based on ITU-R BT.2020 */
> +	"BT2020_YCC",
> +	/* Added as part of Additional Colorimetry Extension in 861.G */
> +	"DCI-P3_RGB_D65",
> +	"DCI-P3_RGB_Theater",
> +	/* For Default case, driver will set the colorspace */
> +	"RGB_Wide_Gamut_Fixed_Point",

What default case?

> +	/* Colorimetry based on scRGB (IEC 61966-2-2) */
> +	"RGB_Wide_Gamut_Floating_Point",
> +	"BT601_YCC",
> +	NULL
> +};
> +
> +/* Prints the colorspace name on the framebuffer */
> +static void draw_colorspace(igt_fb_t *fb, const char* colorspace)
> +{
> +	cairo_t *cr = igt_get_cairo_ctx(fb->fd, fb);
> +
> +	igt_paint_color(cr, 0, 0, fb->width, 50, 1.0, 1.0, 1.0);
> +	cairo_move_to(cr, fb->width / 2, 20);
> +	cairo_set_font_size(cr, 12);
> +	igt_cairo_printf_line(cr, align_hcenter, 0, "%s", colorspace);
> +
> +	igt_put_cairo_ctx(cr);
> +}
> +
> +
> +static void test_colorspace_switch_on_output(data_t *data, enum pipe pipe,
> +				      igt_output_t *output,
> +				      uint32_t flags)
> +{
> +	igt_display_t *display = &data->display;
> +	// igt_crc_t ref_crc, new_crc;
> +	igt_fb_t afb;
> +	int afb_id, ret;
> +
> +	/* 10-bit formats are slow, so limit the size. */
> +	afb_id = igt_create_fb(data->fd, 512, 512, DRM_FORMAT_XRGB2101010, 0, &afb);
> +	igt_assert(afb_id);
> +
> +	draw_hdr_pattern(&afb);
> +
> +	/* Plane may be required to fit fullscreen. Check it here and allow
> +	 * smaller plane size in following tests.
> +	 */

I don't understand the code here. Is there some kind of assumption that
the hardware is always capable of scaling a 512x512 FB to whatever CRTC
size is?

I would have expected to see an allocation of FB with CRTC size.


Thanks,
pq

> +	igt_plane_set_fb(data->primary, &afb);
> +	igt_plane_set_size(data->primary, data->w, data->h);
> +	ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_TEST_ONLY, NULL);
> +	if (!ret) {
> +		data->w = afb.width;
> +		data->h = afb.height;
> +	}
> +
> +	/* require Colorspace prop */
> +	igt_require(igt_output_has_prop(output, IGT_CONNECTOR_COLORSPACE));
> +
> +	/* Get enum values for colorspace */
> +	/* for each value set colorspace */
> +	for (int i = 0; colorspaces[i]; i++) {
> +		if (igt_output_try_prop_enum(output, IGT_CONNECTOR_COLORSPACE, colorspaces[i])) {
> +			igt_info("Testing colorspace %s on %s\n",
> +				 colorspaces[i],
> +				 igt_output_name(output));
> +			draw_colorspace(&afb, colorspaces[i]);
> +			igt_output_set_prop_enum(output, IGT_CONNECTOR_COLORSPACE, colorspaces[i]);
> +			igt_display_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
> +			/* get and check current colorspace */
> +			igt_assert_output_colorspace_equal(data->fd, pipe, colorspaces[i]);
> +		}
> +	}
> +
> +	igt_info("Testing bad colorspace on %s\n",
> +			igt_output_name(output));
> +	draw_colorspace(&afb, "bad");
> +	igt_require(!igt_output_try_prop_enum(output, IGT_CONNECTOR_COLORSPACE, "bad"));
> +
> +	/* revert back to "Default" */
> +	igt_info("Testing colorspace %s on %s\n",
> +			"Default",
> +			igt_output_name(output));
> +	draw_colorspace(&afb, "Default");
> +	igt_output_set_prop_enum(output, IGT_CONNECTOR_COLORSPACE, "Default");
> +	igt_display_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
> +
> +	test_fini(data);
> +	igt_remove_fb(data->fd, &afb);
> +}
> +
> +static void test_colorspace_switch(data_t *data, uint32_t flags)
> +{
> +	igt_display_t *display = &data->display;
> +	igt_output_t *output;
> +
> +	for_each_connected_output(display, output) {
> +		enum pipe pipe;
> +
> +		for_each_pipe(display, pipe) {
> +			if (igt_pipe_connector_valid(pipe, output)) {
> +				prepare_test(data, output, pipe);
> +
> +				data->mode = igt_output_get_mode(output);
> +				data->w = data->mode->hdisplay;
> +				data->h = data->mode->vdisplay;
> +
> +				igt_dynamic_f("pipe-%s-%s",
> +					      kmstest_pipe_name(pipe), output->name)
> +					test_colorspace_switch_on_output(data, pipe, output, flags);
> +
> +				/* One pipe is enough */
> +				break;
> +			}
> +		}
> +	}
> +}
> +
>  static bool cta_block(const char *edid_ext)
>  {
>  	/*
> @@ -599,6 +738,10 @@ igt_main
>  	igt_subtest_with_dynamic("bpc-switch-suspend")
>  		test_bpc_switch(&data, TEST_SUSPEND);
>  
> +	igt_describe("Tests switching Colorspace property, .i.e., the display colorimetry");
> +	igt_subtest_with_dynamic("colorspace-switch")
> +		test_colorspace_switch(&data, TEST_NONE);
> +
>  	igt_describe("Tests entering and exiting HDR mode");
>  	igt_subtest_with_dynamic("static-toggle")
>  		test_hdr(&data, TEST_NONE);


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* [igt-dev] ✗ Fi.CI.IGT: failure for Add Colorspace tests to kms_hdr
  2022-12-12 19:24 [igt-dev] [PATCH 0/2] Add Colorspace tests to kms_hdr Harry Wentland
                   ` (2 preceding siblings ...)
  2022-12-12 20:28 ` [igt-dev] ✓ Fi.CI.BAT: success for Add Colorspace tests to kms_hdr Patchwork
@ 2022-12-13 13:29 ` Patchwork
  2022-12-30 20:06 ` [igt-dev] [PATCH 0/2] " Swati Sharma
  4 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2022-12-13 13:29 UTC (permalink / raw)
  To: Harry Wentland; +Cc: igt-dev

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

== Series Details ==

Series: Add Colorspace tests to kms_hdr
URL   : https://patchwork.freedesktop.org/series/111867/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_12497_full -> IGTPW_8222_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_8222_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_8222_full, please notify your bug team 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_8222/index.html

Participating hosts (14 -> 6)
------------------------------

  Missing    (8): pig-kbl-iris shard-tglu shard-tglu-10 shard-tglu-9 pig-glk-j5005 pig-skl-6260u shard-rkl shard-dg1 

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@kms_color@ctm-negative@pipe-c-edp-1:
    - shard-tglb:         [PASS][1] -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12497/shard-tglb1/igt@kms_color@ctm-negative@pipe-c-edp-1.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-tglb3/igt@kms_color@ctm-negative@pipe-c-edp-1.html

  * {igt@kms_hdr@colorspace-switch-suspend@pipe-a-edp-1} (NEW):
    - shard-iclb:         NOTRUN -> [SKIP][3] +2 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-iclb1/igt@kms_hdr@colorspace-switch-suspend@pipe-a-edp-1.html

  * {igt@kms_hdr@colorspace-switch@pipe-a-edp-1} (NEW):
    - shard-tglb:         NOTRUN -> [SKIP][4] +2 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-tglb7/igt@kms_hdr@colorspace-switch@pipe-a-edp-1.html

  * {igt@kms_hdr@colorspace-switch@pipe-a-vga-1} (NEW):
    - shard-snb:          NOTRUN -> [FAIL][5] +2 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-snb5/igt@kms_hdr@colorspace-switch@pipe-a-vga-1.html

  
New tests
---------

  New tests have been introduced between CI_DRM_12497_full and IGTPW_8222_full:

### New IGT tests (28) ###

  * igt@fbdev@eof:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@fbdev@nullptr:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@fbdev@read:
    - Statuses :
    - Exec time: [None] s

  * igt@fbdev@unaligned-read:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@fbdev@unaligned-write:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@fbdev@write:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_exec@basic-close-race:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_exec_suspend@basic-s0:
    - Statuses :
    - Exec time: [None] s

  * igt@kms_big_joiner@basic:
    - Statuses : 4 skip(s)
    - Exec time: [0.0] s

  * igt@kms_big_joiner@invalid-modeset:
    - Statuses : 4 skip(s)
    - Exec time: [0.0] s

  * igt@kms_hdr@colorspace-switch:
    - Statuses :
    - Exec time: [None] s

  * igt@kms_hdr@colorspace-switch-dpms:
    - Statuses :
    - Exec time: [None] s

  * igt@kms_hdr@colorspace-switch-dpms@pipe-a-dp-1:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@kms_hdr@colorspace-switch-dpms@pipe-a-edp-1:
    - Statuses : 2 skip(s)
    - Exec time: [0.0] s

  * igt@kms_hdr@colorspace-switch-dpms@pipe-a-vga-1:
    - Statuses : 1 fail(s)
    - Exec time: [0.0] s

  * igt@kms_hdr@colorspace-switch-suspend:
    - Statuses :
    - Exec time: [None] s

  * igt@kms_hdr@colorspace-switch-suspend@pipe-a-dp-1:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@kms_hdr@colorspace-switch-suspend@pipe-a-edp-1:
    - Statuses : 2 skip(s)
    - Exec time: [0.0] s

  * igt@kms_hdr@colorspace-switch-suspend@pipe-a-vga-1:
    - Statuses : 1 fail(s)
    - Exec time: [0.0] s

  * igt@kms_hdr@colorspace-switch@pipe-a-dp-1:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@kms_hdr@colorspace-switch@pipe-a-edp-1:
    - Statuses : 2 skip(s)
    - Exec time: [0.0] s

  * igt@kms_hdr@colorspace-switch@pipe-a-vga-1:
    - Statuses : 1 fail(s)
    - Exec time: [0.0] s

  * igt@kms_psr2_sf@overlay-plane-update-continuous-sf:
    - Statuses : 4 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr2_su@frontbuffer-xrgb8888:
    - Statuses : 4 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr2_su@page_flip-nv12:
    - Statuses : 4 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr2_su@page_flip-p010:
    - Statuses : 4 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr2_su@page_flip-xrgb8888:
    - Statuses : 3 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_defaults@readonly:
    - Statuses :
    - Exec time: [None] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@feature_discovery@chamelium:
    - shard-tglb:         NOTRUN -> [SKIP][6] ([fdo#111827])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-tglb2/igt@feature_discovery@chamelium.html

  * igt@gem_ccs@suspend-resume:
    - shard-iclb:         NOTRUN -> [SKIP][7] ([i915#5327])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-iclb8/igt@gem_ccs@suspend-resume.html
    - shard-tglb:         NOTRUN -> [SKIP][8] ([i915#5325])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-tglb3/igt@gem_ccs@suspend-resume.html

  * igt@gem_ctx_sseu@invalid-args:
    - shard-tglb:         NOTRUN -> [SKIP][9] ([i915#280])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-tglb6/igt@gem_ctx_sseu@invalid-args.html

  * igt@gem_exec_balancer@parallel-bb-first:
    - shard-iclb:         [PASS][10] -> [SKIP][11] ([i915#4525]) +1 similar issue
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12497/shard-iclb2/igt@gem_exec_balancer@parallel-bb-first.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-iclb8/igt@gem_exec_balancer@parallel-bb-first.html

  * igt@gem_exec_fair@basic-throttle@rcs0:
    - shard-iclb:         [PASS][12] -> [FAIL][13] ([i915#2842])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12497/shard-iclb1/igt@gem_exec_fair@basic-throttle@rcs0.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-iclb8/igt@gem_exec_fair@basic-throttle@rcs0.html

  * igt@gem_pxp@dmabuf-shared-protected-dst-is-context-refcounted:
    - shard-tglb:         NOTRUN -> [SKIP][14] ([i915#4270])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-tglb2/igt@gem_pxp@dmabuf-shared-protected-dst-is-context-refcounted.html

  * igt@gen7_exec_parse@batch-without-end:
    - shard-tglb:         NOTRUN -> [SKIP][15] ([fdo#109289])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-tglb2/igt@gen7_exec_parse@batch-without-end.html

  * igt@i915_pm_dc@dc6-dpms:
    - shard-iclb:         [PASS][16] -> [FAIL][17] ([i915#3989] / [i915#454])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12497/shard-iclb8/igt@i915_pm_dc@dc6-dpms.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-iclb3/igt@i915_pm_dc@dc6-dpms.html

  * igt@i915_pm_dc@dc9-dpms:
    - shard-iclb:         [PASS][18] -> [SKIP][19] ([i915#4281])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12497/shard-iclb6/igt@i915_pm_dc@dc9-dpms.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-iclb3/igt@i915_pm_dc@dc9-dpms.html

  * igt@kms_big_fb@y-tiled-64bpp-rotate-270:
    - shard-snb:          NOTRUN -> [SKIP][20] ([fdo#109271]) +9 similar issues
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-snb4/igt@kms_big_fb@y-tiled-64bpp-rotate-270.html
    - shard-tglb:         NOTRUN -> [SKIP][21] ([fdo#111614])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-tglb6/igt@kms_big_fb@y-tiled-64bpp-rotate-270.html
    - shard-iclb:         NOTRUN -> [SKIP][22] ([fdo#110725] / [fdo#111614])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-iclb3/igt@kms_big_fb@y-tiled-64bpp-rotate-270.html

  * igt@kms_big_fb@yf-tiled-64bpp-rotate-270:
    - shard-tglb:         NOTRUN -> [SKIP][23] ([fdo#111615]) +1 similar issue
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-tglb7/igt@kms_big_fb@yf-tiled-64bpp-rotate-270.html

  * igt@kms_ccs@pipe-b-crc-primary-basic-4_tiled_dg2_rc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][24] ([i915#6095])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-tglb3/igt@kms_ccs@pipe-b-crc-primary-basic-4_tiled_dg2_rc_ccs.html

  * igt@kms_ccs@pipe-c-bad-pixel-format-4_tiled_dg2_rc_ccs_cc:
    - shard-tglb:         NOTRUN -> [SKIP][25] ([i915#3689] / [i915#6095])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-tglb5/igt@kms_ccs@pipe-c-bad-pixel-format-4_tiled_dg2_rc_ccs_cc.html

  * igt@kms_ccs@pipe-d-bad-aux-stride-y_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][26] ([i915#3689]) +1 similar issue
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-tglb1/igt@kms_ccs@pipe-d-bad-aux-stride-y_tiled_ccs.html
    - shard-iclb:         NOTRUN -> [SKIP][27] ([fdo#109278]) +1 similar issue
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-iclb6/igt@kms_ccs@pipe-d-bad-aux-stride-y_tiled_ccs.html

  * igt@kms_chamelium@dp-hpd-fast:
    - shard-tglb:         NOTRUN -> [SKIP][28] ([fdo#109284] / [fdo#111827])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-tglb1/igt@kms_chamelium@dp-hpd-fast.html

  * igt@kms_cursor_crc@cursor-onscreen-32x10:
    - shard-tglb:         NOTRUN -> [SKIP][29] ([i915#3555]) +1 similar issue
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-tglb2/igt@kms_cursor_crc@cursor-onscreen-32x10.html

  * igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size:
    - shard-tglb:         [PASS][30] -> [FAIL][31] ([i915#2346])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12497/shard-tglb5/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-tglb6/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html

  * igt@kms_flip@2x-plain-flip-interruptible:
    - shard-tglb:         NOTRUN -> [SKIP][32] ([fdo#109274] / [fdo#111825] / [i915#3637])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-tglb5/igt@kms_flip@2x-plain-flip-interruptible.html

  * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-downscaling@pipe-a-valid-mode:
    - shard-iclb:         NOTRUN -> [SKIP][33] ([i915#2587] / [i915#2672]) +1 similar issue
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-iclb1/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-downscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling@pipe-a-default-mode:
    - shard-iclb:         NOTRUN -> [SKIP][34] ([i915#2672]) +7 similar issues
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-iclb3/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling@pipe-a-default-mode:
    - shard-iclb:         NOTRUN -> [SKIP][35] ([i915#2672] / [i915#3555])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling@pipe-a-default-mode.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-indfb-msflip-blt:
    - shard-iclb:         NOTRUN -> [SKIP][36] ([fdo#109280])
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-iclb5/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-indfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-gtt:
    - shard-tglb:         NOTRUN -> [SKIP][37] ([fdo#109280] / [fdo#111825]) +1 similar issue
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-tglb7/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-gtt.html

  * {igt@kms_hdr@colorspace-switch@pipe-a-dp-1} (NEW):
    - shard-apl:          NOTRUN -> [SKIP][38] ([fdo#109271]) +9 similar issues
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-apl1/igt@kms_hdr@colorspace-switch@pipe-a-dp-1.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-edp-1:
    - shard-iclb:         [PASS][39] -> [SKIP][40] ([i915#5235]) +2 similar issues
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12497/shard-iclb6/igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-edp-1.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-iclb2/igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-edp-1.html

  * igt@kms_psr2_sf@overlay-plane-update-continuous-sf (NEW):
    - shard-iclb:         [SKIP][41] ([fdo#111068] / [i915#658]) -> [SKIP][42] ([i915#2920])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12497/shard-iclb7/igt@kms_psr2_sf@overlay-plane-update-continuous-sf.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-iclb2/igt@kms_psr2_sf@overlay-plane-update-continuous-sf.html

  * igt@kms_psr@psr2_sprite_mmap_gtt:
    - shard-iclb:         [PASS][43] -> [SKIP][44] ([fdo#109441])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12497/shard-iclb2/igt@kms_psr@psr2_sprite_mmap_gtt.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-iclb3/igt@kms_psr@psr2_sprite_mmap_gtt.html

  * igt@kms_vrr@flip-dpms:
    - shard-iclb:         NOTRUN -> [SKIP][45] ([i915#3555]) +1 similar issue
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-iclb6/igt@kms_vrr@flip-dpms.html

  
#### Possible fixes ####

  * {igt@gem_exec_balancer@parallel-dmabuf-import-out-fence}:
    - shard-iclb:         [SKIP][46] -> [PASS][47]
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12497/shard-iclb8/igt@gem_exec_balancer@parallel-dmabuf-import-out-fence.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-iclb1/igt@gem_exec_balancer@parallel-dmabuf-import-out-fence.html

  * igt@gem_exec_balancer@parallel-out-fence:
    - shard-iclb:         [SKIP][48] ([i915#4525]) -> [PASS][49]
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12497/shard-iclb8/igt@gem_exec_balancer@parallel-out-fence.html
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-iclb1/igt@gem_exec_balancer@parallel-out-fence.html

  * igt@gem_exec_fair@basic-none-share@rcs0:
    - shard-tglb:         [FAIL][50] ([i915#2842]) -> [PASS][51]
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12497/shard-tglb7/igt@gem_exec_fair@basic-none-share@rcs0.html
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-tglb6/igt@gem_exec_fair@basic-none-share@rcs0.html

  * igt@i915_pm_dc@dc6-psr:
    - shard-iclb:         [FAIL][52] ([i915#3989] / [i915#454]) -> [PASS][53]
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12497/shard-iclb7/igt@i915_pm_dc@dc6-psr.html
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-iclb1/igt@i915_pm_dc@dc6-psr.html

  * igt@i915_selftest@live@gt_heartbeat:
    - shard-apl:          [DMESG-FAIL][54] ([i915#5334]) -> [PASS][55]
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12497/shard-apl1/igt@i915_selftest@live@gt_heartbeat.html
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-apl8/igt@i915_selftest@live@gt_heartbeat.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling@pipe-a-default-mode:
    - shard-iclb:         [SKIP][56] ([i915#3555]) -> [PASS][57]
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12497/shard-iclb2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling@pipe-a-default-mode.html
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-iclb3/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling@pipe-a-default-mode.html

  * igt@kms_psr@psr2_sprite_render:
    - shard-iclb:         [SKIP][58] ([fdo#109441]) -> [PASS][59]
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12497/shard-iclb6/igt@kms_psr@psr2_sprite_render.html
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-iclb2/igt@kms_psr@psr2_sprite_render.html

  * igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
    - shard-tglb:         [SKIP][60] ([i915#5519]) -> [PASS][61]
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12497/shard-tglb3/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-tglb3/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html

  * igt@kms_vblank@pipe-a-wait-forked-busy-hang:
    - shard-apl:          [SKIP][62] ([fdo#109271]) -> [PASS][63]
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12497/shard-apl6/igt@kms_vblank@pipe-a-wait-forked-busy-hang.html
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-apl2/igt@kms_vblank@pipe-a-wait-forked-busy-hang.html

  
#### Warnings ####

  * igt@i915_pm_dc@dc9-dpms:
    - shard-apl:          [SKIP][64] ([fdo#109271]) -> [FAIL][65] ([i915#4275])
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12497/shard-apl6/igt@i915_pm_dc@dc9-dpms.html
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-apl6/igt@i915_pm_dc@dc9-dpms.html

  * igt@kms_plane_alpha_blend@alpha-basic@pipe-c-dp-1:
    - shard-apl:          [DMESG-FAIL][66] ([IGT#6]) -> [FAIL][67] ([i915#4573]) +1 similar issue
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12497/shard-apl8/igt@kms_plane_alpha_blend@alpha-basic@pipe-c-dp-1.html
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-apl6/igt@kms_plane_alpha_blend@alpha-basic@pipe-c-dp-1.html

  * igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-fully-sf:
    - shard-iclb:         [SKIP][68] ([i915#2920]) -> [SKIP][69] ([i915#658])
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12497/shard-iclb2/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-fully-sf.html
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-iclb5/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area:
    - shard-iclb:         [SKIP][70] ([i915#2920]) -> [SKIP][71] ([fdo#111068] / [i915#658]) +1 similar issue
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12497/shard-iclb2/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-iclb6/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@plane-move-sf-dmg-area:
    - shard-iclb:         [SKIP][72] ([fdo#111068] / [i915#658]) -> [SKIP][73] ([i915#2920])
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12497/shard-iclb3/igt@kms_psr2_sf@plane-move-sf-dmg-area.html
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/shard-iclb2/igt@kms_psr2_sf@plane-move-sf-dmg-area.html

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

  [IGT#6]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/6
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#110725]: https://bugs.freedesktop.org/show_bug.cgi?id=110725
  [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#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
  [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
  [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
  [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
  [i915#3989]: https://gitlab.freedesktop.org/drm/intel/issues/3989
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#4275]: https://gitlab.freedesktop.org/drm/intel/issues/4275
  [i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
  [i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
  [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
  [i915#4573]: https://gitlab.freedesktop.org/drm/intel/issues/4573
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
  [i915#5327]: https://gitlab.freedesktop.org/drm/intel/issues/5327
  [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
  [i915#5519]: https://gitlab.freedesktop.org/drm/intel/issues/5519
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7091 -> IGTPW_8222
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_12497: 6636ff92fd32bda3fed63832bc12bf2a9d7c1c33 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8222: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8222/index.html
  IGT_7091: b8015f920c9f469d3733854263cb878373c1df51 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

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

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

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

* Re: [igt-dev] [PATCH 1/2] tests/kms_hdr: Add test for output Colorspace
  2022-12-13 11:39   ` Pekka Paalanen
@ 2022-12-13 15:06     ` Harry Wentland
  0 siblings, 0 replies; 9+ messages in thread
From: Harry Wentland @ 2022-12-13 15:06 UTC (permalink / raw)
  To: Pekka Paalanen; +Cc: Sebastian Wick, igt-dev, Joshua Ashton



On 12/13/22 06:39, Pekka Paalanen wrote:
> On Mon, 12 Dec 2022 14:24:24 -0500
> Harry Wentland <harry.wentland@amd.com> wrote:
> 

<snip>

>> +
>> +/*
>> + * igt_assert_output_bpc_equal:
>> + * @drmfd: A drm file descriptor
>> + * @pipe: Display pipe
>> + * @output_name: Name of the libdrm connector we're going to use
>> + * @bpc: BPC to compare with max & current bpc
>> + *
>> + * Assert if crtc's current bpc is not matched with the requested one.
> 
> Hi,
> 
> forgot to rewrite the doc comment.
> 

Good catch.

> 
>> + */
>> +void igt_assert_output_colorspace_equal(int drmfd, enum pipe pipe,
>> +					const char *colorspace)
>> +{
>> +	char buf[35];
>> +
>> +	igt_get_pipe_current_colorspace(drmfd, pipe, buf, sizeof(buf));
>> +	igt_assert(strcmp(colorspace, buf) == 0);
>> +}

<snip>

>> +/*
>> + * List of all DP and HDMI colorspaces from drm_connector.c
>> + *
>> + * We purposely omit "Default" since driver behavior varies
>> + * and there is no good way to test for it.
>> + */
>> +static const char *colorspaces[] = {
>> +	/* Standard Definition Colorimetry based on CEA 861 */
>> +	"SMPTE_170M_YCC",
>> +	"BT709_YCC",
>> +	/* Standard Definition Colorimetry based on IEC 61966-2-4 */
>> +	"XVYCC_601",
>> +	/* High Definition Colorimetry based on IEC 61966-2-4 */
>> +	"XVYCC_709",
>> +	/* Colorimetry based on IEC 61966-2-1/Amendment 1 */
>> +	"SYCC_601",
>> +	/* Colorimetry based on IEC 61966-2-5 [33] */
>> +	"opYCC_601",
>> +	/* Colorimetry based on IEC 61966-2-5 */
>> +	"opRGB",
>> +	/* Colorimetry based on ITU-R BT.2020 */
>> +	"BT2020_CYCC",
>> +	/* Colorimetry based on ITU-R BT.2020 */
>> +	"BT2020_RGB",
>> +	/* Colorimetry based on ITU-R BT.2020 */
>> +	"BT2020_YCC",
>> +	/* Added as part of Additional Colorimetry Extension in 861.G */
>> +	"DCI-P3_RGB_D65",
>> +	"DCI-P3_RGB_Theater",
>> +	/* For Default case, driver will set the colorspace */
>> +	"RGB_Wide_Gamut_Fixed_Point",
> 
> What default case?

Oops, bad copy-paste. This line should be dropped.

> 
>> +	/* Colorimetry based on scRGB (IEC 61966-2-2) */
>> +	"RGB_Wide_Gamut_Floating_Point",
>> +	"BT601_YCC",
>> +	NULL
>> +};
>> +
>> +/* Prints the colorspace name on the framebuffer */
>> +static void draw_colorspace(igt_fb_t *fb, const char* colorspace)
>> +{
>> +	cairo_t *cr = igt_get_cairo_ctx(fb->fd, fb);
>> +
>> +	igt_paint_color(cr, 0, 0, fb->width, 50, 1.0, 1.0, 1.0);
>> +	cairo_move_to(cr, fb->width / 2, 20);
>> +	cairo_set_font_size(cr, 12);
>> +	igt_cairo_printf_line(cr, align_hcenter, 0, "%s", colorspace);
>> +
>> +	igt_put_cairo_ctx(cr);
>> +}
>> +
>> +
>> +static void test_colorspace_switch_on_output(data_t *data, enum pipe pipe,
>> +				      igt_output_t *output,
>> +				      uint32_t flags)
>> +{
>> +	igt_display_t *display = &data->display;
>> +	// igt_crc_t ref_crc, new_crc;
>> +	igt_fb_t afb;
>> +	int afb_id, ret;
>> +
>> +	/* 10-bit formats are slow, so limit the size. */
>> +	afb_id = igt_create_fb(data->fd, 512, 512, DRM_FORMAT_XRGB2101010, 0, &afb);
>> +	igt_assert(afb_id);
>> +
>> +	draw_hdr_pattern(&afb);
>> +
>> +	/* Plane may be required to fit fullscreen. Check it here and allow
>> +	 * smaller plane size in following tests.
>> +	 */
> 
> I don't understand the code here. Is there some kind of assumption that
> the hardware is always capable of scaling a 512x512 FB to whatever CRTC
> size is?
> 
> I would have expected to see an allocation of FB with CRTC size.
> 

This is copy-paste from the other kms_hdr tests. The existing
tests were build assuming HW is capable of scaling.

512x512 was chosen to limit the impact of drawing the 10-bit
buffer in CPU as we want these tests to run fast so we an use
them as pre-submission tests.

Harry

> 
> Thanks,
> pq
> 
>> +	igt_plane_set_fb(data->primary, &afb);
>> +	igt_plane_set_size(data->primary, data->w, data->h);
>> +	ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_TEST_ONLY, NULL);
>> +	if (!ret) {
>> +		data->w = afb.width;
>> +		data->h = afb.height;
>> +	}
>> +
>> +	/* require Colorspace prop */
>> +	igt_require(igt_output_has_prop(output, IGT_CONNECTOR_COLORSPACE));
>> +
>> +	/* Get enum values for colorspace */
>> +	/* for each value set colorspace */
>> +	for (int i = 0; colorspaces[i]; i++) {
>> +		if (igt_output_try_prop_enum(output, IGT_CONNECTOR_COLORSPACE, colorspaces[i])) {
>> +			igt_info("Testing colorspace %s on %s\n",
>> +				 colorspaces[i],
>> +				 igt_output_name(output));
>> +			draw_colorspace(&afb, colorspaces[i]);
>> +			igt_output_set_prop_enum(output, IGT_CONNECTOR_COLORSPACE, colorspaces[i]);
>> +			igt_display_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
>> +			/* get and check current colorspace */
>> +			igt_assert_output_colorspace_equal(data->fd, pipe, colorspaces[i]);
>> +		}
>> +	}
>> +
>> +	igt_info("Testing bad colorspace on %s\n",
>> +			igt_output_name(output));
>> +	draw_colorspace(&afb, "bad");
>> +	igt_require(!igt_output_try_prop_enum(output, IGT_CONNECTOR_COLORSPACE, "bad"));
>> +
>> +	/* revert back to "Default" */
>> +	igt_info("Testing colorspace %s on %s\n",
>> +			"Default",
>> +			igt_output_name(output));
>> +	draw_colorspace(&afb, "Default");
>> +	igt_output_set_prop_enum(output, IGT_CONNECTOR_COLORSPACE, "Default");
>> +	igt_display_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
>> +
>> +	test_fini(data);
>> +	igt_remove_fb(data->fd, &afb);
>> +}
>> +
>> +static void test_colorspace_switch(data_t *data, uint32_t flags)
>> +{
>> +	igt_display_t *display = &data->display;
>> +	igt_output_t *output;
>> +
>> +	for_each_connected_output(display, output) {
>> +		enum pipe pipe;
>> +
>> +		for_each_pipe(display, pipe) {
>> +			if (igt_pipe_connector_valid(pipe, output)) {
>> +				prepare_test(data, output, pipe);
>> +
>> +				data->mode = igt_output_get_mode(output);
>> +				data->w = data->mode->hdisplay;
>> +				data->h = data->mode->vdisplay;
>> +
>> +				igt_dynamic_f("pipe-%s-%s",
>> +					      kmstest_pipe_name(pipe), output->name)
>> +					test_colorspace_switch_on_output(data, pipe, output, flags);
>> +
>> +				/* One pipe is enough */
>> +				break;
>> +			}
>> +		}
>> +	}
>> +}
>> +
>>  static bool cta_block(const char *edid_ext)
>>  {
>>  	/*
>> @@ -599,6 +738,10 @@ igt_main
>>  	igt_subtest_with_dynamic("bpc-switch-suspend")
>>  		test_bpc_switch(&data, TEST_SUSPEND);
>>  
>> +	igt_describe("Tests switching Colorspace property, .i.e., the display colorimetry");
>> +	igt_subtest_with_dynamic("colorspace-switch")
>> +		test_colorspace_switch(&data, TEST_NONE);
>> +
>>  	igt_describe("Tests entering and exiting HDR mode");
>>  	igt_subtest_with_dynamic("static-toggle")
>>  		test_hdr(&data, TEST_NONE);
> 

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

* Re: [igt-dev] [PATCH 0/2] Add Colorspace tests to kms_hdr
  2022-12-12 19:24 [igt-dev] [PATCH 0/2] Add Colorspace tests to kms_hdr Harry Wentland
                   ` (3 preceding siblings ...)
  2022-12-13 13:29 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
@ 2022-12-30 20:06 ` Swati Sharma
  2023-01-09 16:25   ` Harry Wentland
  4 siblings, 1 reply; 9+ messages in thread
From: Swati Sharma @ 2022-12-30 20:06 UTC (permalink / raw)
  To: Harry Wentland, igt-dev, Bhanuprakash Modem, uma.shankar
  Cc: Sebastian Wick, Pekka Paalanen, Joshua Ashton

Hi Harry,

First of all, why do you think kms_hdr is the right place to add 
colorspace tests? Can we have amd specific IGT for the same.
It seems intel doesn't have any plans in near future to expose this debugfs.
++Uma ++Bhanu

On 13-Dec-22 12:54 AM, Harry Wentland wrote:
> We've had a Colorspace property on the drm_connector
> but no IGT tests. These patches add IGT tests for this
> property. They're currently only enabled on amdgpu with
> the kernel at [1] but could be enabled for other drivers
> if those drivers decide to expose a debugfs to read the
> currently applied colorspace.
> 
> [1] https://gitlab.freedesktop.org/hwentland/linux/-/tree/hdr-colorimetry
> 
> Cc: Pekka Paalanen <ppaalanen@gmail.com>
> Cc: Sebastian Wick <sebastian.wick@redhat.com>
> Cc: Vitaly.Prosyak@amd.com
> Cc: Uma Shankar <uma.shankar@intel.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: Joshua Ashton <joshua@froggi.es>
> Cc: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> Cc: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
> Cc: Alex Hung <Alex.Hung@amd.com>
> 
> Harry Wentland (2):
>    tests/kms_hdr: Add test for output Colorspace
>    tests/kms_hdr: Add suspend and DPMS Colorspace tests
> 
>   lib/igt_kms.c   |  51 ++++++++++++++++
>   lib/igt_kms.h   |   6 ++
>   tests/kms_hdr.c | 156 ++++++++++++++++++++++++++++++++++++++++++++++++
>   3 files changed, 213 insertions(+)
> 
> --
> 2.38.1
> 

-- 
~Swati Sharma

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

* Re: [igt-dev] [PATCH 0/2] Add Colorspace tests to kms_hdr
  2022-12-30 20:06 ` [igt-dev] [PATCH 0/2] " Swati Sharma
@ 2023-01-09 16:25   ` Harry Wentland
  0 siblings, 0 replies; 9+ messages in thread
From: Harry Wentland @ 2023-01-09 16:25 UTC (permalink / raw)
  To: Swati Sharma, igt-dev, Bhanuprakash Modem, uma.shankar
  Cc: Sebastian Wick, Pekka Paalanen, Joshua Ashton



On 12/30/22 15:06, Swati Sharma wrote:
> Hi Harry,
> 
> First of all, why do you think kms_hdr is the right place to add colorspace tests? Can we have amd specific IGT for the same.
> It seems intel doesn't have any plans in near future to expose this debugfs.
> ++Uma ++Bhanu
> 

kms_hdr includes the max_bpc tests added by Intel a while back. Colorspace
is similar. Both are mainly required for HDR.

This property and the test is generic in principle but I have not had a
chance to look more closely at the i915 driver to see how it should report
the current colorspace. It should be a straightforward change for an
i915 engineer.

Harry

> On 13-Dec-22 12:54 AM, Harry Wentland wrote:
>> We've had a Colorspace property on the drm_connector
>> but no IGT tests. These patches add IGT tests for this
>> property. They're currently only enabled on amdgpu with
>> the kernel at [1] but could be enabled for other drivers
>> if those drivers decide to expose a debugfs to read the
>> currently applied colorspace.
>>
>> [1] https://gitlab.freedesktop.org/hwentland/linux/-/tree/hdr-colorimetry>>>
>> Cc: Pekka Paalanen <ppaalanen@gmail.com>
>> Cc: Sebastian Wick <sebastian.wick@redhat.com>
>> Cc: Vitaly.Prosyak@amd.com
>> Cc: Uma Shankar <uma.shankar@intel.com>
>> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> Cc: Joshua Ashton <joshua@froggi.es>
>> Cc: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
>> Cc: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
>> Cc: Alex Hung <Alex.Hung@amd.com>
>>
>> Harry Wentland (2):
>>    tests/kms_hdr: Add test for output Colorspace
>>    tests/kms_hdr: Add suspend and DPMS Colorspace tests
>>
>>   lib/igt_kms.c   |  51 ++++++++++++++++
>>   lib/igt_kms.h   |   6 ++
>>   tests/kms_hdr.c | 156 ++++++++++++++++++++++++++++++++++++++++++++++++
>>   3 files changed, 213 insertions(+)
>>
>> -- 
>> 2.38.1
>>
> 

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

end of thread, other threads:[~2023-01-09 16:25 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-12 19:24 [igt-dev] [PATCH 0/2] Add Colorspace tests to kms_hdr Harry Wentland
2022-12-12 19:24 ` [igt-dev] [PATCH 1/2] tests/kms_hdr: Add test for output Colorspace Harry Wentland
2022-12-13 11:39   ` Pekka Paalanen
2022-12-13 15:06     ` Harry Wentland
2022-12-12 19:24 ` [igt-dev] [PATCH 2/2] tests/kms_hdr: Add suspend and DPMS Colorspace tests Harry Wentland
2022-12-12 20:28 ` [igt-dev] ✓ Fi.CI.BAT: success for Add Colorspace tests to kms_hdr Patchwork
2022-12-13 13:29 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2022-12-30 20:06 ` [igt-dev] [PATCH 0/2] " Swati Sharma
2023-01-09 16:25   ` Harry Wentland

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.