Browse Source

[Vulkan] Descriptor Pool bug fix (#2564)

a bank could be (incorrectly) considered a superset if it had enough image buffer descriptors but not enough storage image descriptors, causing the allocator to pick a bank that can’t actually satisfy VK_DESCRIPTOR_TYPE_STORAGE_IMAGE demand resulting in sham allocations and creation of new pools.
Note to testers,
please look for any regressions in terms of visuals and most importantly please test the performance and ram usage.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2564
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev>
Reviewed-by: Lizzie <lizzie@eden-emu.dev>
Reviewed-by: crueter <crueter@eden-emu.dev>
Co-authored-by: wildcard <wildcard@eden-emu.dev>
Co-committed-by: wildcard <wildcard@eden-emu.dev>
pull/2584/head
wildcard 3 months ago
committed by crueter
parent
commit
10aca2f90c
No known key found for this signature in database GPG Key ID: 425ACD2D4830EBC6
  1. 2
      src/video_core/renderer_vulkan/vk_descriptor_pool.cpp

2
src/video_core/renderer_vulkan/vk_descriptor_pool.cpp

@ -31,7 +31,7 @@ struct DescriptorBank {
bool DescriptorBankInfo::IsSuperset(const DescriptorBankInfo& subset) const noexcept {
return uniform_buffers >= subset.uniform_buffers && storage_buffers >= subset.storage_buffers &&
texture_buffers >= subset.texture_buffers && image_buffers >= subset.image_buffers &&
textures >= subset.textures && images >= subset.image_buffers;
textures >= subset.textures && images >= subset.images;
}
template <typename Descriptors>

Loading…
Cancel
Save