Bug 1300946 - Only clear TFO indexed bindings on delete if TFO is inactive. - r=ethlin draft
authorJeff Gilbert (:jgilbert) <jgilbert@mozilla.com>
Mon, 19 Sep 2016 13:25:06 -0700
changeset 416667 203aaae02f8d046ba87757325cfe09757e2e6aa9
parent 416666 8ae9b6fcb4ed7bda0c3fd06638575a54764c7a99
child 531917 1fd84765ed5c1d5b4617f7a9aa71caa35c921be7
push id30211
push userbmo:jgilbert@mozilla.com
push dateThu, 22 Sep 2016 19:02:05 +0000
reviewersethlin
bugs1300946
milestone51.0a1
Bug 1300946 - Only clear TFO indexed bindings on delete if TFO is inactive. - r=ethlin MozReview-Commit-ID: JNG2I3saqva
dom/canvas/WebGLContextBuffers.cpp
--- a/dom/canvas/WebGLContextBuffers.cpp
+++ b/dom/canvas/WebGLContextBuffers.cpp
@@ -506,18 +506,20 @@ WebGLContext::DeleteBuffer(WebGLBuffer* 
     if (IsWebGL2()) {
         fnClearIfBuffer(mBoundCopyReadBuffer);
         fnClearIfBuffer(mBoundCopyWriteBuffer);
         fnClearIfBuffer(mBoundPixelPackBuffer);
         fnClearIfBuffer(mBoundPixelUnpackBuffer);
         fnClearIfBuffer(mBoundUniformBuffer);
         fnClearIfBuffer(mBoundTransformFeedback->mGenericBufferBinding);
 
-        for (auto& binding : mBoundTransformFeedback->mIndexedBindings) {
-            fnClearIfBuffer(binding.mBufferBinding);
+        if (!mBoundTransformFeedback->mIsActive) {
+            for (auto& binding : mBoundTransformFeedback->mIndexedBindings) {
+                fnClearIfBuffer(binding.mBufferBinding);
+            }
         }
 
         for (auto& binding : mIndexedUniformBufferBindings) {
             fnClearIfBuffer(binding.mBufferBinding);
         }
     }
 
     for (int32_t i = 0; i < mGLMaxVertexAttribs; i++) {