diff options
author | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2015-10-09 18:36:24 +0300 |
---|---|---|
committer | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2015-10-09 18:36:24 +0300 |
commit | 106fe21373f9c3eadcd95fb4b48e452f9b328ffa (patch) | |
tree | 7c6183806e2b3ecc5b66d8abb1fb55ef8262c4c6 /lib/igt_fb.c | |
parent | 7eaae3c2013b6d4bdf11570d3fb9d95eb4978976 (diff) |
lib: Die if framebuffer GTT mapping fails
Cairo helpfully allocates a new buffer for us when
cairo_image_surface_create_for_data() is called with a NULL ptr. That
means if gem_mmap__gtt() fails, we get a totally silent failure and
nothing ever drawn into the framebuffer. Very confusing.
Put in an igt_assert() to make sure we managed to mmap something.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Stochastically-reviwewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'lib/igt_fb.c')
-rw-r--r-- | lib/igt_fb.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/igt_fb.c b/lib/igt_fb.c index 713bd506..e225f8ac 100644 --- a/lib/igt_fb.c +++ b/lib/igt_fb.c @@ -774,8 +774,11 @@ static void destroy_cairo_surface__gtt(void *arg) static void create_cairo_surface__gtt(int fd, struct igt_fb *fb) { + void *ptr = gem_mmap__gtt(fd, fb->gem_handle, fb->size, PROT_READ | PROT_WRITE); + igt_assert(ptr); + fb->cairo_surface = - cairo_image_surface_create_for_data(gem_mmap__gtt(fd, fb->gem_handle, fb->size, PROT_READ | PROT_WRITE), + cairo_image_surface_create_for_data(ptr, drm_format_to_cairo(fb->drm_format), fb->width, fb->height, fb->stride); |