Commit 82523300 by Jiacheng Lu Committed by Commit Bot

Vulkan: Recycle VkFence in checkCommandsCompleted

VkFence is intended to be recycled after used up, however, there is one place that VkFence get destroyed directly after usage due to an implementation flaw. This CL fixed it up. Bug: angleproject:3556 Change-Id: I9ee44556329b9cee39ccdfef540f3c1b5180cd36 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1731575Reviewed-by: 's avatarTobin Ehlis <tobine@google.com> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Commit-Queue: Tobin Ehlis <tobine@google.com>
parent 017c9d8e
...@@ -2341,7 +2341,7 @@ angle::Result ContextVk::checkCompletedCommands() ...@@ -2341,7 +2341,7 @@ angle::Result ContextVk::checkCompletedCommands()
ASSERT(batch.serial > mLastCompletedQueueSerial); ASSERT(batch.serial > mLastCompletedQueueSerial);
mLastCompletedQueueSerial = batch.serial; mLastCompletedQueueSerial = batch.serial;
batch.fence.reset(device); mRenderer->resetSharedFence(&batch.fence);
ANGLE_TRACE_EVENT0("gpu.angle", "commandPool.destroy"); ANGLE_TRACE_EVENT0("gpu.angle", "commandPool.destroy");
batch.commandPool.destroy(device); batch.commandPool.destroy(device);
++finishedCount; ++finishedCount;
...@@ -2437,7 +2437,7 @@ angle::Result ContextVk::getNextSubmitFence(vk::Shared<vk::Fence> *sharedFenceOu ...@@ -2437,7 +2437,7 @@ angle::Result ContextVk::getNextSubmitFence(vk::Shared<vk::Fence> *sharedFenceOu
{ {
ANGLE_TRY(getRenderer()->newSharedFence(this, &mSubmitFence)); ANGLE_TRY(getRenderer()->newSharedFence(this, &mSubmitFence));
} }
getRenderer()->resetSharedFence(sharedFenceOut); ASSERT(!sharedFenceOut->isReferenced());
sharedFenceOut->copy(getDevice(), mSubmitFence); sharedFenceOut->copy(getDevice(), mSubmitFence);
return angle::Result::Continue; return angle::Result::Continue;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment