29 lines
1.6 KiB
Diff
29 lines
1.6 KiB
Diff
# 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<struct VkDescriptorSetInfo*> list_descriptorSets; // list of descriptors sets referencing this view
|
|
+ std::unordered_set<struct VkDescriptorSetInfo*> 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();
|