On Mon, Jan 23, 2017 at 10:21 PM, Ben Widawsky <b...@bwidawsk.net> wrote:
> 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) > > Signed-off-by: Ben Widawsky <benjamin.widaw...@intel.com> > Acked-by: Daniel Stone <dani...@collabora.com> > Reviewed-by: Topi Pohjolainen <topi.pohjolai...@intel.com> > --- > src/mesa/drivers/dri/i965/brw_context.c | 14 ++++++++------ > src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 6 +++--- > src/mesa/drivers/dri/i965/intel_mipmap_tree.h | 2 +- > 3 files changed, 12 insertions(+), 10 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_context.c > b/src/mesa/drivers/dri/i965/brw_context.c > index 0b3ac897aa..d2b3140ea1 100644 > --- a/src/mesa/drivers/dri/i965/brw_context.c > +++ b/src/mesa/drivers/dri/i965/brw_context.c > @@ -1646,9 +1646,10 @@ 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)) > + return; > This causes us to leak the bo we created 5 lines earlier. > > if (_mesa_is_front_buffer_drawing(fb) && > (buffer->attachment == __DRI_BUFFER_FRONT_LEFT || > @@ -1704,9 +1705,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 8a30d72d4c..7d08bb6920 100644 > --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > @@ -915,7 +915,7 @@ intel_miptree_create_for_image(struct brw_context > *intel, > * 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, > drm_intel_bo *bo, > @@ -981,12 +981,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 cf8f1a7687..9b4c85e509 100644 > --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h > +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h > @@ -730,7 +730,7 @@ intel_miptree_create_for_image(struct brw_context > *intel, > uint32_t pitch, > uint32_t layout_flags); > > -void > +bool > intel_update_winsys_renderbuffer_miptree(struct brw_context *intel, > struct intel_renderbuffer *irb, > drm_intel_bo *bo, > -- > 2.11.0 > > _______________________________________________ > 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