[igt-dev] [PATCH] [i-g-t] tests/kms_cursor_crc: Fix test intermittent failures on AMD gpu
Kamil Konieczny
kamil.konieczny at linux.intel.com
Fri Oct 13 11:38:41 UTC 2023
Hi Hersen,
On 2023-10-02 at 10:20:23 -0400, Hersen Wu wrote:
> Wait for two more vblanks before reading crc on AMD gpu.
>
> Without waiting for two vblanks, AMD cursor updates may not
> synchronized to the same frame of pipe, crc generated may
> not be reliable.
>
> Signed-off-by: Hersen Wu <hersenxs.wu at amd.com>
> ---
> tests/kms_cursor_crc.c | 15 ++++++++++++++-
> 1 file changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
> index ba29ff65d..e3259e147 100644
> --- a/tests/kms_cursor_crc.c
> +++ b/tests/kms_cursor_crc.c
> @@ -276,6 +276,15 @@ static void do_single_test(data_t *data, int x, int y, bool hw_test,
> restore_image(data, swbufidx, &((cursorarea){x, y, data->curw, data->curh}));
> igt_plane_set_fb(data->primary, &data->primary_fb[swbufidx]);
> igt_display_commit(display);
> +
> + /* Wait for two more vblanks since cursor updates may not
> + * synchronized to the same frame on AMD HW
> + */
> + if (is_amdgpu_device(data->drm_fd))
----------- ^^^^^^^^^^^^^^^^
Why not
if(data->vblank_wait_count)
as for msm driver we also need to wait? Btw how it worked before
for msm without that wait here? If you need to wait 2+2 maybe set
it already to 4 and drop this hunk?
Regards,
Kamil
> + igt_wait_for_vblank_count(data->drm_fd,
> + display->pipes[data->pipe].crtc_offset,
> + data->vblank_wait_count);
> +
> igt_pipe_crc_get_current(data->drm_fd, pipe_crc, &crc);
> igt_assert_crc_equal(&crc, hwcrc);
> }
> @@ -1079,7 +1088,11 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL)
>
> igt_require_pipe_crc(data.drm_fd);
>
> - data.vblank_wait_count = is_msm_device(data.drm_fd) ? 2 : 1;
> + /* Wait for two more vblanks since cursor updates may not
> + * synchronized to the same frame on AMD HW
> + */
> + data.vblank_wait_count =
> + (is_msm_device(data.drm_fd) || is_amdgpu_device(data.drm_fd)) ? 2 : 1;
> }
>
> data.cursor_max_w = cursor_width;
> --
> 2.25.1
>
More information about the igt-dev
mailing list