[PATCH i-g-t v2] tests/kms_universal_plane: Fix fb count mismatch

Sharma, Swati2 swati2.sharma at intel.com
Mon Apr 7 06:40:08 UTC 2025


Hi Nemesa,

If its fixing an existing bug, please add "Closes" tag with the
gitlab#

On 05-04-2025 03:48 pm, Nemesa Garg wrote:
> There is a mismatch in the count of fb before
> start and end of the test. This is because cursor
> fbs still not removed and we are counting the fbs.
> Add a 2 vblank wait before counting the fbs so that
> all cursors fbs gets removed.
> Since unpinning of cursor fb occurs during vblank in xe,
> we need to wait atleast 1 vblank for driver to remove
> cursor fb. We need 1 additional vblank because vblank
> event is scheduled before unpinning.
>
> v2: Use is_xe_device[Chaitanya]
>
> Signed-off-by: Nemesa Garg <nemesa.garg at intel.com>
> ---
>   tests/kms_universal_plane.c | 10 ++++++++++
>   1 file changed, 10 insertions(+)
>
> diff --git a/tests/kms_universal_plane.c b/tests/kms_universal_plane.c
> index 8e0b4dda0..2d9716575 100644
> --- a/tests/kms_universal_plane.c
> +++ b/tests/kms_universal_plane.c
> @@ -703,6 +703,16 @@ cursor_leak_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
>   			    COMMIT_ATOMIC : COMMIT_LEGACY);
>   	cursor_leak_test_fini(data, output, &background_fb, cursor_fb);
>   
> +	/* Since unpinning of cursor fb occurs during vblank in xe, we need
> +	 * to wait atleast 1 vblank for driver to remove cursor fb. We need
> +	 * 1 additional vblank because vblank event is scheduled before
> +	 * unpinning. Therefore add 2 vblank wait to ensure that all
> +	 * cursor-related framebuffers can be removed before counting the
> +	 * framebuffer.
> +	 */
> +	if (is_xe_device(data->drm_fd))
> +		igt_wait_for_vblank_count(data->drm_fd, data->display.pipes[pipe].crtc_offset, 2);
> +
>   	/* We should be back to the same framebuffer count as when we started */
>   	count2 = intel_gem_fb_count(data);
>   



More information about the igt-dev mailing list