[igt-dev] [PATCH i-g-t 3/6] lib/igt_fb: Check for cairo surface success

Ville Syrjälä ville.syrjala at linux.intel.com
Thu Oct 11 15:06:45 UTC 2018


On Wed, Oct 10, 2018 at 05:21:01PM -0700, Deepak Rawat wrote:
> For vmwgfx cairo surface creation fails due to stride mismatch, add a
> igt_require_f() for surface.

Hmm. What kind of pixel format are you using?

It seems to me cairo should be happy with just a 4 byte aligned
stride. How bad would it be to change vmw_dumb_create() to give
you that? Having working cairo stuff should make igt_fb much more
useful for you in general.

Alternative would to not use dumb buffers I suppose, but then
we'd need to make sure the igt_fb size calculations are OK for
vmwgfx. Currently igt_fb assumes Intel hw in the sense that
linear buffers will get a 64byte aligned stride.

> 
> v2: Check for surface creation failure.
> 
> Signed-off-by: Deepak Rawat <drawat at vmware.com>
> ---
>  lib/igt_fb.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/lib/igt_fb.c b/lib/igt_fb.c
> index 335ece69..1bb6d324 100644
> --- a/lib/igt_fb.c
> +++ b/lib/igt_fb.c
> @@ -1433,6 +1433,10 @@ static void create_cairo_surface__gtt(int fd, struct igt_fb *fb)
>  		cairo_image_surface_create_for_data(ptr,
>  						    drm_format_to_cairo(fb->drm_format),
>  						    fb->width, fb->height, fb->strides[0]);
> +	igt_require_f(cairo_surface_status(fb->cairo_surface) == CAIRO_STATUS_SUCCESS,
> +		      "Unable to create a cairo surface: %s\n",
> +		      cairo_status_to_string(cairo_surface_status(fb->cairo_surface)));
> +
>  	fb->domain = I915_GEM_DOMAIN_GTT;
>  
>  	cairo_surface_set_user_data(fb->cairo_surface,
> -- 
> 2.17.1
> 
> _______________________________________________
> igt-dev mailing list
> igt-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev

-- 
Ville Syrjälä
Intel


More information about the igt-dev mailing list