All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t] test/kms_plane_lowres: Fix display_commit_mode() so it returns the crc
@ 2017-12-13  9:35 Maarten Lankhorst
  2017-12-13 10:00 ` ✓ Fi.CI.BAT: success for test/kms_plane_lowres: Fix display_commit_mode() so it returns the crc (rev4) Patchwork
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Maarten Lankhorst @ 2017-12-13  9:35 UTC (permalink / raw)
  To: intel-gfx

From: Arkadiusz Hiler <arkadiusz.hiler@intel.com>

Compiler complained on crc_lowres and crc_hires2 being uninitialized
and indeed, display_commit_mode() seems to have intention of retruning
the value through the parameter that is only a single pointer.

This couses only the local copy of the pointer, the one inside
display_commit_mode(), to be overwritten.

Let's fix that!

Also add missing hires crc comparison (M. Kahola).

v2: make display_commit_mode return just the last CRC
v3: Don't do memory allocations, it's hard. (Maarten)
v4: Use igt_pipe_crc_collect_crc() instead, cleans up crc handling a lot.

Cc: Mika Kahola <mika.kahola@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
---
 tests/kms_plane_lowres.c | 36 ++++++++++++------------------------
 1 file changed, 12 insertions(+), 24 deletions(-)

diff --git a/tests/kms_plane_lowres.c b/tests/kms_plane_lowres.c
index 85d3145de4b6..c224a1bf7026 100644
--- a/tests/kms_plane_lowres.c
+++ b/tests/kms_plane_lowres.c
@@ -125,17 +125,12 @@ test_fini(data_t *data, igt_output_t *output, enum pipe pipe)
 	data->fb = NULL;
 }
 
-static int
+static void
 display_commit_mode(igt_display_t *display, igt_pipe_crc_t *pipe_crc,
-		    enum pipe pipe, int flags, igt_crc_t *crc)
+		    enum pipe pipe, int flags, igt_crc_t *out_crc)
 {
 	char buf[256];
-	struct drm_event *e = (void *)buf;
-	unsigned int vblank_start, vblank_stop;
-	int n, ret;
-
-	vblank_start = kmstest_get_vblank(display->drm_fd, pipe,
-					  DRM_VBLANK_NEXTONMISS);
+	int ret;
 
 	ret = igt_display_try_commit_atomic(display, flags, NULL);
 	igt_skip_on(ret != 0);
@@ -144,14 +139,7 @@ display_commit_mode(igt_display_t *display, igt_pipe_crc_t *pipe_crc,
 	ret = read(display->drm_fd, buf, sizeof(buf));
 	igt_assert(ret >= 0);
 
-	vblank_stop = kmstest_get_vblank(display->drm_fd, pipe, 0);
-	igt_assert_eq(e->type, DRM_EVENT_FLIP_COMPLETE);
-	igt_reset_timeout();
-
-	n = igt_pipe_crc_get_crcs(pipe_crc, vblank_stop - vblank_start, &crc);
-	igt_assert_eq(n, vblank_stop - vblank_start);
-
-	return n;
+	igt_pipe_crc_collect_crc(pipe_crc, out_crc);
 }
 
 static void
@@ -218,11 +206,11 @@ static void
 test_plane_position_with_output(data_t *data, enum pipe pipe,
 				igt_output_t *output, uint64_t modifier)
 {
-	igt_crc_t *crc_hires1, *crc_hires2;
-	igt_crc_t *crc_lowres;
+	igt_crc_t crc_hires1, crc_hires2;
+	igt_crc_t crc_lowres;
 	drmModeModeInfo mode_lowres;
 	drmModeModeInfo *mode1, *mode2, *mode3;
-	int ret, n;
+	int ret;
 	int flags = DRM_MODE_PAGE_FLIP_EVENT | DRM_MODE_ATOMIC_ALLOW_MODESET;
 	igt_pipe_crc_t *pipe_crc;
 
@@ -237,10 +225,8 @@ test_plane_position_with_output(data_t *data, enum pipe pipe,
 	igt_skip_on(ret != 0);
 
 	pipe_crc = igt_pipe_crc_new(data->drm_fd, pipe, INTEL_PIPE_CRC_SOURCE_AUTO);
-	igt_pipe_crc_start(pipe_crc);
 
-	n = igt_pipe_crc_get_crcs(pipe_crc, 1, &crc_hires1);
-	igt_assert_eq(1, n);
+	igt_pipe_crc_collect_crc(pipe_crc, &crc_hires1);
 
 	igt_assert_plane_visible(data->drm_fd, pipe, true);
 
@@ -252,7 +238,7 @@ test_plane_position_with_output(data_t *data, enum pipe pipe,
 
 	check_mode(&mode_lowres, mode2);
 
-	display_commit_mode(&data->display, pipe_crc, pipe, flags, crc_lowres);
+	display_commit_mode(&data->display, pipe_crc, pipe, flags, &crc_lowres);
 
 	igt_assert_plane_visible(data->drm_fd, pipe, false);
 
@@ -264,10 +250,12 @@ test_plane_position_with_output(data_t *data, enum pipe pipe,
 
 	check_mode(mode1, mode3);
 
-	display_commit_mode(&data->display, pipe_crc, pipe, flags, crc_hires2);
+	display_commit_mode(&data->display, pipe_crc, pipe, flags, &crc_hires2);
 
 	igt_assert_plane_visible(data->drm_fd, pipe, true);
 
+	igt_assert_crc_equal(&crc_hires1, &crc_hires2);
+
 	igt_pipe_crc_stop(pipe_crc);
 	igt_pipe_crc_free(pipe_crc);
 
-- 
2.15.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 6+ messages in thread
* [PATCH i-g-t] test/kms_plane_lowres: Fix display_commit_mode() so it returns the crc
@ 2017-12-01 12:43 Arkadiusz Hiler
  0 siblings, 0 replies; 6+ messages in thread
From: Arkadiusz Hiler @ 2017-12-01 12:43 UTC (permalink / raw)
  To: intel-gfx

Compiler complained on crc_lowres and crc_hires2 being uninitialized
and indeed, display_commit_mode() seems to have intention of retruning
the value through the parameter that is only a single pointer.

This couses only the local copy of the pointer, the one inside
display_commit_mode(), to be overwritten.

Let's fix that!

Also add missing hires crc comparison (M. Kahola).

Cc: Mika Kahola <mika.kahola@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
---
 tests/kms_plane_lowres.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/tests/kms_plane_lowres.c b/tests/kms_plane_lowres.c
index 85d3145d..9cc9724c 100644
--- a/tests/kms_plane_lowres.c
+++ b/tests/kms_plane_lowres.c
@@ -127,7 +127,7 @@ test_fini(data_t *data, igt_output_t *output, enum pipe pipe)
 
 static int
 display_commit_mode(igt_display_t *display, igt_pipe_crc_t *pipe_crc,
-		    enum pipe pipe, int flags, igt_crc_t *crc)
+		    enum pipe pipe, int flags, igt_crc_t **crc)
 {
 	char buf[256];
 	struct drm_event *e = (void *)buf;
@@ -148,7 +148,7 @@ display_commit_mode(igt_display_t *display, igt_pipe_crc_t *pipe_crc,
 	igt_assert_eq(e->type, DRM_EVENT_FLIP_COMPLETE);
 	igt_reset_timeout();
 
-	n = igt_pipe_crc_get_crcs(pipe_crc, vblank_stop - vblank_start, &crc);
+	n = igt_pipe_crc_get_crcs(pipe_crc, vblank_stop - vblank_start, crc);
 	igt_assert_eq(n, vblank_stop - vblank_start);
 
 	return n;
@@ -252,7 +252,8 @@ test_plane_position_with_output(data_t *data, enum pipe pipe,
 
 	check_mode(&mode_lowres, mode2);
 
-	display_commit_mode(&data->display, pipe_crc, pipe, flags, crc_lowres);
+	display_commit_mode(&data->display, pipe_crc, pipe, flags, &crc_lowres);
+	free(crc_lowres);
 
 	igt_assert_plane_visible(data->drm_fd, pipe, false);
 
@@ -264,10 +265,15 @@ test_plane_position_with_output(data_t *data, enum pipe pipe,
 
 	check_mode(mode1, mode3);
 
-	display_commit_mode(&data->display, pipe_crc, pipe, flags, crc_hires2);
+	display_commit_mode(&data->display, pipe_crc, pipe, flags, &crc_hires2);
 
 	igt_assert_plane_visible(data->drm_fd, pipe, true);
 
+	igt_assert_crc_equal(crc_hires1, crc_hires2);
+
+	free(crc_hires1);
+	free(crc_hires2);
+
 	igt_pipe_crc_stop(pipe_crc);
 	igt_pipe_crc_free(pipe_crc);
 
-- 
2.13.6

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-12-13 11:34 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-12-13  9:35 [PATCH i-g-t] test/kms_plane_lowres: Fix display_commit_mode() so it returns the crc Maarten Lankhorst
2017-12-13 10:00 ` ✓ Fi.CI.BAT: success for test/kms_plane_lowres: Fix display_commit_mode() so it returns the crc (rev4) Patchwork
2017-12-13 10:33 ` [PATCH i-g-t] test/kms_plane_lowres: Fix display_commit_mode() so it returns the crc Mika Kahola
2017-12-13 11:08 ` ✗ Fi.CI.IGT: warning for test/kms_plane_lowres: Fix display_commit_mode() so it returns the crc (rev4) Patchwork
2017-12-13 11:34   ` Arkadiusz Hiler
  -- strict thread matches above, loose matches on Subject: below --
2017-12-01 12:43 [PATCH i-g-t] test/kms_plane_lowres: Fix display_commit_mode() so it returns the crc Arkadiusz Hiler

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.