Index: src/gpu/vk/GrVkCommandBuffer.cpp |
diff --git a/src/gpu/vk/GrVkCommandBuffer.cpp b/src/gpu/vk/GrVkCommandBuffer.cpp |
index 9604355aad2bf5a388897f1afacff0d77280af0a..2b636edf20e6f68fdbe58eb2cf1e727c13ad3bd3 100644 |
--- a/src/gpu/vk/GrVkCommandBuffer.cpp |
+++ b/src/gpu/vk/GrVkCommandBuffer.cpp |
@@ -311,6 +311,9 @@ void GrVkPrimaryCommandBuffer::executeCommands(const GrVkGpu* gpu, |
GR_VK_CALL(gpu->vkInterface(), CmdExecuteCommands(fCmdBuffer, 1, &buffer->fCmdBuffer)); |
this->addResource(buffer); |
+ // When executing a secondary command buffer all state (besides render pass state) becomes |
+ // invalidated and must be reset. This includes bound buffers, pipelines, dynamic state, etc. |
+ this->invalidateState(); |
} |
void GrVkPrimaryCommandBuffer::submitToQueue(const GrVkGpu* gpu, |