Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Vidya Srinivas <vidya.srinivas@intel.com>
To: igt-dev@lists.freedesktop.org
Subject: [igt-dev] [PATCH i-g-t] tests/kms_plane_alpha_blend: Limit pipe output to 8bpc for coverage-vs-premult-vs-constant
Date: Sat, 19 Jun 2021 13:38:55 +0530	[thread overview]
Message-ID: <1624090135-437-1-git-send-email-vidya.srinivas@intel.com> (raw)
In-Reply-To: <1623415451-776-1-git-send-email-vidya.srinivas@intel.com>

Few Gen11 systems report CRC mismatch with higher alpha values if
primary plane is enabled. So in order to get the coverage vs. premult vs. constant
crc to match use legacy LUT to limit pipe output to 8bpc for subtest
coverage-vs-premult-vs-constant. Similar thing is done in kms_flip_scaled_crc.

Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com>
---
 tests/kms_plane_alpha_blend.c | 39 ++++++++++++++++++++++++++++++++++++---
 1 file changed, 36 insertions(+), 3 deletions(-)

diff --git a/tests/kms_plane_alpha_blend.c b/tests/kms_plane_alpha_blend.c
index a37cb27c7d62..1e20d9b0778c 100644
--- a/tests/kms_plane_alpha_blend.c
+++ b/tests/kms_plane_alpha_blend.c
@@ -442,20 +442,52 @@ static void coverage_7efc(data_t *data, enum pipe pipe, igt_plane_t *plane)
 	igt_pipe_crc_stop(data->pipe_crc);
 }
 
