[igt-dev] [PATCH i-g-t v2] tests/i915/kms_big_fb: First async flip discarded on i915

Juha-Pekka Heikkila juhapekka.heikkila at gmail.com
Wed Aug 17 11:31:32 UTC 2022


Look ok to me. There was some new failures on ci run but they don't seem 
to relate to this patch.

Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>

On 17.8.2022 7.17, Karthik B S wrote:
> Display 13 onwards, i915 uses the first async flip to update the
> watermarks as per the watermark optimization. Hence the actual
> async flip will happen from the subsequent flips.
> 
> To handle this, a dummy async flip has to be done in the async flip
> subtests to allow the KMD to perform the watermark related updates
> before writing to the surface base address.
> 
> Signed-off-by: Karthik B S <karthik.b.s at intel.com>
> ---
>   tests/i915/kms_big_fb.c | 10 ++++++++++
>   1 file changed, 10 insertions(+)
> 
> diff --git a/tests/i915/kms_big_fb.c b/tests/i915/kms_big_fb.c
> index d50fde45..0c4cd95e 100644
> --- a/tests/i915/kms_big_fb.c
> +++ b/tests/i915/kms_big_fb.c
> @@ -518,6 +518,16 @@ max_hw_stride_async_flip_test(data_t *data)
>   		igt_display_commit_atomic(&data->display,
>   					  DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
>   
> +		/* First async flip on Gen13+ will be treated as a sync flip*/
> +		if (intel_display_ver(data->devid) >= 13) {
> +			do {
> +				ret = drmModePageFlip(data->drm_fd, data->output->config.crtc->crtc_id,
> +						      data->big_fb.fb_id,
> +						      DRM_MODE_PAGE_FLIP_ASYNC, NULL);
> +			} while (ret == -EBUSY);
> +			igt_assert(ret == 0);
> +		}
> +
>   		igt_wait_for_vblank(data->drm_fd, data->display.pipes[primary->pipe->pipe].crtc_offset);
>   		startframe = kmstest_get_vblank(data->drm_fd, data->pipe, 0) + 1;
>   



More information about the igt-dev mailing list