[Mesa-dev] [PATCH 2/5] u_upload_mgr: remove the return value from u_upload_alloc

Brian Paul brianp at vmware.com
Wed Sep 2 06:56:48 PDT 2015


On 09/02/2015 07:44 AM, Marek Olšák wrote:
> From: Marek Olšák <marek.olsak at amd.com>
>
> The return buffer or the returned pointer can be used instead.
> ---
>   src/gallium/auxiliary/util/u_upload_mgr.c | 28 ++++++++++++++--------------
>   src/gallium/auxiliary/util/u_upload_mgr.h | 12 ++++++------
>   src/gallium/auxiliary/util/u_vbuf.c       | 27 +++++++++++++--------------
>   src/mesa/state_tracker/st_cb_bitmap.c     |  5 +++--
>   src/mesa/state_tracker/st_cb_clear.c      |  7 ++++---
>   src/mesa/state_tracker/st_cb_drawpixels.c |  5 +++--
>   src/mesa/state_tracker/st_cb_drawtex.c    |  7 ++++---
>   7 files changed, 47 insertions(+), 44 deletions(-)
>
> diff --git a/src/gallium/auxiliary/util/u_upload_mgr.c b/src/gallium/auxiliary/util/u_upload_mgr.c
> index c30386e..6c8930f 100644
> --- a/src/gallium/auxiliary/util/u_upload_mgr.c
> +++ b/src/gallium/auxiliary/util/u_upload_mgr.c
> @@ -179,12 +179,12 @@ u_upload_alloc_buffer( struct u_upload_mgr *upload,
>      return PIPE_OK;
>   }
>
> -enum pipe_error u_upload_alloc( struct u_upload_mgr *upload,
> -                                unsigned min_out_offset,
> -                                unsigned size,
> -                                unsigned *out_offset,
> -                                struct pipe_resource **outbuf,
> -                                void **ptr )
> +void u_upload_alloc(struct u_upload_mgr *upload,
> +                    unsigned min_out_offset,
> +                    unsigned size,
> +                    unsigned *out_offset,
> +                    struct pipe_resource **outbuf,
> +                    void **ptr)

As long as you're changing function return types, can you fix the 
formatting:

