[igt-dev] [v4] tests/kms_color: Fix CRC mismatch issues with ctm test
Daniel Vetter
daniel at ffwll.ch
Fri Mar 29 09:00:59 UTC 2019
On Fri, Mar 29, 2019 at 02:49:15AM +0530, Uma Shankar wrote:
> Due to Gamma/Degamma limitation with precision (lack of
> exact 1.0 representation) due to ABI restriction, applying
Huh, why? That sounds like a conversion bug in our gamma table handler.
0xffff == 1.0 if we don't treat it like that that's a driver bug. The
gamma table is _not_ fixed point, but linear range from 0-0xffff. Which is
unlike the ctm (which due to an uapi accident has a really hilarious fixed
point with sign bit format).
Please don't paper over driver bugs :-)
-Daniel
> 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.
>
> v4: Disabling degamma and gamma for ctm max tests, after the logic
> in kernel has been updated by Ville's series.
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108147
> Signed-off-by: Uma Shankar <uma.shankar at intel.com>
> ---
> tests/kms_color.c | 15 +++++++++++++--
> 1 file changed, 13 insertions(+), 2 deletions(-)
>
> diff --git a/tests/kms_color.c b/tests/kms_color.c
> index decf3c2..0951ffc 100644
> --- a/tests/kms_color.c
> +++ b/tests/kms_color.c
> @@ -696,8 +696,19 @@ 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);
> + } 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
>
> _______________________________________________
> igt-dev mailing list
> igt-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the igt-dev
mailing list