There is nothing particularly useful to do currently if the update fails, but there is no point carrying on either. As a result, this has a behavior change. v2: Make the return type a bool (Topi) v3: Don't leak the bo if update_winsys_renderbuffer fails. (Jason) Signed-off-by: Ben Widawsky <benjamin.widawsky@intel.com> Acked-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com> (v2) Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Chad Versace <chadversary@chromium.org>tags/17.2-branchpoint
@@ -1504,9 +1504,12 @@ intel_process_dri2_buffer(struct brw_context *brw, | |||
return; | |||
} | |||
intel_update_winsys_renderbuffer_miptree(brw, rb, bo, | |||
drawable->w, drawable->h, | |||
buffer->pitch); | |||
if (!intel_update_winsys_renderbuffer_miptree(brw, rb, bo, | |||
drawable->w, drawable->h, | |||
buffer->pitch)) { | |||
brw_bo_unreference(bo); | |||
return; | |||
} | |||
if (_mesa_is_front_buffer_drawing(fb) && | |||
(buffer->attachment == __DRI_BUFFER_FRONT_LEFT || | |||
@@ -1562,9 +1565,10 @@ intel_update_image_buffer(struct brw_context *intel, | |||
if (last_mt && last_mt->bo == buffer->bo) | |||
return; | |||
intel_update_winsys_renderbuffer_miptree(intel, rb, buffer->bo, | |||
buffer->width, buffer->height, | |||
buffer->pitch); | |||
if (!intel_update_winsys_renderbuffer_miptree(intel, rb, buffer->bo, | |||
buffer->width, buffer->height, | |||
buffer->pitch)) | |||
return; | |||
if (_mesa_is_front_buffer_drawing(fb) && | |||
buffer_type == __DRI_IMAGE_BUFFER_FRONT && |
@@ -1112,7 +1112,7 @@ intel_miptree_create_for_dri_image(struct brw_context *brw, | |||
* that will contain the actual rendering (which is lazily resolved to | |||
* irb->singlesample_mt). | |||
*/ | |||
void | |||
bool | |||
intel_update_winsys_renderbuffer_miptree(struct brw_context *intel, | |||
struct intel_renderbuffer *irb, | |||
struct brw_bo *bo, | |||
@@ -1168,12 +1168,12 @@ intel_update_winsys_renderbuffer_miptree(struct brw_context *intel, | |||
irb->mt = multisample_mt; | |||
} | |||
} | |||
return; | |||
return true; | |||
fail: | |||
intel_miptree_release(&irb->singlesample_mt); | |||
intel_miptree_release(&irb->mt); | |||
return; | |||
return false; | |||
} | |||
struct intel_mipmap_tree* |
@@ -691,7 +691,7 @@ intel_miptree_create_for_dri_image(struct brw_context *brw, | |||
__DRIimage *image, | |||
GLenum target); | |||
void | |||
bool | |||
intel_update_winsys_renderbuffer_miptree(struct brw_context *intel, | |||
struct intel_renderbuffer *irb, | |||
struct brw_bo *bo, |