[igt-dev] [Intel-gfx] [PATCH i-g-t 4/5] lib/igt_fb: Check for stride before creating cairo surface

Deepak Singh Rawat drawat at vmware.com
Thu Sep 6 22:24:49 UTC 2018


> Quoting Deepak Rawat (2018-09-06 01:03:49)
> > Cairo surface creation will fail if stride of provided buffer is not
> > same as expected by cairo. This fails for vmwgfx odd length framebuffer
> > as in vmwgfx stride is always width * bpp.
> >
> > Signed-off-by: Deepak Rawat <drawat at vmware.com>
> > ---
> >  lib/igt_fb.c | 3 +++
> >  1 file changed, 3 insertions(+)
> >
> > diff --git a/lib/igt_fb.c b/lib/igt_fb.c
> > index ba995a1a..2724e323 100644
> > --- a/lib/igt_fb.c
> > +++ b/lib/igt_fb.c
> > @@ -1349,6 +1349,9 @@ static void create_cairo_surface__gtt(int fd,
> struct igt_fb *fb)
> >                 ptr = gem_mmap__gtt(fd, fb->gem_handle, fb->size,
> >                                     PROT_READ | PROT_WRITE);
> >
> > +       igt_require(fb->stride == cairo_format_stride_for_width(
> > +               drm_format_to_cairo(fb->drm_format), fb->width));
> > +
> >         fb->cairo_surface =
> >                 cairo_image_surface_create_for_data(ptr,
> >                                                     drm_format_to_cairo(fb->drm_format),
> 
> Is there not a
> igt_require_f/igt_assert_f(cairo_surface_status(fb->cairo_surface) ==
> CAIRO_STATUS_SUCCESS,
> "Unable to create a cairo surface: %s",
> cairo_status_to_string(cairo_surface_status(fb->cairo_surface)));
> here?
> -Chris

Thanks Chris for the review.

No there wasn't a check like that but I guess I can add that instead of
checking for stride. 


More information about the igt-dev mailing list