[i-g-t 13/14] tests/kms_color: Extended IGT tests to support logarithmic gamma mode
Bhanuprakash Modem
bhanuprakash.modem at intel.com
Mon Nov 15 09:47:58 UTC 2021
From: Mukunda Pramodh Kumar <mukunda.pramodh.kumar at intel.com>
Extended IGT tests to support logarithmic gamma mode on pipe
Cc: Harry Wentland <harry.wentland at amd.com>
Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
Cc: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
Cc: Uma Shankar <uma.shankar at intel.com>
Signed-off-by: Mukunda Pramodh Kumar <mukunda.pramodh.kumar at intel.com>
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem at 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
More information about the dri-devel
mailing list