void
u_upload_alloc(struct u_upload_mgr *upload,
...


Reviewed-by: Brian Paul <brianp at vmware.com>


>   {
>      unsigned alloc_size = align(size, upload->alignment);
>      unsigned alloc_offset = align(min_out_offset, upload->alignment);
> @@ -200,7 +200,7 @@ enum pipe_error u_upload_alloc( struct u_upload_mgr *upload,
>            *out_offset = ~0;
>            pipe_resource_reference(outbuf, NULL);
>            *ptr = NULL;
> -         return ret;
> +         return;
>         }
>
>         buffer_size = upload->buffer->width0;
> @@ -219,7 +219,7 @@ enum pipe_error u_upload_alloc( struct u_upload_mgr *upload,
>            *out_offset = ~0;
>            pipe_resource_reference(outbuf, NULL);
>            *ptr = NULL;
> -         return PIPE_ERROR_OUT_OF_MEMORY;
> +         return;
>         }
>
>         upload->map -= offset;
> @@ -233,7 +233,6 @@ enum pipe_error u_upload_alloc( struct u_upload_mgr *upload,
>      *out_offset = offset;
>
>      upload->offset = offset + alloc_size;
> -   return PIPE_OK;
>   }
>
>   enum pipe_error u_upload_data( struct u_upload_mgr *upload,
> @@ -244,11 +243,12 @@ enum pipe_error u_upload_data( struct u_upload_mgr *upload,
>                                  struct pipe_resource **outbuf)
>   {
>      uint8_t *ptr;
> -   enum pipe_error ret = u_upload_alloc(upload, min_out_offset, size,
> -                                        out_offset, outbuf,
> -                                        (void**)&ptr);
> -   if (ret != PIPE_OK)
> -      return ret;
> +
> +   u_upload_alloc(upload, min_out_offset, size,
> +                  out_offset, outbuf,
> +                  (void**)&ptr);
> +   if (!outbuf)
> +      return PIPE_ERROR_OUT_OF_MEMORY;
>
>      memcpy(ptr, data, size);
>      return PIPE_OK;
> diff --git a/src/gallium/auxiliary/util/u_upload_mgr.h b/src/gallium/auxiliary/util/u_upload_mgr.h
> index 63bf30e..2c31977 100644
> --- a/src/gallium/auxiliary/util/u_upload_mgr.h
> +++ b/src/gallium/auxiliary/util/u_upload_mgr.h
> @@ -78,12 +78,12 @@ void u_upload_unmap( struct u_upload_mgr *upload );
>    * \param outbuf           Pointer to where the upload buffer will be returned.
>    * \param ptr              Pointer to the allocated memory that is returned.
>    */
> -enum pipe_error u_upload_alloc( struct u_upload_mgr *upload,
> -                                unsigned min_out_offset,
> -                                unsigned size,
> -                                unsigned *out_offset,
> -                                struct pipe_resource **outbuf,
> -                                void **ptr );
> +void u_upload_alloc(struct u_upload_mgr *upload,
> +                    unsigned min_out_offset,
> +                    unsigned size,
> +                    unsigned *out_offset,
> +                    struct pipe_resource **outbuf,
> +                    void **ptr);
>
>
>   /**
> diff --git a/src/gallium/auxiliary/util/u_vbuf.c b/src/gallium/auxiliary/util/u_vbuf.c
> index 02ae0b8..791d82b 100644
> --- a/src/gallium/auxiliary/util/u_vbuf.c
> +++ b/src/gallium/auxiliary/util/u_vbuf.c
> @@ -406,7 +406,6 @@ u_vbuf_translate_buffers(struct u_vbuf *mgr, struct translate_key *key,
>      struct pipe_resource *out_buffer = NULL;
>      uint8_t *out_map;
>      unsigned out_offset, mask;
> -   enum pipe_error err;
>
>      /* Get a translate object. */
>      tr = translate_cache_find(mgr->translate_cache, key);
> @@ -454,12 +453,12 @@ u_vbuf_translate_buffers(struct u_vbuf *mgr, struct translate_key *key,
>         assert((ib->buffer || ib->user_buffer) && ib->index_size);
>
>         /* Create and map the output buffer. */
> -      err = u_upload_alloc(mgr->uploader, 0,
> -                           key->output_stride * num_indices,
> -                           &out_offset, &out_buffer,
> -                           (void**)&out_map);
> -      if (err != PIPE_OK)
> -         return err;
> +      u_upload_alloc(mgr->uploader, 0,
> +                     key->output_stride * num_indices,
> +                     &out_offset, &out_buffer,
> +                     (void**)&out_map);
> +      if (!out_buffer)
> +         return PIPE_ERROR_OUT_OF_MEMORY;
>
>         if (ib->user_buffer) {
>            map = (uint8_t*)ib->user_buffer + offset;
> @@ -486,13 +485,13 @@ u_vbuf_translate_buffers(struct u_vbuf *mgr, struct translate_key *key,
>         }
>      } else {
>         /* Create and map the output buffer. */
> -      err = u_upload_alloc(mgr->uploader,
> -                           key->output_stride * start_vertex,
> -                           key->output_stride * num_vertices,
> -                           &out_offset, &out_buffer,
> -                           (void**)&out_map);
> -      if (err != PIPE_OK)
> -         return err;
> +      u_upload_alloc(mgr->uploader,
> +                     key->output_stride * start_vertex,
> +                     key->output_stride * num_vertices,
> +                     &out_offset, &out_buffer,
> +                     (void**)&out_map);
> +      if (!out_buffer)
> +         return PIPE_ERROR_OUT_OF_MEMORY;
>
>         out_offset -= key->output_stride * start_vertex;
>
> diff --git a/src/mesa/state_tracker/st_cb_bitmap.c b/src/mesa/state_tracker/st_cb_bitmap.c
> index 01a96c1..ce593a9 100644
> --- a/src/mesa/state_tracker/st_cb_bitmap.c
> +++ b/src/mesa/state_tracker/st_cb_bitmap.c
> @@ -349,8 +349,9 @@ setup_bitmap_vertex_data(struct st_context *st, bool normalized,
>         tBot = (GLfloat) height;
>      }
>
> -   if (u_upload_alloc(st->uploader, 0, 4 * sizeof(vertices[0]),
> -                      vbuf_offset, vbuf, (void **) &vertices) != PIPE_OK) {
> +   u_upload_alloc(st->uploader, 0, 4 * sizeof(vertices[0]),
> +                  vbuf_offset, vbuf, (void **) &vertices);
> +   if (!vbuf) {
>         return;
>      }
>
> diff --git a/src/mesa/state_tracker/st_cb_clear.c b/src/mesa/state_tracker/st_cb_clear.c
> index 137fac8..18efd14 100644
> --- a/src/mesa/state_tracker/st_cb_clear.c
> +++ b/src/mesa/state_tracker/st_cb_clear.c
> @@ -184,9 +184,10 @@ draw_quad(struct st_context *st,
>
>      vb.stride = 8 * sizeof(float);
>
> -   if (u_upload_alloc(st->uploader, 0, 4 * sizeof(vertices[0]),
> -                      &vb.buffer_offset, &vb.buffer,
> -                      (void **) &vertices) != PIPE_OK) {
> +   u_upload_alloc(st->uploader, 0, 4 * sizeof(vertices[0]),
> +                  &vb.buffer_offset, &vb.buffer,
> +                  (void **) &vertices);
> +   if (!vb.buffer) {
>         return;
>      }
>
> diff --git a/src/mesa/state_tracker/st_cb_drawpixels.c b/src/mesa/state_tracker/st_cb_drawpixels.c
> index b372697..152160e 100644
> --- a/src/mesa/state_tracker/st_cb_drawpixels.c
> +++ b/src/mesa/state_tracker/st_cb_drawpixels.c
> @@ -580,8 +580,9 @@ draw_quad(struct gl_context *ctx, GLfloat x0, GLfloat y0, GLfloat z,
>      struct pipe_resource *buf = NULL;
>      unsigned offset;
>
> -   if (u_upload_alloc(st->uploader, 0, 4 * sizeof(verts[0]), &offset,
> -                      &buf, (void **) &verts) != PIPE_OK) {
> +   u_upload_alloc(st->uploader, 0, 4 * sizeof(verts[0]), &offset,
> +                  &buf, (void **) &verts);
> +   if (!buf) {
>         return;
>      }
>
> diff --git a/src/mesa/state_tracker/st_cb_drawtex.c b/src/mesa/state_tracker/st_cb_drawtex.c
> index 2af4f6d..2634b09 100644
> --- a/src/mesa/state_tracker/st_cb_drawtex.c
> +++ b/src/mesa/state_tracker/st_cb_drawtex.c
> @@ -149,9 +149,10 @@ st_DrawTex(struct gl_context *ctx, GLfloat x, GLfloat y, GLfloat z,
>         GLfloat *vbuf = NULL;
>         GLuint attr;
>
> -      if (u_upload_alloc(st->uploader, 0,
> -                         numAttribs * 4 * 4 * sizeof(GLfloat),
> -                         &offset, &vbuffer, (void **) &vbuf) != PIPE_OK) {
> +      u_upload_alloc(st->uploader, 0,
> +                     numAttribs * 4 * 4 * sizeof(GLfloat),
> +                     &offset, &vbuffer, (void **) &vbuf);
> +      if (!vbuffer) {
>            return;
>         }
>
>



More information about the mesa-dev mailing list