[Mesa-dev] [PATCH 2/2] mesa: Unbind ARB_transform_feedback2 binding points on Delete too.

Brian Paul brianp at vmware.com
Mon Jun 4 16:36:16 CEST 2012


On 06/04/2012 02:12 AM, Kenneth Graunke wrote:
> DeleteBuffer needs to unbind from these binding points as well, based on
> the same rationale as the previous patch.
>
> +51 oglconforms (together with the last patch).
>
> NOTE: This is a candidate for stable release branches.
>
> Signed-off-by: Kenneth Graunke<kenneth at whitecape.org>
> ---
>   src/mesa/main/bufferobj.c |    8 +++++++-
>   1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c
> index fe7db2a..36a7619 100644
> --- a/src/mesa/main/bufferobj.c
> +++ b/src/mesa/main/bufferobj.c
> @@ -42,6 +42,7 @@
>   #include "mfeatures.h"
>   #include "mtypes.h"
>   #include "texobj.h"
> +#include "transformfeedback.h"
>
>
>   /* Debug flags */
> @@ -829,10 +830,15 @@ _mesa_DeleteBuffersARB(GLsizei n, const GLuint *ids)
>               _mesa_BindBufferARB( GL_COPY_WRITE_BUFFER, 0 );
>            }
>
> -         /* unbind transform feedback binding point */
> +         /* unbind transform feedback binding points */
>            if (ctx->TransformFeedback.CurrentBuffer == bufObj) {
>               _mesa_BindBufferARB( GL_TRANSFORM_FEEDBACK_BUFFER, 0 );
>            }
> +         for (j = 0; j<  MAX_FEEDBACK_ATTRIBS; j++) {
> +            if (ctx->TransformFeedback.CurrentObject->Buffers[j] == bufObj) {
> +               _mesa_BindBufferBase( GL_TRANSFORM_FEEDBACK_BUFFER, j, 0 );
> +            }
> +         }
>
>            /* unbind any pixel pack/unpack pointers bound to this buffer */
>            if (ctx->Pack.BufferObj == bufObj) {

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

You might also check that _mesa_free_transform_feedback() is 
unbinding/unrefing these buffer objects too.

-Brian


More information about the mesa-dev mailing list