Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t] tests/kms_feature_discovery: add HDR, VRR and DSC discovery
@ 2026-06-13 19:59 Swati Sharma
  2026-06-13 20:40 ` ✓ Xe.CI.BAT: success for " Patchwork
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Swati Sharma @ 2026-06-13 19:59 UTC (permalink / raw)
  To: igt-dev; +Cc: Swati Sharma

Add display feature discovery subtests for HDR, VRR and DSC.

HDR requires:
- IGT_CONNECTOR_MAX_BPC with max bpc >= 10
- IGT_CONNECTOR_HDR_OUTPUT_METADATA
- EDID HDR capability via igt_is_panel_hdr()

VRR checks connector vrr_capable support.
DSC checks sink support via igt_is_dsc_supported_by_sink().

Assisted-by: GitHub Copilot:Claude Opus 4.6
Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
---
 tests/kms_feature_discovery.c | 75 +++++++++++++++++++++++++++++++++++
 1 file changed, 75 insertions(+)

diff --git a/tests/kms_feature_discovery.c b/tests/kms_feature_discovery.c
index 28ec89c55..07a0c5e16 100644
--- a/tests/kms_feature_discovery.c
+++ b/tests/kms_feature_discovery.c
@@ -36,6 +36,7 @@
 #ifdef HAVE_CHAMELIUM
 #include "igt_chamelium.h"
 #endif
+#include "igt_hdr.h"
 #include "igt_kms.h"
 #include "igt_psr.h"
 #include "igt_sysfs.h"
@@ -63,6 +64,18 @@
  * SUBTEST: dp-mst
  * Description: Make sure that we have DP-MST configuration.
  *
+ * SUBTEST: hdr
+ * Description: Make sure that we have at least one HDR-capable panel.
+ * Mega feature: HDR
+ *
+ * SUBTEST: vrr
+ * Description: Make sure that we have at least one VRR-capable panel.
+ * Mega feature: VRR
+ *
+ * SUBTEST: dsc
+ * Description: Make sure that we have at least one DSC-capable sink.
+ * Mega feature: DSC
+ *
  * arg[1].values: 1, 2, 3, 4
  */
 
@@ -174,5 +187,67 @@ int igt_main() {
 			}
 			igt_require_f(ret == 0, "No DP-MST configuration found.\n");
 		}
+
+		igt_describe("Make sure that we have at least one HDR-capable panel.");
+		igt_subtest("hdr") {
+			igt_output_t *output;
+			bool found = false;
+
+			for_each_connected_output(&display, output) {
+				if (!igt_output_has_prop(output, IGT_CONNECTOR_MAX_BPC))
+					continue;
+
+				if (igt_get_output_max_bpc(output) < 10)
+					continue;
+
+				if (!igt_output_has_prop(output,
+							 IGT_CONNECTOR_HDR_OUTPUT_METADATA))
+					continue;
+
+				if (!igt_is_panel_hdr(fd, output))
+					continue;
+
+				found = true;
+				break;
+			}
+
+			igt_require_f(found,
+				      "No HDR-capable panel found with max bpc, HDR metadata, and EDID HDR support.\n");
+		}
+
+		igt_describe("Make sure that we have at least one VRR-capable panel.");
+		igt_subtest("vrr") {
+			igt_output_t *output;
+			bool found = false;
+
+			for_each_connected_output(&display, output) {
+				if (!igt_output_has_prop(output, IGT_CONNECTOR_VRR_CAPABLE))
+					continue;
+
+				if (!igt_output_get_prop(output, IGT_CONNECTOR_VRR_CAPABLE))
+					continue;
+
+				found = true;
+				break;
+			}
+
+			igt_require_f(found, "No VRR-capable panel found.\n");
+		}
+
+		igt_describe("Make sure that we have at least one DSC-capable sink.");
+		igt_subtest("dsc") {
+			igt_output_t *output;
+			bool found = false;
+
+			for_each_connected_output(&display, output) {
+				if (!igt_is_dsc_supported_by_sink(fd, output->name))
+					continue;
+
+				found = true;
+				break;
+			}
+
+			igt_require_f(found, "No DSC-capable sink found.\n");
+		}
 	}
 }
-- 
2.25.1


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

end of thread, other threads:[~2026-07-09  6:25 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-13 19:59 [PATCH i-g-t] tests/kms_feature_discovery: add HDR, VRR and DSC discovery Swati Sharma
2026-06-13 20:40 ` ✓ Xe.CI.BAT: success for " Patchwork
2026-06-13 20:55 ` ✗ i915.CI.BAT: failure " Patchwork
2026-06-13 21:47 ` ✗ Xe.CI.FULL: " Patchwork
2026-06-15  3:35 ` [PATCH i-g-t] " Reddy Guddati, Santhosh
2026-07-08 19:35   ` Sharma, Swati2
2026-06-15 10:06 ` Kamil Konieczny
2026-07-09  6:24   ` Sharma, Swati2

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox