mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 05:18:08 +02:00
dri: fromPlanar() can return NULL as a valid result
It was assumed that fromPlanar() could return NULL to mean that the planar image is the same as the parent DRI image. That assumption wasn't made everywhere though. Let's fix things and make sure that all callers understand a NULL result Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Daniel Stone <daniels@collabora.com>
This commit is contained in:
parent
f0654dfa65
commit
a34715ad9c
4 changed files with 10 additions and 8 deletions
|
|
@ -1966,7 +1966,8 @@ dri2_create_image_wayland_wl_buffer(_EGLDisplay *disp, _EGLContext *ctx,
|
|||
}
|
||||
|
||||
dri_image = dri2_dpy->image->fromPlanar(buffer->driver_buffer, plane, NULL);
|
||||
|
||||
if (dri_image == NULL && plane == 0)
|
||||
dri_image = dri2_dpy->image->dupImage(buffer->driver_buffer, NULL);
|
||||
if (dri_image == NULL) {
|
||||
_eglError(EGL_BAD_PARAMETER, "dri2_create_image_wayland_wl_buffer");
|
||||
return NULL;
|
||||
|
|
|
|||
|
|
@ -814,13 +814,10 @@ create_wl_buffer(struct dri2_egl_display *dri2_dpy,
|
|||
int stride, offset;
|
||||
int fd = -1;
|
||||
|
||||
if (i == 0)
|
||||
p_image = image;
|
||||
else
|
||||
p_image = dri2_dpy->image->fromPlanar(image, i, NULL);
|
||||
p_image = dri2_dpy->image->fromPlanar(image, i, NULL);
|
||||
if (!p_image) {
|
||||
zwp_linux_buffer_params_v1_destroy(params);
|
||||
return NULL;
|
||||
assert(i == 0);
|
||||
p_image = image;
|
||||
}
|
||||
|
||||
query = dri2_dpy->image->queryImage(p_image,
|
||||
|
|
|
|||
|
|
@ -849,6 +849,7 @@ gbm_dri_bo_get_offset(struct gbm_bo *_bo, int plane)
|
|||
dri->image->queryImage(image, __DRI_IMAGE_ATTRIB_OFFSET, &offset);
|
||||
dri->image->destroyImage(image);
|
||||
} else {
|
||||
assert(plane == 0);
|
||||
dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_OFFSET, &offset);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1288,7 +1288,10 @@ loader_dri3_create_image(xcb_connection_t *c,
|
|||
|
||||
ret = image->fromPlanar(image_planar, 0, loaderPrivate);
|
||||
|
||||
image->destroyImage(image_planar);
|
||||
if (!ret)
|
||||
ret = image_planar;
|
||||
else
|
||||
image->destroyImage(image_planar);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue