diff --git a/rpcs3/Emu/RSX/VK/VKProgramPipeline.cpp b/rpcs3/Emu/RSX/VK/VKProgramPipeline.cpp index 134aa6430a..96f45ae7a2 100644 --- a/rpcs3/Emu/RSX/VK/VKProgramPipeline.cpp +++ b/rpcs3/Emu/RSX/VK/VKProgramPipeline.cpp @@ -17,13 +17,21 @@ namespace vk bool operator == (const descriptor_slot_t& a, const VkDescriptorImageInfoEx& b) { const auto ptr = std::get_if(&a); - return !!ptr && ptr->resourceId == b.resourceId; + return !!ptr && + ptr->resourceId == b.resourceId && + ptr->imageView == b.imageView && + ptr->sampler == b.sampler && + ptr->imageLayout == b.imageLayout; } bool operator == (const descriptor_slot_t& a, const VkDescriptorBufferInfoEx& b) { const auto ptr = std::get_if(&a); - return !!ptr && ptr->resourceId == b.resourceId; + return !!ptr && + ptr->resourceId == b.resourceId && + ptr->buffer == b.buffer && + ptr->offset == b.offset && + ptr->range == b.range; } bool operator == (const descriptor_slot_t& a, const VkDescriptorBufferViewEx& b) diff --git a/rpcs3/Emu/RSX/VK/vkutils/unique_resource.cpp b/rpcs3/Emu/RSX/VK/vkutils/unique_resource.cpp index 2bd60a4a02..e77d6eae09 100644 --- a/rpcs3/Emu/RSX/VK/vkutils/unique_resource.cpp +++ b/rpcs3/Emu/RSX/VK/vkutils/unique_resource.cpp @@ -5,7 +5,8 @@ namespace vk { static atomic_t s_resource_uid; - u64 gen_uid() { + u64 gen_uid() + { return s_resource_uid++; } }