[igt-dev] [PATCH i-g-t 2/5] igt/prime_vgem: Skip flip if no display

Daniel Vetter daniel at ffwll.ch
Mon Oct 1 08:49:07 UTC 2018


On Fri, Sep 14, 2018 at 09:13:07PM +0100, Chris Wilson wrote:
> We try flipping a vgem surface onto a  i915 scanout. However, if there
> is no display we want to disable the kms interface, including the addfb
> ioctl. On such systems the call to kms_addfb will naturally fail and the
> test cannot be run.
> 
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> ---
>  tests/prime_vgem.c | 11 +++++++----
>  1 file changed, 7 insertions(+), 4 deletions(-)
> 
> diff --git a/tests/prime_vgem.c b/tests/prime_vgem.c
> index b821fbb8c..a76d3797b 100644
> --- a/tests/prime_vgem.c
> +++ b/tests/prime_vgem.c
> @@ -762,10 +762,13 @@ static void test_flip(int i915, int vgem, unsigned hang)
>  		igt_assert(handle[i]);
>  		close(fd);
>  
> -		do_or_die(__kms_addfb(i915, handle[i],
> -				      bo[i].width, bo[i].height, bo[i].pitch,
> -				      DRM_FORMAT_XRGB8888, I915_TILING_NONE, NULL,
> -				      LOCAL_DRM_MODE_FB_MODIFIERS, &fb_id[i]));
> +		/* May skip if i915 has no displays */
> +		igt_require(__kms_addfb(i915, handle[i],
> +					bo[i].width, bo[i].height, bo[i].pitch,
> +					DRM_FORMAT_XRGB8888,
> +					I915_TILING_NONE, NULL,
> +					LOCAL_DRM_MODE_FB_MODIFIERS,
> +					&fb_id[i]) == 0);

Hm, both here and in patch 1 I feel like this is super late to check for
requirements. I think for these low-level tests a kms_require_display
which checks for n_pipes > 0 && n_outputs > 0 would be good. Then we can
sprinkle these early (and keep the do_or_die here), plus it won't need a
comment about why we have the check since it's obvious from the name.
-Daniel

>  		igt_assert(fb_id[i]);
>  	}
>  
> -- 
> 2.19.0
> 
> _______________________________________________
> igt-dev mailing list
> igt-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the igt-dev mailing list