[igt-dev] [PATCH v2 1/7] lib/igt_fb: Fix creating FBs on platforms w/o HW detiling

Dixit, Ashutosh ashutosh.dixit at intel.com
Fri Jan 31 06:54:48 UTC 2020


For the entire v2 series:

Reviewed-by: Ashutosh Dixit <ashutosh.dixit at intel.com>

On Thu, 30 Jan 2020 10:30:55 -0800, Imre Deak wrote:
>
> On platforms w/o HW detiling don't fail creating the FB due to the
> expected error from the set_tiling IOCTL.
>
> Most of the tests use a cairo surface to draw, which don't depend on the
> HW detiling. Other tests (using lib/igt_draw.c or drawing to the FB
> directly, like kms_draw_crc, kms_frontbuffer) are failing atm and will
> need to be fixed separately.
>
> v2:
> - Simplify things by calling __gem_set_tiling() unconditionally. (Chris)
>
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
> Signed-off-by: Imre Deak <imre.deak at intel.com>
> ---
>  lib/igt_fb.c | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/lib/igt_fb.c b/lib/igt_fb.c
> index c81b9de8..87fe5883 100644
> --- a/lib/igt_fb.c
> +++ b/lib/igt_fb.c
> @@ -943,10 +943,14 @@ static int create_bo_for_fb(struct igt_fb *fb)
>		fb->is_dumb = false;
>
>		if (is_i915_device(fd)) {
> +			int err;
> +
>			fb->gem_handle = gem_create(fd, fb->size);
> -			gem_set_tiling(fd, fb->gem_handle,
> -				       igt_fb_mod_to_tiling(fb->modifier),
> -				       fb->strides[0]);
> +			err = __gem_set_tiling(fd, fb->gem_handle,
> +					       igt_fb_mod_to_tiling(fb->modifier),
> +					       fb->strides[0]);
> +			/* If we can't use fences, we won't use ggtt detiling later. */
> +			igt_assert(err == 0 || err == -EOPNOTSUPP);
>		} else if (is_vc4_device(fd)) {
>			fb->gem_handle = igt_vc4_create_bo(fd, fb->size);
>
> --
> 2.23.1
>
> _______________________________________________
> igt-dev mailing list
> igt-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev


More information about the igt-dev mailing list