[graphite] Add Vulkan "renderpass"  tracking

Adds a boolean to ensure we're not trying to call draw commands
unless we're between beginRendering/endRendering.

Change-Id: Id6adc922c1e7e79966ab5682ac4d62fc76144866
Bug: b/285136232
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/705616
Reviewed-by: Nicolette Prevost <nicolettep@google.com>
Reviewed-by: James Godfrey-Kittle <jamesgk@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
diff --git a/src/gpu/graphite/vk/VulkanCommandBuffer.cpp b/src/gpu/graphite/vk/VulkanCommandBuffer.cpp
index ee95bae..8a1cd01 100644
--- a/src/gpu/graphite/vk/VulkanCommandBuffer.cpp
+++ b/src/gpu/graphite/vk/VulkanCommandBuffer.cpp
@@ -135,6 +135,7 @@
 
 void VulkanCommandBuffer::end() {
     SkASSERT(fActive);
+    SkASSERT(!fActiveRenderPass);
 
     this->submitPipelineBarriers();
 
@@ -401,13 +402,15 @@
 
     VULKAN_CALL(fSharedContext->interface(),
                 CmdBeginRendering(fPrimaryCommandBuffer, &renderingInfo));
+    fActiveRenderPass = true;
 
-     return true;
+    return true;
 }
 
 void VulkanCommandBuffer::endRenderPass() {
     SkASSERT(fActive);
     VULKAN_CALL(fSharedContext->interface(), CmdEndRendering(fPrimaryCommandBuffer));
+    fActiveRenderPass = false;
 }
 
 void VulkanCommandBuffer::addDrawPass(const DrawPass* drawPass) {
@@ -747,6 +750,7 @@
 void VulkanCommandBuffer::draw(PrimitiveType type,
                                unsigned int baseVertex,
                                unsigned int vertexCount) {
+    SkASSERT(fActiveRenderPass);
     this->syncDescriptorSets();
     // TODO: Implement
 }
@@ -755,30 +759,40 @@
                                       unsigned int baseIndex,
                                       unsigned int indexCount,
                                       unsigned int baseVertex) {
+    SkASSERT(fActiveRenderPass);
     this->syncDescriptorSets();
     // TODO: Implement
 }
 
 void VulkanCommandBuffer::drawInstanced(PrimitiveType type,
-                    unsigned int baseVertex, unsigned int vertexCount,
-                    unsigned int baseInstance, unsigned int instanceCount) {
+                                        unsigned int baseVertex,
+                                        unsigned int vertexCount,
+                                        unsigned int baseInstance,
+                                        unsigned int instanceCount) {
+    SkASSERT(fActiveRenderPass);
     this->syncDescriptorSets();
     // TODO: Implement
 }
 
-void VulkanCommandBuffer::drawIndexedInstanced(PrimitiveType type, unsigned int baseIndex,
-                            unsigned int indexCount, unsigned int baseVertex,
-                            unsigned int baseInstance, unsigned int instanceCount) {
+void VulkanCommandBuffer::drawIndexedInstanced(PrimitiveType type,
+                                               unsigned int baseIndex,
+                                               unsigned int indexCount,
+                                               unsigned int baseVertex,
+                                               unsigned int baseInstance,
+                                               unsigned int instanceCount) {
+    SkASSERT(fActiveRenderPass);
     this->syncDescriptorSets();
     // TODO: Implement
 }
 
 void VulkanCommandBuffer::drawIndirect(PrimitiveType type) {
+    SkASSERT(fActiveRenderPass);
     this->syncDescriptorSets();
     // TODO: Implement
 }
 
 void VulkanCommandBuffer::drawIndexedIndirect(PrimitiveType type) {
+    SkASSERT(fActiveRenderPass);
     this->syncDescriptorSets();
     // TODO: Implement
 }
diff --git a/src/gpu/graphite/vk/VulkanCommandBuffer.h b/src/gpu/graphite/vk/VulkanCommandBuffer.h
index a640bec..891fb5f 100644
--- a/src/gpu/graphite/vk/VulkanCommandBuffer.h
+++ b/src/gpu/graphite/vk/VulkanCommandBuffer.h
@@ -160,7 +160,9 @@
     // end). A nullptr means there is no active render pass. The VulkanCommandBuffer does not own
     // the render pass.
     // TODO: define what this is once we implement renderpasses.
-    const void* fActiveRenderPass = nullptr;
+    //const void* fActiveRenderPass = nullptr;
+    // For now, use this to track whether we're between beginRendering/endRendering calls.
+    bool fActiveRenderPass = false;
 
     const VulkanGraphicsPipeline* fActiveGraphicsPipeline = nullptr;