[Mesa-dev] [PATCH 2/5] u_upload_mgr: remove the return value from u_upload_alloc
Marek Olšák
maraeo at gmail.com
Wed Sep 2 06:44:10 PDT 2015
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)
{
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;
}
--
2.1.4
More information about the mesa-dev
mailing list