java-topology/defects/cemu-0001/patch/cemu-0001.patch

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();