Reset GrOpsRenderPass active buffers during bindPipeline

Change-Id: I7b0162a796f49117d9fb3af043f8c53112edb69f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280804
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
diff --git a/src/gpu/GrOpsRenderPass.cpp b/src/gpu/GrOpsRenderPass.cpp
index 8c6b559..486a9f1 100644
--- a/src/gpu/GrOpsRenderPass.cpp
+++ b/src/gpu/GrOpsRenderPass.cpp
@@ -34,9 +34,7 @@
 
 void GrOpsRenderPass::end() {
     this->onEnd();
-    fActiveIndexBuffer.reset();
-    fActiveInstanceBuffer.reset();
-    fActiveVertexBuffer.reset();
+    this->resetActiveBuffers();
 }
 
 void GrOpsRenderPass::clear(const GrFixedClip& clip, const SkPMColor4f& color) {
@@ -86,6 +84,8 @@
     programInfo.checkMSAAAndMIPSAreResolved();
 #endif
 
+    this->resetActiveBuffers();
+
     if (programInfo.primProc().numVertexAttributes() > this->gpu()->caps()->maxVertexAttributes()) {
         fDrawPipelineStatus = DrawPipelineStatus::kFailedToBind;
         return;
diff --git a/src/gpu/GrOpsRenderPass.h b/src/gpu/GrOpsRenderPass.h
index d68d41a..4b94a0e 100644
--- a/src/gpu/GrOpsRenderPass.h
+++ b/src/gpu/GrOpsRenderPass.h
@@ -137,6 +137,12 @@
 private:
     virtual GrGpu* gpu() = 0;
 
+    void resetActiveBuffers() {
+        fActiveIndexBuffer.reset();
+        fActiveInstanceBuffer.reset();
+        fActiveVertexBuffer.reset();
+    }
+
     bool prepareToDraw();
 
     // overridden by backend-specific derived class to perform the rendering command.