Notify the VertexArrayImpl when a buffer is detached.
Update VertexArrayGL to clear it's cached buffer binding when a buffer is
detached to prevent name aliasing.
Fixes:
* DEQP standalone crashes.
* WebGL Conformance DEQP tests.
Change-Id: If21a617629e15873ddeae0368b5399616f2ca68b
Reviewed-on: https://chromium-review.googlesource.com/278050
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/renderer/gl/VertexArrayGL.cpp b/src/libANGLE/renderer/gl/VertexArrayGL.cpp
index 93a352e..ba5521c 100644
--- a/src/libANGLE/renderer/gl/VertexArrayGL.cpp
+++ b/src/libANGLE/renderer/gl/VertexArrayGL.cpp
@@ -74,6 +74,13 @@
void VertexArrayGL::setElementArrayBuffer(const gl::Buffer *buffer)
{
mElementArrayBuffer.set(buffer);
+
+ // If the buffer is being unbound/deleted, reset the currently applied buffer ID
+ // so that even if a new buffer is generated with the same ID, it will be re-bound.
+ if (buffer == nullptr && mAppliedElementArrayBuffer != mStreamingElementArrayBuffer)
+ {
+ mAppliedElementArrayBuffer = 0;
+ }
}
void VertexArrayGL::setAttribute(size_t idx, const gl::VertexAttribute &attr)