[igt-dev] [PATCH i-g-t 2/3] tests: Replace calls to igt_pipe_crc_drain + get_single with igt_pipe_crc_get_current()
Daniel Vetter
daniel at ffwll.ch
Tue Aug 14 15:18:25 UTC 2018
On Tue, Jul 24, 2018 at 03:59:26PM +0200, Maarten Lankhorst wrote:
> This is a more race free of accomplishing the same.
>
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
Grep says you missed a few. I'd also go even further and entirely remove
igt_pipe_crc_get_single - the only place it's safe to call is right after
_start, and there there's not really a functional difference between
get_single and get_current.
Anyway, on patch 1: Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>
Also Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch> if you respin
this one here to convert all places where we have drain+get_single.
-Daniel
> ---
> tests/kms_available_modes_crc.c | 3 +--
> tests/kms_cursor_legacy.c | 3 +--
> tests/kms_plane.c | 6 +-----
> tests/kms_plane_lowres.c | 6 ++----
> tests/kms_plane_multiple.c | 3 +--
> tests/kms_rotation_crc.c | 13 +++++--------
> 6 files changed, 11 insertions(+), 23 deletions(-)
>
> diff --git a/tests/kms_available_modes_crc.c b/tests/kms_available_modes_crc.c
> index b70ef5d7d4c0..69a6a37d8ebd 100644
> --- a/tests/kms_available_modes_crc.c
> +++ b/tests/kms_available_modes_crc.c
> @@ -400,8 +400,7 @@ test_one_mode(data_t* data, igt_output_t *output, igt_plane_t* plane,
> igt_display_commit2(&data->display, data->commit);
>
> if (do_crc) {
> - igt_pipe_crc_drain(data->pipe_crc);
> - igt_pipe_crc_get_single(data->pipe_crc, ¤t_crc);
> + igt_pipe_crc_get_current(data->gfx_fd, data->pipe_crc, ¤t_crc);
>
> if (plane->type != DRM_PLANE_TYPE_CURSOR) {
> if (!igt_check_crc_equal(¤t_crc,
> diff --git a/tests/kms_cursor_legacy.c b/tests/kms_cursor_legacy.c
> index 85340d43e5b6..82ceebcb0809 100644
> --- a/tests/kms_cursor_legacy.c
> +++ b/tests/kms_cursor_legacy.c
> @@ -1334,8 +1334,7 @@ static void flip_vs_cursor_busy_crc(igt_display_t *display, bool atomic)
>
> igt_assert_eq(get_vblank(display->drm_fd, pipe, 0), vblank_start);
>
> - igt_pipe_crc_drain(pipe_crc);
> - igt_pipe_crc_get_single(pipe_crc, &test_crc);
> + igt_pipe_crc_get_current(display->drm_fd, pipe_crc, &test_crc);
>
> igt_spin_batch_free(display->drm_fd, spin);
>
> diff --git a/tests/kms_plane.c b/tests/kms_plane.c
> index f9e123f0d1ea..3999dde8f694 100644
> --- a/tests/kms_plane.c
> +++ b/tests/kms_plane.c
> @@ -419,11 +419,7 @@ static void test_format_plane_color(data_t *data, enum pipe pipe,
> igt_plane_set_fb(plane, fb);
>
> igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_UNIVERSAL);
> -
> - /* make sure the crc we get is for the new fb */
> - igt_wait_for_vblank(data->drm_fd, pipe);
> - igt_pipe_crc_drain(data->pipe_crc);
> - igt_pipe_crc_get_single(data->pipe_crc, crc);
> + igt_pipe_crc_get_current(data->display.drm_fd, data->pipe_crc, crc);
>
> igt_remove_fb(data->drm_fd, &old_fb);
> }
> diff --git a/tests/kms_plane_lowres.c b/tests/kms_plane_lowres.c
> index d1e4b3ca536e..5e83ef5630b5 100644
> --- a/tests/kms_plane_lowres.c
> +++ b/tests/kms_plane_lowres.c
> @@ -221,8 +221,7 @@ test_plane_position_with_output(data_t *data, enum pipe pipe,
> check_mode(&mode_lowres, mode2);
>
> igt_display_commit2(&data->display, COMMIT_ATOMIC);
> - igt_pipe_crc_drain(pipe_crc);
> - igt_pipe_crc_get_single(pipe_crc, &crc_lowres);
> + igt_pipe_crc_get_current(data->display.drm_fd, pipe_crc, &crc_lowres);
>
> igt_assert_plane_visible(data->drm_fd, pipe, false);
>
> @@ -236,8 +235,7 @@ test_plane_position_with_output(data_t *data, enum pipe pipe,
>
> igt_display_commit2(&data->display, COMMIT_ATOMIC);
>
> - igt_pipe_crc_drain(pipe_crc);
> - igt_pipe_crc_get_single(pipe_crc, &crc_hires2);
> + igt_pipe_crc_get_current(data->display.drm_fd, pipe_crc, &crc_hires2);
>
> igt_assert_plane_visible(data->drm_fd, pipe, true);
>
> diff --git a/tests/kms_plane_multiple.c b/tests/kms_plane_multiple.c
> index e61bc84624b3..a53be00141f0 100644
> --- a/tests/kms_plane_multiple.c
> +++ b/tests/kms_plane_multiple.c
> @@ -276,8 +276,7 @@ test_plane_position_with_output(data_t *data, enum pipe pipe,
>
> igt_display_commit2(&data->display, COMMIT_ATOMIC);
>
> - igt_pipe_crc_drain(data->pipe_crc);
> - igt_pipe_crc_get_single(data->pipe_crc, &crc);
> + igt_pipe_crc_get_current(data->display.drm_fd, data->pipe_crc, &crc);
>
> igt_assert_crc_equal(&data->ref_crc, &crc);
>
> diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
> index 6cb5858adb0f..b994cc5d24fe 100644
> --- a/tests/kms_rotation_crc.c
> +++ b/tests/kms_rotation_crc.c
> @@ -235,8 +235,8 @@ static void prepare_fbs(data_t *data, igt_output_t *output,
> if (plane->type != DRM_PLANE_TYPE_CURSOR)
> igt_plane_set_position(plane, data->pos_x, data->pos_y);
> igt_display_commit2(display, COMMIT_ATOMIC);
> - igt_pipe_crc_drain(data->pipe_crc);
> - igt_pipe_crc_get_single(data->pipe_crc, &data->flip_crc);
> +
> + igt_pipe_crc_get_current(display->drm_fd, data->pipe_crc, &data->flip_crc);
>
> /*
> * Prepare the non-rotated flip fb.
> @@ -259,8 +259,7 @@ static void prepare_fbs(data_t *data, igt_output_t *output,
> igt_plane_set_position(plane, data->pos_x, data->pos_y);
> igt_display_commit2(display, COMMIT_ATOMIC);
>
> - igt_pipe_crc_drain(data->pipe_crc);
> - igt_pipe_crc_get_single(data->pipe_crc, &data->ref_crc);
> + igt_pipe_crc_get_current(display->drm_fd, data->pipe_crc, &data->ref_crc);
>
> /*
> * Prepare the non-rotated reference fb.
> @@ -310,8 +309,7 @@ static void test_single_case(data_t *data, enum pipe pipe,
> igt_assert_eq(ret, 0);
>
> /* Check CRC */
> - igt_pipe_crc_drain(data->pipe_crc);
> - igt_pipe_crc_get_single(data->pipe_crc, &crc_output);
> + igt_pipe_crc_get_current(display->drm_fd, data->pipe_crc, &crc_output);
> igt_assert_crc_equal(&data->ref_crc, &crc_output);
>
> /*
> @@ -334,8 +332,7 @@ static void test_single_case(data_t *data, enum pipe pipe,
> igt_assert_eq(ret, 0);
> }
> kmstest_wait_for_pageflip(data->gfx_fd);
> - igt_pipe_crc_drain(data->pipe_crc);
> - igt_pipe_crc_get_single(data->pipe_crc, &crc_output);
> + igt_pipe_crc_get_current(display->drm_fd, data->pipe_crc, &crc_output);
> igt_assert_crc_equal(&data->flip_crc,
> &crc_output);
> }
> --
> 2.18.0
>
> _______________________________________________
> igt-dev mailing list
> igt-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the igt-dev
mailing list