[igt-dev] [v3] tests/kms_color: Fix CRC mismatch issues with ctm test

Uma Shankar uma.shankar at intel.com
Mon Mar 25 08:40:42 UTC 2019


Due to Gamma/Degamma limitation with precision (lack of
exact 1.0 representation) due to ABI restriction, applying
linear gamma affects crc. This patch fixes the same by making
ctm tests independant of gamma/degamma.

v2: Disable degamma/gamma programming for ctm max test as it
leads to crc mimsmatch. Limiting it to this test case alone as
other tests need it to be enabled, hence not touching those
scenarios.

v3: Fixed a fumble with compilation.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108147
Signed-off-by: Uma Shankar <uma.shankar at intel.com>
---
 tests/kms_color.c | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/tests/kms_color.c b/tests/kms_color.c
index decf3c2..dcc86ad 100644
--- a/tests/kms_color.c
+++ b/tests/kms_color.c
@@ -696,8 +696,15 @@ static bool test_pipe_ctm(data_t *data,
 		igt_assert(fb_modeset_id);
 		igt_plane_set_fb(primary, &fb_modeset);
 
-		set_degamma(data, primary->pipe, degamma_linear);
-		set_gamma(data, primary->pipe, gamma_linear);
+		/*
+		 * Don't program LUT's for max CTM cases as limitation of
+		 * representing 1.0 due to ABI limits causes crc mismatch
+		 */
+		if (memcmp(before, after, sizeof(color_t))) {
+			set_degamma(data, primary->pipe, degamma_linear);
+			set_gamma(data, primary->pipe, gamma_linear);
+		}
+
 		disable_ctm(primary->pipe);
 		igt_display_commit(&data->display);
 
@@ -1005,6 +1012,11 @@ run_tests_for_pipe(data_t *data, enum pipe p)
 		 * produce with an 8 bits per color framebuffer. */
 		igt_require(!IS_CHERRYVIEW(data->devid));
 
+		/* Disable and let default luts be applied by kernel */
+		disable_degamma(primary->pipe);
+		disable_gamma(primary->pipe);
+		igt_display_commit(&data->display);
+
 		igt_assert(test_pipe_ctm(data, primary, red_green_blue,
 					 full_rgb, ctm));
 	}
-- 
1.9.1



More information about the igt-dev mailing list