mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-11-25 04:02:42 +01:00
vk: Avoid leaking descriptor copies
This commit is contained in:
parent
2331dc3256
commit
3942a464fe
@ -829,6 +829,7 @@ void VKGSRender::emit_geometry(u32 sub_index)
|
||||
{
|
||||
// Need to update descriptors; make a copy for the next draw
|
||||
VkDescriptorSet previous_set = m_current_frame->descriptor_set.value();
|
||||
m_current_frame->descriptor_set.flush();
|
||||
m_current_frame->descriptor_set = allocate_descriptor_set();
|
||||
rsx::simple_array<VkCopyDescriptorSet> copy_cmds(binding_table.total_descriptor_bindings);
|
||||
|
||||
|
@ -346,8 +346,10 @@ namespace vk
|
||||
vkUpdateDescriptorSets(*g_render_device, 1, &writer, 0, nullptr);
|
||||
}
|
||||
|
||||
void descriptor_set::push(rsx::simple_array<VkCopyDescriptorSet>& copy_cmd)
|
||||
void descriptor_set::push(rsx::simple_array<VkCopyDescriptorSet>& copy_cmd, u32 type_mask)
|
||||
{
|
||||
m_push_type_mask |= type_mask;
|
||||
|
||||
if (m_pending_copies.empty()) [[likely]]
|
||||
{
|
||||
m_pending_copies = std::move(copy_cmd);
|
||||
|
@ -65,7 +65,7 @@ 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<VkCopyDescriptorSet>& copy_cmd);
|
||||
void push(rsx::simple_array<VkCopyDescriptorSet>& copy_cmd, u32 type_mask = umax);
|
||||
|
||||
void bind(VkCommandBuffer cmd, VkPipelineBindPoint bind_point, VkPipelineLayout layout);
|
||||
void bind(const command_buffer& cmd, VkPipelineBindPoint bind_point, VkPipelineLayout layout);
|
||||
|
Loading…
Reference in New Issue
Block a user