Fredrik Höglund <fred...@kde.org> writes: > Make set_atomic_buffer_binding() just update the binding, and move > the code that does validation, flushes the vertices etc. into a new > bind_atomic_buffer() function.
If you add two short comments on the difference between set_atomic_buffer_binding() and bind_atomic_buffer(), as Brian suggested, this patch is: Reviewed-by: Francisco Jerez <curroje...@riseup.net> > --- > src/mesa/main/bufferobj.c | 42 ++++++++++++++++++++++++++---------------- > 1 file changed, 26 insertions(+), 16 deletions(-) > > diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c > index e46516d..4094e31 100644 > --- a/src/mesa/main/bufferobj.c > +++ b/src/mesa/main/bufferobj.c > @@ -2474,11 +2474,29 @@ bind_buffer_base_uniform_buffer(struct gl_context > *ctx, > > static void > set_atomic_buffer_binding(struct gl_context *ctx, > - unsigned index, > + struct gl_atomic_buffer_binding *binding, > struct gl_buffer_object *bufObj, > GLintptr offset, > - GLsizeiptr size, > - const char *name) > + GLsizeiptr size) > +{ > + _mesa_reference_buffer_object(ctx, &binding->BufferObject, bufObj); > + > + if (bufObj == ctx->Shared->NullBufferObj) { > + binding->Offset = -1; > + binding->Size = -1; > + } else { > + binding->Offset = offset; > + binding->Size = size; > + } > +} > + > +static void > +bind_atomic_buffer(struct gl_context *ctx, > + unsigned index, > + struct gl_buffer_object *bufObj, > + GLintptr offset, > + GLsizeiptr size, > + const char *name) > { > struct gl_atomic_buffer_binding *binding; > > @@ -2506,15 +2524,7 @@ set_atomic_buffer_binding(struct gl_context *ctx, > FLUSH_VERTICES(ctx, 0); > ctx->NewDriverState |= ctx->DriverFlags.NewAtomicBuffer; > > - _mesa_reference_buffer_object(ctx, &binding->BufferObject, bufObj); > - > - if (bufObj == ctx->Shared->NullBufferObj) { > - binding->Offset = -1; > - binding->Size = -1; > - } else { > - binding->Offset = offset; > - binding->Size = size; > - } > + set_atomic_buffer_binding(ctx, binding, bufObj, offset, size); > } > > void GLAPIENTRY > @@ -2556,8 +2566,8 @@ _mesa_BindBufferRange(GLenum target, GLuint index, > bind_buffer_range_uniform_buffer(ctx, index, bufObj, offset, size); > return; > case GL_ATOMIC_COUNTER_BUFFER: > - set_atomic_buffer_binding(ctx, index, bufObj, offset, size, > - "glBindBufferRange"); > + bind_atomic_buffer(ctx, index, bufObj, offset, size, > + "glBindBufferRange"); > return; > default: > _mesa_error(ctx, GL_INVALID_ENUM, "glBindBufferRange(target)"); > @@ -2620,8 +2630,8 @@ _mesa_BindBufferBase(GLenum target, GLuint index, > GLuint buffer) > bind_buffer_base_uniform_buffer(ctx, index, bufObj); > return; > case GL_ATOMIC_COUNTER_BUFFER: > - set_atomic_buffer_binding(ctx, index, bufObj, 0, 0, > - "glBindBufferBase"); > + bind_atomic_buffer(ctx, index, bufObj, 0, 0, > + "glBindBufferBase"); > return; > default: > _mesa_error(ctx, GL_INVALID_ENUM, "glBindBufferBase(target)"); > -- > 1.7.10.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
pgp5h8lyBpAJ6.pgp
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev