From: Mukunda Pramodh Kumar <mukunda.pramodh.ku...@intel.com> Extended IGT tests to support logarithmic gamma mode on pipe
Cc: Harry Wentland <harry.wentl...@amd.com> Cc: Ville Syrjälä <ville.syrj...@linux.intel.com> Cc: Juha-Pekka Heikkila <juhapekka.heikk...@gmail.com> Cc: Uma Shankar <uma.shan...@intel.com> Signed-off-by: Mukunda Pramodh Kumar <mukunda.pramodh.ku...@intel.com> Signed-off-by: Bhanuprakash Modem <bhanuprakash.mo...@intel.com> --- tests/kms_color.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/tests/kms_color.c b/tests/kms_color.c index d9fe417ba9..00742afaaf 100644 --- a/tests/kms_color.c +++ b/tests/kms_color.c @@ -232,8 +232,6 @@ static void test_pipe_gamma(data_t *data, igt_require(igt_pipe_obj_has_prop(primary->pipe, IGT_CRTC_GAMMA_LUT)); - gamma_full = generate_table_max(data->gamma_lut_size); - output = igt_get_single_output_for_pipe(&data->display, primary->pipe->pipe); igt_require(output); @@ -258,10 +256,13 @@ static void test_pipe_gamma(data_t *data, igt_assert(fb_modeset_id); igt_plane_set_fb(primary, &fb_modeset); + /* Reset Color properties */ disable_ctm(primary->pipe); disable_degamma(primary->pipe); - set_gamma(data, primary->pipe, gamma_full); + disable_gamma(primary->pipe); igt_display_commit(&data->display); + igt_wait_for_vblank(data->drm_fd, + display->pipes[primary->pipe->pipe].crtc_offset); /* Draw solid colors with no gamma transformation. */ paint_rectangles(data, mode, red_green_blue, &fb); @@ -274,6 +275,13 @@ static void test_pipe_gamma(data_t *data, /* Draw a gradient with gamma LUT to remap all values * to max red/green/blue. */ + if (igt_pipe_obj_has_prop(primary->pipe, IGT_CRTC_GAMMA_MODE)) { + set_advance_gamma(data, primary->pipe, MAX_GAMMA); + } else { + gamma_full = generate_table_max(data->gamma_lut_size); + set_gamma(data, primary->pipe, gamma_full); + igt_display_commit(&data->display); + } paint_gradient_rectangles(data, mode, red_green_blue, &fb); igt_plane_set_fb(primary, &fb); igt_display_commit(&data->display); @@ -581,7 +589,10 @@ static bool test_pipe_ctm(data_t *data, */ if (memcmp(before, after, sizeof(color_t))) { set_degamma(data, primary->pipe, degamma_linear); - set_gamma(data, primary->pipe, gamma_linear); + if (igt_pipe_obj_has_prop(primary->pipe, IGT_CRTC_GAMMA_MODE)) + disable_gamma(primary->pipe); + else + set_gamma(data, primary->pipe, gamma_linear); } else { /* Disable Degamma and Gamma for ctm max test */ disable_degamma(primary->pipe); -- 2.32.0