2626#include " libANGLE/renderer/vulkan/vk_resource.h"
2727#include " libANGLE/renderer/vulkan/vk_utils.h"
2828
29+ #include < ankerl/stl.h>
30+ #include < ankerl/unordered_dense.h>
31+
2932namespace gl
3033{
3134class ProgramExecutable ;
@@ -2668,8 +2671,8 @@ class RenderPassCache final : angle::NonCopyable
26682671 // Use a two-layer caching scheme. The top level matches the "compatible" RenderPass elements.
26692672 // The second layer caches the attachment load/store ops and initial/final layout.
26702673 // Switch to `std::unordered_map` to retain pointer stability.
2671- using InnerCache = std::unordered_map <vk::AttachmentOpsArray, vk::RenderPassHelper>;
2672- using OuterCache = std::unordered_map <vk::RenderPassDesc, InnerCache>;
2674+ using InnerCache = ankerl::unordered_dense::map <vk::AttachmentOpsArray, vk::RenderPassHelper>;
2675+ using OuterCache = ankerl::unordered_dense::map <vk::RenderPassDesc, InnerCache>;
26732676
26742677 OuterCache mPayload ;
26752678 CacheStats mCompatibleRenderPassCacheStats ;
@@ -2870,7 +2873,7 @@ class DescriptorSetLayoutCache final : angle::NonCopyable
28702873
28712874 private:
28722875 mutable angle::SimpleMutex mMutex ;
2873- std::unordered_map <vk::DescriptorSetLayoutDesc, vk::DescriptorSetLayoutPtr> mPayload ;
2876+ ankerl::unordered_dense::map <vk::DescriptorSetLayoutDesc, vk::DescriptorSetLayoutPtr> mPayload ;
28742877 CacheStats mCacheStats ;
28752878};
28762879
@@ -2889,7 +2892,7 @@ class PipelineLayoutCache final : public HasCacheStats<VulkanCacheType::Pipeline
28892892
28902893 private:
28912894 mutable angle::SimpleMutex mMutex ;
2892- std::unordered_map <vk::PipelineLayoutDesc, vk::PipelineLayoutPtr> mPayload ;
2895+ ankerl::unordered_dense::map <vk::PipelineLayoutDesc, vk::PipelineLayoutPtr> mPayload ;
28932896};
28942897
28952898class SamplerCache final : public HasCacheStats<VulkanCacheType::Sampler>
@@ -2905,7 +2908,7 @@ class SamplerCache final : public HasCacheStats<VulkanCacheType::Sampler>
29052908 vk::SharedSamplerPtr *samplerOut);
29062909
29072910 private:
2908- std::unordered_map <vk::SamplerDesc, vk::SharedSamplerPtr> mPayload ;
2911+ ankerl::unordered_dense::map <vk::SamplerDesc, vk::SharedSamplerPtr> mPayload ;
29092912};
29102913
29112914// YuvConversion Cache
@@ -2924,7 +2927,7 @@ class SamplerYcbcrConversionCache final
29242927
29252928 private:
29262929 using SamplerYcbcrConversionMap =
2927- std::unordered_map <vk::YcbcrConversionDesc, vk::SamplerYcbcrConversion>;
2930+ ankerl::unordered_dense::map <vk::YcbcrConversionDesc, vk::SamplerYcbcrConversion>;
29282931 SamplerYcbcrConversionMap mExternalFormatPayload ;
29292932 SamplerYcbcrConversionMap mVkFormatPayload ;
29302933};
0 commit comments