summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/transformfeedback.c
diff options
context:
space:
mode:
authorIlia Mirkin <imirkin@alum.mit.edu>2016-03-06 12:36:19 -0500
committerIlia Mirkin <imirkin@alum.mit.edu>2016-03-07 00:36:08 -0500
commit0941ef3dd57e692ee1a897ed83bd887d0cebdc63 (patch)
tree044b87642c95ceb583acefa3724eb312e5371c02 /src/mesa/main/transformfeedback.c
parentf6827e20d12ab062440bc809b8f2338b68edac45 (diff)
downloadexternal_mesa3d-0941ef3dd57e692ee1a897ed83bd887d0cebdc63.zip
external_mesa3d-0941ef3dd57e692ee1a897ed83bd887d0cebdc63.tar.gz
external_mesa3d-0941ef3dd57e692ee1a897ed83bd887d0cebdc63.tar.bz2
mesa: flip current tf object back to default if current is being deleted
In the rather unusual case of Bind + Delete, we need to make sure that we unbind the current tf object. Fixes dEQP-GLES3.functional.lifetime.delete_bound.transform_feedback Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Matt Turner <mattst88@gmail.com>
Diffstat (limited to 'src/mesa/main/transformfeedback.c')
-rw-r--r--src/mesa/main/transformfeedback.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mesa/main/transformfeedback.c b/src/mesa/main/transformfeedback.c
index 976b268..f73a89f 100644
--- a/src/mesa/main/transformfeedback.c
+++ b/src/mesa/main/transformfeedback.c
@@ -1136,6 +1136,11 @@ _mesa_DeleteTransformFeedbacks(GLsizei n, const GLuint *names)
}
_mesa_HashRemove(ctx->TransformFeedback.Objects, names[i]);
/* unref, but object may not be deleted until later */
+ if (obj == ctx->TransformFeedback.CurrentObject) {
+ reference_transform_feedback_object(
+ &ctx->TransformFeedback.CurrentObject,
+ ctx->TransformFeedback.DefaultObject);
+ }
reference_transform_feedback_object(&obj, NULL);
}
}