[igt-dev] [PATCH i-g-t] DO NOT MERGE: NV12 Experiment

Jeevan B jeevan.b at intel.com
Tue May 2 08:45:07 UTC 2023


Signed-off-by: Jeevan B <jeevan.b at intel.com>
---
 tests/intel-ci/fast-feedback.testlist |  3 ++
 tests/kms_pipe_crc_basic.c            | 72 +++++++++++++++++++++++----
 2 files changed, 65 insertions(+), 10 deletions(-)

diff --git a/tests/intel-ci/fast-feedback.testlist b/tests/intel-ci/fast-feedback.testlist
index d9fcb62d..7c93aa2b 100644
--- a/tests/intel-ci/fast-feedback.testlist
+++ b/tests/intel-ci/fast-feedback.testlist
@@ -119,6 +119,9 @@ igt at kms_force_connector_basic@force-load-detect
 igt at kms_force_connector_basic@prune-stale-modes
 igt at kms_frontbuffer_tracking@basic
 igt at kms_pipe_crc_basic@compare-crc-sanitycheck
+igt at kms_pipe_crc_basic@NV12-Check-BLUE
+igt at kms_pipe_crc_basic@NV12-Check-GREEN
+igt at kms_pipe_crc_basic@NV12-Check-RED
 igt at kms_pipe_crc_basic@hang-read-crc
 igt at kms_pipe_crc_basic@nonblocking-crc
 igt at kms_pipe_crc_basic@nonblocking-crc-frame-sequence
diff --git a/tests/kms_pipe_crc_basic.c b/tests/kms_pipe_crc_basic.c
index 65afc9f6..a6024cfc 100644
--- a/tests/kms_pipe_crc_basic.c
+++ b/tests/kms_pipe_crc_basic.c
@@ -187,7 +187,7 @@ static void test_read_crc(data_t *data, enum pipe pipe,
  *
  *   No CRC mismatch should happen
  */
-static void test_compare_crc(data_t *data, enum pipe pipe, igt_output_t *output)
+static void test_compare_crc(data_t *data, enum pipe pipe, igt_output_t *output, int color)
 {
 	igt_display_t *display = &data->display;
 	igt_plane_t *primary;
@@ -208,12 +208,30 @@ static void test_compare_crc(data_t *data, enum pipe pipe, igt_output_t *output)
 			DRM_FORMAT_MOD_LINEAR,
 			1.0, 1.0, 1.0,
 			&fb0);
-	igt_create_color_fb(data->drm_fd,
-			mode->hdisplay, mode->vdisplay,
-			DRM_FORMAT_XRGB8888,
-			DRM_FORMAT_MOD_LINEAR,
-			1.0, 1.0, 1.0,
-			&fb1);
+	if (color == 0)
+	{
+		igt_create_color_fb(data->drm_fd,
+				mode->hdisplay, mode->vdisplay,
+				DRM_FORMAT_NV12,
+				DRM_FORMAT_MOD_LINEAR,
+				1, 0, 0,
+				&fb1);
+	} else if (color == 1) {
+		igt_create_color_fb(data->drm_fd,
+                                mode->hdisplay, mode->vdisplay,
+                                DRM_FORMAT_NV12,
+                                DRM_FORMAT_MOD_LINEAR,
+                                0, 1, 0,
+                                &fb1);
+	} else {
+		igt_create_color_fb(data->drm_fd,
+                                mode->hdisplay, mode->vdisplay,
+                                DRM_FORMAT_NV12,
+                                DRM_FORMAT_MOD_LINEAR,
+                                0, 0, 1,
+                                &fb1);
+	}
+
 
 	/* Flip FB0 with the Primary plane & collect the CRC as ref CRC. */
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
@@ -418,7 +436,7 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL)
 	}
 
 	igt_describe("Basic sanity check for CRC mismatches");
-	igt_subtest_with_dynamic("compare-crc-sanitycheck") {
+	igt_subtest_with_dynamic("NV12-Check-BLUE") {
 		for_each_pipe_with_single_output(&data.display, pipe, output) {
 			if (simulation_constraint(pipe))
 				continue;
@@ -426,11 +444,45 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL)
 			if(!pipe_output_combo_valid(&data.display, pipe, output))
 				continue;
 
-			igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name)
-				test_compare_crc(&data, pipe, output);
+			igt_dynamic_f("pipe-%s-%s-BLUE", kmstest_pipe_name(pipe), output->name)
+				test_compare_crc(&data, pipe, output, 2);
+
+			break;
 		}
 	}
 
+	igt_subtest_with_dynamic("NV12-Check-GREEN") {
+                for_each_pipe_with_single_output(&data.display, pipe, output) {
+                        if (simulation_constraint(pipe))
+                                continue;
+
+                        if(!pipe_output_combo_valid(&data.display, pipe, output))
+                                continue;
+
+                        igt_dynamic_f("pipe-%s-%s-GREEN", kmstest_pipe_name(pipe), output->name)
+                                test_compare_crc(&data, pipe, output, 1);
+
+                        break;
+                }
+        }
+
+
+	igt_subtest_with_dynamic("NV12-Check-RED") {
+                for_each_pipe_with_single_output(&data.display, pipe, output) {
+                        if (simulation_constraint(pipe))
+                                continue;
+
+                        if(!pipe_output_combo_valid(&data.display, pipe, output))
+                                continue;
+
+                        igt_dynamic_f("pipe-%s-%s-RED", kmstest_pipe_name(pipe), output->name)
+                                test_compare_crc(&data, pipe, output, 0);
+
+                        break;
+                }
+        }
+
+
 	igt_fixture {
 		igt_display_fini(&data.display);
 		close(data.drm_fd);
-- 
2.25.1



More information about the igt-dev mailing list