[igt-dev] [PATCH] tests/kms_cursor_legacy: allow an extra vblank in atomic-transitions tests

Rodrigo Siqueira Jordao Rodrigo.Siqueira at amd.com
Wed Oct 19 23:06:49 UTC 2022



On 2022-10-07 19:09, Alex Hung wrote:
> On i915 devices:
> kmstest_get_vblank() calls a drm_ioctl(DRM_IOCTL_WAIT_VBLANK), but
> vblanks are not updated until a following read() op triggers kernel to
> update vblank, ex. "[drm:drm_handle_vblank [drm]] vblank event on xxx".
> 
> However, this is not the case for all devices:
> kmstest_get_vblank() triggers a drm_ioctl(DRM_IOCTL_WAIT_VBLANK),
> and then drm_wait_vblank_ioctl() in drm_vblank.c is called and
> returns vblank, ex. "[drm]] crtc 0 returning xxx to client" right away.
> In this scenario, the read() op does nothing related to vblank.
> 
> Since the vblank can be updated before the read(), the extra vblank
> in commit da0b6abeshould also be allowed before the read().
> 
> Signed-off-by: Alex Hung <alex.hung at amd.com>
> ---
>   tests/kms_cursor_legacy.c | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/tests/kms_cursor_legacy.c b/tests/kms_cursor_legacy.c
> index 1ad92eaa..868cfb97 100644
> --- a/tests/kms_cursor_legacy.c
> +++ b/tests/kms_cursor_legacy.c
> @@ -802,6 +802,8 @@ static void flip_vs_cursor(igt_display_t *display, enum flip_test mode, int nloo
>   		/* Nor should it have delayed the following cursor update */
>   		if (!cursor_slowpath(display, mode))
>   			igt_assert_eq(kmstest_get_vblank(display->drm_fd, pipe, 0), vblank_start);
> +		else if (mode_requires_extra_vblank(mode))
> +			igt_assert_lte(kmstest_get_vblank(display->drm_fd, pipe, 0), vblank_start + 2);
>   		else
>   			igt_assert_lte(kmstest_get_vblank(display->drm_fd, pipe, 0), vblank_start + 1);
>   

Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira at amd.com>


More information about the igt-dev mailing list