On Wed, 2015-07-29 at 12:31 -0700, Ian Romanick wrote: > On 07/29/2015 07:01 AM, Samuel Iglesias Gonsalvez wrote: > > When a transform feedback object is bound and not active, the > > OpenGL ES > > 3.0 and GL_ARB_transform_feedback2 specs don't explicitly disallow > > its > > deletion. Only the deletion of the default framebuffer object is > ^^^^^^^^^^^ > transform feedback >
OK > > forbidden. > > This sounds like a spec bug or a test bug. I've submitted a Khronos > spec bug. I'd like to get some input from Khronos first. Assuming > this > is the correct behavior, this patch looks good. > OK, thanks. I will wait for the answer then. Sam > > This patch follows what it is done for glDeleteTextures(), i.e. > > the binding reverts to 0 (the default framebuffer object). > > > > Fixes: > > > > dEQP-GLES3.functional.lifetime.delete_bound.transform_feedback > > > > Signed-off-by: Samuel Iglesias Gonsalvez <sigles...@igalia.com> > > --- > > src/mesa/main/transformfeedback.c | 13 ++++++++++++- > > 1 file changed, 12 insertions(+), 1 deletion(-) > > > > diff --git a/src/mesa/main/transformfeedback.c > > b/src/mesa/main/transformfeedback.c > > index 103011c..9944c62 100644 > > --- a/src/mesa/main/transformfeedback.c > > +++ b/src/mesa/main/transformfeedback.c > > @@ -96,8 +96,19 @@ reference_transform_feedback_object(struct > > gl_transform_feedback_object **ptr, > > assert(oldObj->RefCount > 0); > > oldObj->RefCount--; > > > > + /* If the transform feedback object to delete (obj == NULL) > > is bound > > + * then revert the binding to the default transform feedback > > object. > > + */ > > + GET_CURRENT_CONTEXT(ctx); > > + if (ctx && obj == NULL && > > + oldObj == ctx->TransformFeedback.CurrentObject && > > + oldObj != ctx->TransformFeedback.DefaultObject) { > > + ctx->TransformFeedback.CurrentObject = NULL; > > + reference_transform_feedback_object(&ctx > > ->TransformFeedback.CurrentObject, > > + ctx > > ->TransformFeedback.DefaultObject); > > + } > > + > > if (oldObj->RefCount == 0) { > > - GET_CURRENT_CONTEXT(ctx); > > if (ctx) > > ctx->Driver.DeleteTransformFeedback(ctx, oldObj); > > } > > > >
signature.asc
Description: This is a digitally signed message part
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev