[igt-dev] [PATCH i-g-t v3] tests/kms_color: check degamma and gamma props in CTM subtests
Rodrigo Siqueira
Rodrigo.Siqueira at amd.com
Sun Nov 13 17:23:06 UTC 2022
On 11/8/22 14:44, Melissa Wen wrote:
> Some CTM subtests generate and set degamma/gamma LUTs without checking
> if these properties are supported by the driver. Therefore, if degamma
> and gamma are used in the subtest, check the color properties before
> generate and set LUTs. If these properties are not supported, these
> subtests will skip instead of failing.
>
> v2:
> - remove unnecessary set_luts check (Alex Hung)
>
> v3:
> - initialize degamma and gamma LUTs as NULL
>
> Signed-off-by: Melissa Wen <mwen at igalia.com>
> Reviewed-by: Alex Hung <alex.hung at amd.com>
> ---
> tests/kms_color.c | 11 +++++++----
> 1 file changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/tests/kms_color.c b/tests/kms_color.c
> index e4dc2465..d016cefb 100644
> --- a/tests/kms_color.c
> +++ b/tests/kms_color.c
> @@ -461,7 +461,7 @@ static bool test_pipe_ctm(data_t *data,
> 0.0, 1.0, 0.0,
> 0.0, 0.0, 1.0
> };
> - gamma_lut_t *degamma_linear, *gamma_linear;
> + gamma_lut_t *degamma_linear = NULL, *gamma_linear = NULL;
> igt_output_t *output = data->output;
> bool ret = true;
> igt_display_t *display = &data->display;
> @@ -472,9 +472,6 @@ static bool test_pipe_ctm(data_t *data,
>
> igt_require(igt_pipe_obj_has_prop(primary->pipe, IGT_CRTC_CTM));
>
> - degamma_linear = generate_table(data->degamma_lut_size, 1.0);
> - gamma_linear = generate_table(data->gamma_lut_size, 1.0);
> -
> igt_output_set_pipe(output, primary->pipe->pipe);
> igt_output_override_mode(output, mode);
>
> @@ -502,6 +499,12 @@ static bool test_pipe_ctm(data_t *data,
> * rounding issues and inaccuracies leading to crc mismatch.
> */
> if (memcmp(before, after, sizeof(color_t))) {
> + igt_require(igt_pipe_obj_has_prop(primary->pipe, IGT_CRTC_DEGAMMA_LUT));
> + igt_require(igt_pipe_obj_has_prop(primary->pipe, IGT_CRTC_GAMMA_LUT));
> +
> + degamma_linear = generate_table(data->degamma_lut_size, 1.0);
> + gamma_linear = generate_table(data->gamma_lut_size, 1.0);
> +
> set_degamma(data, primary->pipe, degamma_linear);
> set_gamma(data, primary->pipe, gamma_linear);
> } else {
Hi Melissa,
Thanks a lot for this patch. I already merged it into IGT.
Best Regards
Siqueira
More information about the igt-dev
mailing list