+static void set_lut(data_t *data, enum pipe pipe)
+{
+	igt_pipe_t *pipe_obj = &data->display.pipes[pipe];
+	struct drm_color_lut *lut;
+	drmModeCrtc *crtc;
+	int i, lut_size;
+
+	crtc = drmModeGetCrtc(data->gfx_fd, pipe_obj->crtc_id);
+	lut_size = crtc->gamma_size;
+	drmModeFreeCrtc(crtc);
+	lut = malloc(sizeof(lut[0]) * lut_size);
+	for (i = 0; i < lut_size; i++) {
+		uint16_t v  = (i * 0xffff / (lut_size - 1)) & 0xff00;
+		lut[i].red = v;
+		lut[i].green = v;
+		lut[i].blue = v;
+	}
+	igt_pipe_obj_replace_prop_blob(pipe_obj, IGT_CRTC_GAMMA_LUT,
+				       lut, sizeof(lut[0]) * lut_size);
+	free(lut);
+}
+
+static void clear_lut(data_t *data, enum pipe pipe)
+{
+	igt_pipe_t *pipe_obj = &data->display.pipes[pipe];
+
+	igt_pipe_obj_set_prop_value(pipe_obj, IGT_CRTC_GAMMA_LUT, 0);
+}
+
 static void coverage_premult_constant(data_t *data, enum pipe pipe, igt_plane_t *plane)
 {
 	igt_display_t *display = &data->display;
 	igt_crc_t ref_crc = {}, crc = {};
+	int i;
 
 	/* Set a background color on the primary fb for testing */
-	if (plane->type != DRM_PLANE_TYPE_PRIMARY)
-		igt_plane_set_fb(igt_pipe_get_plane_type(&display->pipes[pipe], DRM_PLANE_TYPE_PRIMARY), &data->gray_fb);
+	if (plane->type != DRM_PLANE_TYPE_PRIMARY) {
+		set_lut(data, pipe);
+		igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
+	}
 
 	igt_plane_set_prop_enum(plane, IGT_PLANE_PIXEL_BLEND_MODE, "Coverage");
 	igt_plane_set_fb(plane, &data->argb_fb_cov_7e);
 	igt_display_commit2(display, COMMIT_ATOMIC);
 	igt_pipe_crc_start(data->pipe_crc);
-	igt_pipe_crc_get_single(data->pipe_crc, &ref_crc);
+	igt_pipe_crc_get_current(display->drm_fd, data->pipe_crc, &ref_crc);
 
 	igt_plane_set_prop_enum(plane, IGT_PLANE_PIXEL_BLEND_MODE, "Pre-multiplied");
 	igt_plane_set_fb(plane, &data->argb_fb_7e);
@@ -470,6 +502,7 @@ static void coverage_premult_constant(data_t *data, enum pipe pipe, igt_plane_t
 	igt_pipe_crc_get_current(display->drm_fd, data->pipe_crc, &crc);
 	igt_assert_crc_equal(&ref_crc, &crc);
 
+	clear_lut(data, pipe);
 	igt_pipe_crc_stop(data->pipe_crc);
 }
 
-- 
2.7.4

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

  parent reply	other threads:[~2021-06-19  8:18 UTC|newest]

Thread overview: 97+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-01 11:45 [igt-dev] [PATCH i-g-t] [RFC] tests/kms_plane_alpha_blend: Fix coverage-vs-premult-vs-constant tests Vidya Srinivas
2021-06-01 13:41 ` Petri Latvala
2021-06-01 14:12   ` [Intel-gfx] " Srinivas, Vidya
2021-06-01 14:08 ` [Intel-gfx] [PATCH i-g-t] [RFC] tests/kms_plane_alpha_blend: Don't set primary fb color in coverage-vs-premult-vs-constant Vidya Srinivas
2021-06-11  3:40   ` [igt-dev] " Modem, Bhanuprakash
2021-06-11  7:30     ` Srinivas, Vidya
2021-06-11 12:57       ` Srinivas, Vidya
2021-06-15  8:25         ` Srinivas, Vidya
2021-06-18  6:24           ` Srinivas, Vidya
2021-06-01 14:54 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_plane_alpha_blend: Fix coverage-vs-premult-vs-constant tests (rev2) Patchwork
2021-06-01 19:16 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2021-06-04 18:41 ` [igt-dev] [PATCH i-g-t] [RFC] tests/kms_plane_alpha_blend: Fix coverage-vs-premult-vs-constant tests Mark Yacoub
2021-06-05  5:47   ` Srinivas, Vidya
2021-06-11 12:44 ` [igt-dev] [PATCH i-g-t] tests/kms_plane_alpha_blend: Fix alpha in coverage-vs-premult-vs-constant Vidya Srinivas
2021-06-18  8:52   ` Juha-Pekka Heikkila
2021-06-18  8:58     ` Srinivas, Vidya
2021-06-18 10:26       ` Juha-Pekka Heikkila
2021-06-18 10:31         ` Srinivas, Vidya
2021-06-18 18:54           ` Srinivas, Vidya
2021-06-18 20:24             ` Juha-Pekka Heikkilä
2021-06-19  3:10               ` Srinivas, Vidya
2021-06-19  8:24                 ` Srinivas, Vidya
2021-06-21  8:04                   ` Juha-Pekka Heikkila
2021-06-21  8:24                     ` Srinivas, Vidya
2021-06-21 13:32                     ` Srinivas, Vidya
2021-06-23  5:21                       ` Srinivas, Vidya
2021-06-23  7:42                         ` Juha-Pekka Heikkila
2021-06-23 10:21                           ` Srinivas, Vidya
2021-06-24  3:54                             ` Srinivas, Vidya
2021-06-19  8:08   ` Vidya Srinivas [this message]
2021-06-19  9:21     ` [igt-dev] [PATCH i-g-t] tests/kms_plane_alpha_blend: Limit pipe output to 8bpc for coverage-vs-premult-vs-constant Juha-Pekka Heikkilä
2021-06-19 11:41       ` Srinivas, Vidya
2021-06-19 17:21         ` Srinivas, Vidya
2021-06-19 17:07     ` [igt-dev] [PATCH i-g-t] tests/kms_plane_alpha_blend: Use alpha for primary plane " Vidya Srinivas
2021-06-21 13:22       ` Vidya Srinivas
2021-06-28 16:47         ` [igt-dev] [PATCH i-g-t] tests/kms_plane_alpha_blend: Use black " Vidya Srinivas
2021-07-03 15:52           ` [igt-dev] [PATCH i-g-t] tests/kms_plane_alpha_blend: Dont commit primary for 6bpc display in coverage-vs-premult-vs-none Vidya Srinivas
2021-07-05 14:38             ` Srinivas, Vidya
2021-07-06  7:06               ` Shankar, Uma
2021-07-06  7:23                 ` Srinivas, Vidya
2021-07-06 15:41                 ` Srinivas, Vidya
2021-07-06 15:28             ` [igt-dev] [PATCH i-g-t] tests/kms_plane_alpha_blend: Skip coverage-vs-premult-vs-none for 6bpc panels Vidya Srinivas
2021-07-07 16:22               ` [igt-dev] [PATCH i-g-t] tests/kms_plane_alpha_blend: Skip crc in " Vidya Srinivas
2021-07-08  8:36                 ` Shankar, Uma
2021-07-08  9:04                 ` [igt-dev] [PATCH i-g-t] tests/kms_plane_alpha_blend: Skip crc assertion " Vidya Srinivas
2021-07-08  9:30                   ` Vidya Srinivas
2021-07-08 10:45                     ` Modem, Bhanuprakash
2021-07-08 11:32                       ` Srinivas, Vidya
2021-07-08 12:20                         ` Modem, Bhanuprakash
2021-07-08 12:44                           ` Srinivas, Vidya
2021-07-08 12:57                             ` Srinivas, Vidya
2021-07-08 13:34                           ` Shankar, Uma
2021-07-08 14:13                             ` Srinivas, Vidya
2021-07-08 14:19                               ` Srinivas, Vidya
2021-07-08 14:21                                 ` Modem, Bhanuprakash
2021-07-08 14:25                                   ` Srinivas, Vidya
2021-07-09  6:22                                     ` Srinivas, Vidya
2021-07-09  6:47                                       ` Modem, Bhanuprakash
2021-07-09  7:08                                         ` Srinivas, Vidya
2021-07-08 12:45                     ` [igt-dev] [PATCH i-g-t] tests/kms_plane_alpha_blend: Skip " Vidya Srinivas
2021-07-08 13:15                       ` Modem, Bhanuprakash
2021-07-08 14:07                       ` Vidya Srinivas
2021-07-08 14:14                         ` Vidya Srinivas
2021-07-09  6:55                           ` Vidya Srinivas
2021-07-09  6:57                             ` Vidya Srinivas
2021-07-09 10:48                               ` Modem, Bhanuprakash
2021-07-09 11:34                                 ` Srinivas, Vidya
2021-07-14  2:06                               ` Dixit, Ashutosh
2021-07-14  2:56                                 ` Srinivas, Vidya
2021-07-14  3:19                                   ` Dixit, Ashutosh
2021-07-14  4:08                                     ` Srinivas, Vidya
2021-07-14  8:12                                     ` Srinivas, Vidya
2021-07-08  9:15                 ` [igt-dev] [PATCH i-g-t] tests/kms_plane_alpha_blend: Skip crc in " Modem, Bhanuprakash
2021-07-08  9:26                   ` Srinivas, Vidya
2021-06-11 13:29 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_plane_alpha_blend: Fix coverage-vs-premult-vs-constant tests (rev3) Patchwork
2021-06-11 15:46 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2021-06-19  8:56 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_plane_alpha_blend: Fix coverage-vs-premult-vs-constant tests (rev4) Patchwork
2021-06-19  9:52 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2021-06-19 18:05 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_plane_alpha_blend: Fix coverage-vs-premult-vs-constant tests (rev5) Patchwork
2021-06-19 18:59 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2021-06-21 14:54 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_plane_alpha_blend: Fix coverage-vs-premult-vs-constant tests (rev6) Patchwork
2021-06-21 17:16 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2021-06-28 18:32 ` [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_plane_alpha_blend: Fix coverage-vs-premult-vs-constant tests (rev7) Patchwork
2021-07-03 16:39 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_plane_alpha_blend: Fix coverage-vs-premult-vs-constant tests (rev8) Patchwork
2021-07-03 17:49 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2021-07-05 15:08 ` [igt-dev] ✗ Fi.CI.BUILD: failure for tests/kms_plane_alpha_blend: Fix coverage-vs-premult-vs-constant tests (rev9) Patchwork
2021-07-06 15:53 ` [igt-dev] ✗ GitLab.Pipeline: warning for tests/kms_plane_alpha_blend: Fix coverage-vs-premult-vs-constant tests (rev10) Patchwork
2021-07-06 16:09 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
2021-07-06 19:47 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2021-07-07 17:33 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_plane_alpha_blend: Fix coverage-vs-premult-vs-constant tests (rev11) Patchwork
2021-07-07 21:51 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2021-07-08 11:01 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_plane_alpha_blend: Fix coverage-vs-premult-vs-constant tests (rev13) Patchwork
2021-07-08 14:00 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2021-07-08 17:21 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_plane_alpha_blend: Fix coverage-vs-premult-vs-constant tests (rev16) Patchwork
2021-07-09  2:13 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2021-07-09  7:56 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_plane_alpha_blend: Fix coverage-vs-premult-vs-constant tests (rev18) Patchwork
2021-07-09 20:55 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1624090135-437-1-git-send-email-vidya.srinivas@intel.com \
    --to=vidya.srinivas@intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox