gfxstream: move staging reset to end of reset command buffer
BUG=334105422
TEST=verified multi-threaded reset test passes
Change-Id: Id31179f2f1673b897f7c796c92b4ff9dea4bbce9
diff --git a/guest/vulkan_enc/ResourceTracker.cpp b/guest/vulkan_enc/ResourceTracker.cpp
index 955f5b4..8c70b17 100644
--- a/guest/vulkan_enc/ResourceTracker.cpp
+++ b/guest/vulkan_enc/ResourceTracker.cpp
@@ -6812,17 +6812,19 @@
VkResult ResourceTracker::on_vkResetCommandBuffer(void* context, VkResult input_result,
VkCommandBuffer commandBuffer,
VkCommandBufferResetFlags flags) {
- resetCommandBufferStagingInfo(commandBuffer, true /* also reset primaries */,
- true /* also clear pending descriptor sets */);
-
- VkEncoder* enc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ VkEncoder* enc = (VkEncoder*)context;
(void)input_result;
if (!supportsDeferredCommands()) {
- return enc->vkResetCommandBuffer(commandBuffer, flags, true /* do lock */);
+ VkResult res = enc->vkResetCommandBuffer(commandBuffer, flags, true /* do lock */);
+ resetCommandBufferStagingInfo(commandBuffer, true /* also reset primaries */,
+ true /* also clear pending descriptor sets */);
+ return res;
}
enc->vkResetCommandBufferAsyncGOOGLE(commandBuffer, flags, true /* do lock */);
+ resetCommandBufferStagingInfo(commandBuffer, true /* also reset primaries */,
+ true /* also clear pending descriptor sets */);
return VK_SUCCESS;
}