Merge tag 'android-13.0.0_r32' into int/13/fp3
Android 13.0.0 release 32
* tag 'android-13.0.0_r32':
Vulkan: Always enable mVirtualBlockMutex
Empty commit to merge VMA crash fix
DO NOT MERGE: Enable perFrameWindowSizeQuery on Android
Empty commit for perFrameWindowSizeQuery
Change-Id: Ie294ca3c3baa06180686deaf933a540083d242f8
diff --git a/src/libANGLE/renderer/vulkan/vk_utils.cpp b/src/libANGLE/renderer/vulkan/vk_utils.cpp
index 7285841..0a2fb13 100644
--- a/src/libANGLE/renderer/vulkan/vk_utils.cpp
+++ b/src/libANGLE/renderer/vulkan/vk_utils.cpp
@@ -1618,7 +1618,6 @@
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::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 a53c8a4..37f07ac 100644
--- a/src/libANGLE/renderer/vulkan/vk_utils.h
+++ b/src/libANGLE/renderer/vulkan/vk_utils.h
@@ -945,9 +945,7 @@
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 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 @@
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);
}