Set the bound XFB to 0 when it is deleted
BUG=605775
Change-Id: Ie7af2c0dc4536b26473510a80955f4628ea496bb
Reviewed-on: https://chromium-review.googlesource.com/340113
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/libANGLE/Context.cpp b/src/libANGLE/Context.cpp
index 26f737b..61bb172 100644
--- a/src/libANGLE/Context.cpp
+++ b/src/libANGLE/Context.cpp
@@ -1862,7 +1862,17 @@
void Context::detachTransformFeedback(GLuint transformFeedback)
{
- mState.detachTransformFeedback(transformFeedback);
+ // Transform feedback detachment is handled by Context, because 0 is a valid
+ // transform feedback, and a pointer to it must be passed from Context to State at
+ // binding time.
+
+ // The OpenGL specification doesn't mention what should happen when the currently bound
+ // transform feedback object is deleted. Since it is a container object, we treat it like
+ // VAOs and FBOs and set the current bound transform feedback back to 0.
+ if (mState.removeTransformFeedbackBinding(transformFeedback))
+ {
+ bindTransformFeedback(0);
+ }
}
void Context::detachSampler(GLuint sampler)