I thought so too, but these bits are really missing there, e.g. glDeleteBuffers doesn't unbind atomic buffers, etc.
Marek On Wed, Jul 23, 2014 at 9:25 PM, Ilia Mirkin <imir...@alum.mit.edu> wrote: > On Wed, Jul 23, 2014 at 3:22 PM, Marek Olšák <mar...@gmail.com> wrote: >> Please see: >> >> http://lists.freedesktop.org/archives/mesa-dev/2014-July/062818.html >> http://lists.freedesktop.org/archives/mesa-dev/2014-July/063798.html >> >> Also, your git username and address are wrong. You can set them with git >> config. > > In addition to these more basic issues... is this patch needed at all? > I thought the core code was all done and it was just the mesa/st + > gallium interfaces that needed to be fixed up. > >> >> Marek >> >> On Wed, Jul 23, 2014 at 8:27 PM, Aditya Atluri <adityaavina...@gmail.com> >> wrote: >>> From: Frost <frost@ubuntu.(none)> >>> >>> --- >>> src/mesa/main/bufferobj.c | 30 ++++++++++++++++++++++++++++++ >>> 1 file changed, 30 insertions(+) >>> >>> diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c >>> index 7b1bba0..00f2604 100644 >>> --- a/src/mesa/main/bufferobj.c >>> +++ b/src/mesa/main/bufferobj.c >>> @@ -832,6 +832,9 @@ _mesa_init_buffer_objects( struct gl_context *ctx ) >>> _mesa_reference_buffer_object(ctx, &ctx->UniformBuffer, >>> ctx->Shared->NullBufferObj); >>> >>> + _mesa_reference_buffer_object(ctx, &ctx->AtomicBuffer, >>> + ctx->Shared->NullBufferObj); >>> + >>> _mesa_reference_buffer_object(ctx, &ctx->DrawIndirectBuffer, >>> ctx->Shared->NullBufferObj); >>> >>> @@ -842,6 +845,14 @@ _mesa_init_buffer_objects( struct gl_context *ctx ) >>> ctx->UniformBufferBindings[i].Offset = -1; >>> ctx->UniformBufferBindings[i].Size = -1; >>> } >>> + >>> + for (i = 0; i < MAX_COMBINED_ATOMIC_BUFFERS; i++) { >>> + _mesa_reference_buffer_object(ctx, >>> + >>> &ctx->AtomicBufferBindings[i].BufferObject, >>> + ctx->Shared->NullBufferObj); >>> + ctx->AtomicBufferBindings[i].Offset = -1; >>> + ctx->AtomicBufferBindings[i].Size = -1; >>> + } >>> } >>> >>> >>> @@ -857,6 +868,8 @@ _mesa_free_buffer_objects( struct gl_context *ctx ) >>> >>> _mesa_reference_buffer_object(ctx, &ctx->UniformBuffer, NULL); >>> >>> + _mesa_reference_buffer_object(ctx, &ctx->AtomicBuffer, NULL); >>> + >>> _mesa_reference_buffer_object(ctx, &ctx->DrawIndirectBuffer, NULL); >>> >>> for (i = 0; i < MAX_COMBINED_UNIFORM_BUFFERS; i++) { >>> @@ -864,6 +877,12 @@ _mesa_free_buffer_objects( struct gl_context *ctx ) >>> >>> &ctx->UniformBufferBindings[i].BufferObject, >>> NULL); >>> } >>> + >>> + for (i = 0; i < MAX_COMBINED_ATOMIC_BUFFERS; i++) { >>> + _mesa_reference_buffer_object(ctx, >>> + >>> &ctx->AtomicBufferBindings[i].BufferObject, >>> + NULL); >>> + } >>> } >>> >>> bool >>> @@ -1200,6 +1219,17 @@ _mesa_DeleteBuffers(GLsizei n, const GLuint *ids) >>> _mesa_BindBuffer( GL_UNIFORM_BUFFER, 0 ); >>> } >>> >>> + /* unbind Atomic Buffers binding points */ >>> + for (j = 0; j < ctx->Const.MaxAtomicBufferBindings; j++) { >>> + if (ctx->AtomicBufferBindings[j].BufferObject == bufObj) { >>> + _mesa_BindBufferBase( GL_ATOMIC_COUNTER_BUFFER, j, 0 ); >>> + } >>> + } >>> + >>> + if (ctx->AtomicBuffer == bufObj) { >>> + _mesa_BindBuffer(GL_ATOMIC_COUNTER_BUFFER, 0); >>> + } >>> + >>> /* unbind any pixel pack/unpack pointers bound to this buffer */ >>> if (ctx->Pack.BufferObj == bufObj) { >>> _mesa_BindBuffer( GL_PIXEL_PACK_BUFFER_EXT, 0 ); >>> -- >>> 1.7.9.5 >>> >>> _______________________________________________ >>> mesa-dev mailing list >>> mesa-dev@lists.freedesktop.org >>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev >> _______________________________________________ >> mesa-dev mailing list >> mesa-dev@lists.freedesktop.org >> http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev