# UNDF: UNDF-2026-000001040 # UNDF: UNDF-2026-XXXXXXXXX --- a/src/Cafe/HW/Latte/Renderer/Vulkan/LatteTextureViewVk.h +++ b/src/Cafe/HW/Latte/Renderer/Vulkan/LatteTextureViewVk.h @@ -19,7 +19,7 @@ class LatteTextureViewVk : public LatteTextureView LatteTextureVk* GetBaseImage() const { return (LatteTextureVk*)baseTexture; } - void AddDescriptorSetReference(struct VkDescriptorSetInfo* dsInfo) { if (std::find(list_descriptorSets.begin(), list_descriptorSets.end(), dsInfo) == list_descriptorSets.end()) list_descriptorSets.emplace_back(dsInfo); }; - void RemoveDescriptorSetReference(struct VkDescriptorSetInfo* dsInfo) { list_descriptorSets.erase(std::remove(list_descriptorSets.begin(), list_descriptorSets.end(), dsInfo), list_descriptorSets.end()); }; + void AddDescriptorSetReference(struct VkDescriptorSetInfo* dsInfo) { list_descriptorSets.insert(dsInfo); }; + void RemoveDescriptorSetReference(struct VkDescriptorSetInfo* dsInfo) { list_descriptorSets.erase(dsInfo); }; private: @@ -38,7 +38,7 @@ private: VkDevice m_device; VkFormat m_format; - std::vector list_descriptorSets; // list of descriptors sets referencing this view + std::unordered_set list_descriptorSets; // list of descriptors sets referencing this view uint64 m_uniqueId; }; --- a/src/Cafe/HW/Latte/Renderer/Vulkan/LatteTextureViewVk.cpp +++ b/src/Cafe/HW/Latte/Renderer/Vulkan/LatteTextureViewVk.cpp @@ -75,8 +75,8 @@ LatteTextureViewVk::~LatteTextureViewVk() { - while (!list_descriptorSets.empty()) - delete list_descriptorSets[0]; + while (!list_descriptorSets.empty()) + delete *list_descriptorSets.begin();