[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