aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libANGLE/renderer/vulkan/vk_utils.cpp3
-rw-r--r--src/libANGLE/renderer/vulkan/vk_utils.h8
2 files changed, 4 insertions, 7 deletions
diff --git a/src/libANGLE/renderer/vulkan/vk_utils.cpp b/src/libANGLE/renderer/vulkan/vk_utils.cpp
index 7285841ad3..0a2fb137f1 100644
--- a/src/libANGLE/renderer/vulkan/vk_utils.cpp
+++ b/src/libANGLE/renderer/vulkan/vk_utils.cpp
@@ -1618,7 +1618,6 @@ angle::Result BufferBlock::init(Context *context,
ASSERT(!mBuffer.valid());
ASSERT(!mDeviceMemory.valid());
- mVirtualBlockMutex.init(renderer->isAsyncCommandQueueEnabled());
ANGLE_VK_TRY(context, mVirtualBlock.init(renderer->getDevice(), flags, size));
mBuffer = std::move(buffer);
@@ -1664,7 +1663,7 @@ void BufferBlock::unmap(const VkDevice device)
void BufferBlock::free(VkDeviceSize offset)
{
- std::lock_guard<ConditionalMutex> lock(mVirtualBlockMutex);
+ std::unique_lock<std::mutex> lock(mVirtualBlockMutex);
mVirtualBlock.free(offset);
}
diff --git a/src/libANGLE/renderer/vulkan/vk_utils.h b/src/libANGLE/renderer/vulkan/vk_utils.h
index a53c8a462f..37f07acc36 100644
--- a/src/libANGLE/renderer/vulkan/vk_utils.h
+++ b/src/libANGLE/renderer/vulkan/vk_utils.h
@@ -945,9 +945,7 @@ class BufferBlock final : angle::NonCopyable
int32_t getAndIncrementEmptyCounter();
private:
- // Protect multi-thread access to mVirtualBlock, which could be possible when asyncCommandQueue
- // is enabled.
- ConditionalMutex mVirtualBlockMutex;
+ mutable std::mutex mVirtualBlockMutex;
VirtualBlock mVirtualBlock;
Buffer mBuffer;
@@ -1025,7 +1023,7 @@ ANGLE_INLINE VkDeviceSize BufferBlock::getMemorySize() const
ANGLE_INLINE VkBool32 BufferBlock::isEmpty()
{
- std::lock_guard<ConditionalMutex> lock(mVirtualBlockMutex);
+ std::unique_lock<std::mutex> lock(mVirtualBlockMutex);
return vma::IsVirtualBlockEmpty(mVirtualBlock.getHandle());
}
@@ -1054,7 +1052,7 @@ ANGLE_INLINE VkResult BufferBlock::allocate(VkDeviceSize size,
VkDeviceSize alignment,
VkDeviceSize *offsetOut)
{
- std::lock_guard<ConditionalMutex> lock(mVirtualBlockMutex);
+ std::unique_lock<std::mutex> lock(mVirtualBlockMutex);
mCountRemainsEmpty = 0;
return mVirtualBlock.allocate(size, alignment, offsetOut);
}