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

Daniel Vetter daniel at ffwll.ch
Wed Apr 3 13:44:40 UTC 2019


On Wed, Apr 03, 2019 at 05:50:10PM +0530, Uma Shankar wrote:
> Due to Gamma/Degamma limitation wrt representation of intermediate
> values between 0 and 1.0 causing rounding issues and inaccuracies,
> applying linear gamma affects crc. This patch fixes the same by
> making ctm max test independent 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.
> 
> v4: Disabling degamma and gamma for ctm max tests, after the logic
> in kernel has been updated by Ville's series.
> 
> v5: Disabled gamma/degamma for all ctm tests as suggested by Ville.
> 
> v6: Restricting disabling of linear gamma luts for ctm max test.
> Updated the commit message and comment as suggested by Daniel.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108147
> Signed-off-by: Uma Shankar <uma.shankar at intel.com>

Acked-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> ---
>  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..3aac7fb 100644
> --- a/tests/kms_color.c
> +++ b/tests/kms_color.c
> @@ -696,8 +696,20 @@ 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 intermediate values between 0 and 1.0 causes
> +		 * rounding issues and inaccuracies leading to crc mismatch.
> +		 */
> +		if (memcmp(before, after, sizeof(color_t))) {
> +			set_degamma(data, primary->pipe, degamma_linear);
> +			set_gamma(data, primary->pipe, gamma_linear);
> +		} else {
> +			/* Disable Degamma and Gamma for ctm max test */
> +			disable_degamma(primary->pipe);
> +			disable_gamma(primary->pipe);
> +		}
> +
>  		disable_ctm(primary->pipe);
>  		igt_display_commit(&data->display);
>  
> -- 
> 1.9.1
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the igt-dev mailing list