diff --git a/rpcs3/Emu/RSX/VK/vkutils/descriptors.cpp b/rpcs3/Emu/RSX/VK/vkutils/descriptors.cpp index b5e62f33f6..3b0b8f2f5a 100644 --- a/rpcs3/Emu/RSX/VK/vkutils/descriptors.cpp +++ b/rpcs3/Emu/RSX/VK/vkutils/descriptors.cpp @@ -404,30 +404,15 @@ namespace vk vkUpdateDescriptorSets(*g_render_device, 1, &writer, 0, nullptr); } - void descriptor_set::push(rsx::simple_array& copy_cmd, u32 type_mask) + void descriptor_set::push(const rsx::simple_array& copy_cmd, u32 type_mask) { m_push_type_mask |= type_mask; - - if (m_pending_copies.empty()) [[likely]] - { - m_pending_copies = std::move(copy_cmd); - return; - } - m_pending_copies += copy_cmd; } - void descriptor_set::push(rsx::simple_array& write_cmds, u32 type_mask) + void descriptor_set::push(const rsx::simple_array& write_cmds, u32 type_mask) { m_push_type_mask |= type_mask; - -#if !defined(__clang__) || (__clang_major__ >= 16) - if (m_pending_writes.empty()) [[unlikely]] - { - m_pending_writes = std::move(write_cmds); - return; - } -#endif m_pending_writes += write_cmds; } diff --git a/rpcs3/Emu/RSX/VK/vkutils/descriptors.h b/rpcs3/Emu/RSX/VK/vkutils/descriptors.h index c2cf5deb20..12f7589c7c 100644 --- a/rpcs3/Emu/RSX/VK/vkutils/descriptors.h +++ b/rpcs3/Emu/RSX/VK/vkutils/descriptors.h @@ -102,8 +102,8 @@ namespace vk void push(const VkDescriptorBufferInfo& buffer_info, VkDescriptorType type, u32 binding); void push(const VkDescriptorImageInfo& image_info, VkDescriptorType type, u32 binding); void push(const VkDescriptorImageInfo* image_info, u32 count, VkDescriptorType type, u32 binding); - void push(rsx::simple_array& copy_cmd, u32 type_mask = umax); - void push(rsx::simple_array& write_cmds, u32 type_mask = umax); + void push(const rsx::simple_array& copy_cmd, u32 type_mask = umax); + void push(const rsx::simple_array& write_cmds, u32 type_mask = umax); void push(const descriptor_set_dynamic_offset_t& offset); void on_bind();