On Fri, Jun 16, 2017 at 03:41:33PM -0700, Jason Ekstrand wrote: > From: Ben Widawsky <b...@bwidawsk.net> > > 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.widaw...@intel.com> > Acked-by: Daniel Stone <dani...@collabora.com> > Reviewed-by: Topi Pohjolainen <topi.pohjolai...@intel.com> (v2)
Version 3 also. > --- > src/mesa/drivers/dri/i965/brw_context.c | 16 ++++++++++------ > src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 6 +++--- > src/mesa/drivers/dri/i965/intel_mipmap_tree.h | 2 +- > 3 files changed, 14 insertions(+), 10 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_context.c > b/src/mesa/drivers/dri/i965/brw_context.c > index 5433f90..e963e13 100644 > --- a/src/mesa/drivers/dri/i965/brw_context.c > +++ b/src/mesa/drivers/dri/i965/brw_context.c > @@ -1611,9 +1611,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 || > @@ -1669,9 +1672,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 && > diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > index 6e94ba3..893f13e 100644 > --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > @@ -957,7 +957,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, > @@ -1013,12 +1013,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* > diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h > b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h > index 9b6bc40..04aab2d 100644 > --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h > +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h > @@ -701,7 +701,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, > -- > 2.5.0.400.gff86faf > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev