[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