[Mesa-dev] [PATCH v13 24/36] i965/miptree: Add a return for updating of winsys

Jason Ekstrand jason at jlekstrand.net
Fri May 19 21:30:37 UTC 2017


It's a bit annoying, but I think this would all make more sense if we moved
23 and 24 to before 19.  Then we could drop no_aux from 21.  Then again,
I'm sure Ben has some good reason why that's not practical and I'm fine
with leaving the order as-is.  It's hard to review but there's a lot of
detangling going on so I think that's somewhat expected.

On Fri, May 19, 2017 at 2:38 AM, Daniel Stone <daniels at collabora.com> wrote:

> From: Ben Widawsky <ben at 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.widawsky at intel.com>
> Acked-by: Daniel Stone <daniels at collabora.com>
> Reviewed-by: Topi Pohjolainen <topi.pohjolainen at intel.com> (v2)
> Signed-off-by: Daniel Stone <daniels at collabora.com>
> ---
>  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 1a2b64f73e..3ae84fd332 100644
> --- a/src/mesa/drivers/dri/i965/brw_context.c
> +++ b/src/mesa/drivers/dri/i965/brw_context.c
> @@ -1660,9 +1660,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 ||
> @@ -1721,9 +1724,10 @@ intel_update_image_buffer(struct brw_context
> *intel,
>     if (!buffer->aux_offset)
>        rb->no_aux = true;
>
> -   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 9dca5cc435..edda132f7b 100644
> --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
> +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
> @@ -870,7 +870,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,
>                                           struct brw_bo *bo,
> @@ -937,12 +937,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 8ec1278d0b..15e81300a2 100644
> --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
> +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
> @@ -717,7 +717,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,
>                                           struct brw_bo *bo,
> --
> 2.13.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170519/221752b2/attachment-0001.html>


More information about the mesa-dev mailing list