Merge tag 'android-security-13.0.0_r8' into int/13/fp3
Android Security 13.0.0 Release 8 (10286630)
* tag 'android-security-13.0.0_r8':
Fix a bug when getting a gzip header extra field with inflate().
Change-Id: I268ba9f63b99c351c4baff8f66ff6614b3013685
diff --git a/src/libANGLE/renderer/vulkan/RendererVk.cpp b/src/libANGLE/renderer/vulkan/RendererVk.cpp
index 5ca545e..db519f0 100644
--- a/src/libANGLE/renderer/vulkan/RendererVk.cpp
+++ b/src/libANGLE/renderer/vulkan/RendererVk.cpp
@@ -3089,8 +3089,9 @@
ANGLE_FEATURE_CONDITION(&mFeatures, bindEmptyForUnusedDescriptorSets,
IsAndroid() && isQualcomm);
- ANGLE_FEATURE_CONDITION(&mFeatures, perFrameWindowSizeQuery,
- isIntel || (IsWindows() && isAMD) || IsFuchsia() || isSamsung);
+ ANGLE_FEATURE_CONDITION(
+ &mFeatures, perFrameWindowSizeQuery,
+ IsAndroid() || isIntel || (IsWindows() && isAMD) || IsFuchsia() || isSamsung);
// Disabled on AMD/windows due to buggy behavior.
ANGLE_FEATURE_CONDITION(&mFeatures, disallowSeamfulCubeMapEmulation, IsWindows() && isAMD);
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);
}