[igt-dev] [PATCH i-g-t v1] tests/kms_cursor_crc: Wait extra vblank

Rob Clark robdclark at chromium.org
Thu Sep 15 02:23:54 UTC 2022


Having dealt with emulating legacy cursor updates on hw that doesn't
really provide non-vsync'd updates this is the right thing to do..
trying to provide frame accurate updates with legacy cursor in the
mix, and without dropping fps, is a losing proposition so let's just
update the tests to reflect reality on the ground

a-b

BR,
-R

On Wed, Sep 14, 2022 at 3:58 PM Jessica Zhang <quic_jesszhan at quicinc.com> wrote:
>
> Wait an extra vblank for legacy cursor ioctl to finish.
>
> Extra vblank wait is needed for both HW and SW test as the legacy cursor
> ioctl is called in both cases.
>
> Based on Rob's patch [1] and, similarly, fixes flaky results on MSM.
>
> Signed-off-by: Jessica Zhang <quic_jesszhan at quicinc.com>
>
> [1] https://patchwork.freedesktop.org/series/105999/
> ---
>  tests/kms_cursor_crc.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
> index 53f18f4f1add..272dcb7fa0a4 100644
> --- a/tests/kms_cursor_crc.c
> +++ b/tests/kms_cursor_crc.c
> @@ -202,8 +202,8 @@ static void do_single_test(data_t *data, int x, int y, bool hw_test,
>                 igt_display_commit(display);
>
>                 /* Extra vblank wait is because nonblocking cursor ioctl */
> -               igt_wait_for_vblank(data->drm_fd,
> -                               display->pipes[data->pipe].crtc_offset);
> +               igt_wait_for_vblank_count(data->drm_fd,
> +                               display->pipes[data->pipe].crtc_offset, 2);
>
>                 igt_pipe_crc_get_current(data->drm_fd, pipe_crc, hwcrc);
>
> @@ -243,8 +243,8 @@ static void do_single_test(data_t *data, int x, int y, bool hw_test,
>                 igt_plane_set_fb(data->primary, &data->primary_fb[swbufidx]);
>
>                 igt_display_commit(display);
> -               igt_wait_for_vblank(data->drm_fd,
> -                               display->pipes[data->pipe].crtc_offset);
> +               igt_wait_for_vblank_count(data->drm_fd,
> +                               display->pipes[data->pipe].crtc_offset, 2);
>
>                 igt_pipe_crc_get_current(data->drm_fd, pipe_crc, &crc);
>                 igt_assert_crc_equal(&crc, hwcrc);
> --
> 2.31.0
>


More information about the igt-dev mailing list