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(); |
jvanverth1
2016/06/06 20:47:43
All of it must be reset? That's unfortunate.
egdaniel
2016/06/07 15:22:37
Yes. But in general this shouldn't hurt us because
|
} |
void GrVkPrimaryCommandBuffer::submitToQueue(const GrVkGpu* gpu, |