[igt-dev] [PATCH i-g-t] tests/kms_async_flips: first async flip discarded on i915

Karthik B S karthik.b.s at intel.com
Fri Jun 10 10:19:59 UTC 2022


On 6/10/2022 1:18 PM, Arun R Murthy wrote:
> The i915 KMD will use the first async flip to update the watermarks as
> per the watermark optimization in DISPLAY13. Hence the actual async flip
> will happen from the subsequent flips.
> For alternate sync async test, a dummy async flip has to be done to
> allow the KMD to perform the watermark related updates before writing to
> the surface base address.
>
> Signed-off-by: Arun R Murthy <arun.r.murthy at intel.com>
Reviewed-by: Karthik B S <karthik.b.s at intel.com>
> ---
>   tests/kms_async_flips.c | 5 ++++-
>   1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
> index 4a0527dc..695aea74 100644
> --- a/tests/kms_async_flips.c
> +++ b/tests/kms_async_flips.c
> @@ -211,11 +211,14 @@ static void test_async_flip(data_t *data)
>   			 * In older platforms (<= Gen10), async address update bit is double buffered.
>   			 * So flip timestamp can be verified only from the second flip.
>   			 * The first async flip just enables the async address update.
> +			 * In platforms greater than DISPLAY13 the first async flip will be discarded
> +			 * in order to change the watermark levels as per the optimization. Hence the
> +			 * subsequent async flips will actually do the asynchronous flips.
>   			 */
>   			if (is_i915_device(data->drm_fd)) {
>   				uint32_t devid = intel_get_drm_devid(data->drm_fd);
>   
> -				if (IS_GEN9(devid) || IS_GEN10(devid)) {
> +				if (IS_GEN9(devid) || IS_GEN10(devid) || AT_LEAST_GEN(devid, 12)) {
>   					ret = drmModePageFlip(data->drm_fd, data->crtc_id,
>   							      data->bufs[frame % 4].fb_id,
>   							      flags, data);




More information about the igt-dev mailing list