On 27/06/17 21:20, Samuel Pitoiset wrote:
Signed-off-by: Samuel Pitoiset <[email protected]> --- src/mesa/main/bufferobj.c | 45 ++++++++++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 19 deletions(-)diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c index 6e2979f6db9..e31fcc357da 100644 --- a/src/mesa/main/bufferobj.c +++ b/src/mesa/main/bufferobj.c @@ -1416,26 +1416,11 @@ _mesa_DeleteBuffers(GLsizei n, const GLuint *ids) * driver internals. */ static void -create_buffers(GLsizei n, GLuint *buffers, bool dsa) +create_buffers(struct gl_context *ctx, GLsizei n, GLuint *buffers, bool dsa) { - GET_CURRENT_CONTEXT(ctx); GLuint first; struct gl_buffer_object *buf;- const char *func = dsa ? "glCreateBuffers" : "glGenBuffers";- - if (MESA_VERBOSE & VERBOSE_API) - _mesa_debug(ctx, "%s(%d)\n", func, n); - - if (n < 0) { - _mesa_error(ctx, GL_INVALID_VALUE, "%s(n %d < 0)", func, n); - return; - } - - if (!buffers) { - return; - }
Passing NULL buffers is not an error so we should leave this here. It should just return on a no error path also.
With that: Reviewed-by: Timothy Arceri <[email protected]>
- /* * This must be atomic (generation and allocation of buffer object IDs) */ @@ -1453,7 +1438,7 @@ create_buffers(GLsizei n, GLuint *buffers, bool dsa) assert(ctx->Driver.NewBufferObject); buf = ctx->Driver.NewBufferObject(ctx, buffers[i]); if (!buf) { - _mesa_error(ctx, GL_OUT_OF_MEMORY, "%s", func); + _mesa_error(ctx, GL_OUT_OF_MEMORY, "glCreateBuffers"); _mesa_HashUnlockMutex(ctx->Shared->BufferObjects); return; } @@ -1467,6 +1452,26 @@ create_buffers(GLsizei n, GLuint *buffers, bool dsa) _mesa_HashUnlockMutex(ctx->Shared->BufferObjects); }++static void +create_buffers_err(struct gl_context *ctx, GLsizei n, GLuint *buffers, bool dsa) +{ + const char *func = dsa ? "glCreateBuffers" : "glGenBuffers"; + + if (MESA_VERBOSE & VERBOSE_API) + _mesa_debug(ctx, "%s(%d)\n", func, n); + + if (n < 0) { + _mesa_error(ctx, GL_INVALID_VALUE, "%s(n %d < 0)", func, n); + return; + } + + if (!buffers) + return; + + create_buffers(ctx, n, buffers, dsa); +} + /** * Generate a set of unique buffer object IDs and store them in \c buffers. * @@ -1476,7 +1481,8 @@ create_buffers(GLsizei n, GLuint *buffers, bool dsa) void GLAPIENTRY _mesa_GenBuffers(GLsizei n, GLuint *buffers) { - create_buffers(n, buffers, false); + GET_CURRENT_CONTEXT(ctx); + create_buffers_err(ctx, n, buffers, false); }/**@@ -1488,7 +1494,8 @@ _mesa_GenBuffers(GLsizei n, GLuint *buffers) void GLAPIENTRY _mesa_CreateBuffers(GLsizei n, GLuint *buffers) { - create_buffers(n, buffers, true); + GET_CURRENT_CONTEXT(ctx); + create_buffers_err(ctx, n, buffers, true); }
_______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
