15#include <vsg/state/DescriptorSet.h>
16#include <vsg/vk/DescriptorPool.h>
17#include <vsg/vk/ResourceRequirements.h>
29 std::list<ref_ptr<DescriptorPool>> descriptorPools;
31 uint32_t minimum_maxSets = 0;
32 uint32_t maximum_maxSets = 2048;
33 double scale_maxSets = 2.0;
36 uint32_t reserve_count = 0;
37 uint32_t reserve_maxSets = 0;
38 DescriptorPoolSizes reserve_descriptorPoolSizes;
50 bool available(uint32_t& numSets, DescriptorPoolSizes& availableDescriptorPoolSizes)
const;
53 bool used(uint32_t& numSets, DescriptorPoolSizes& descriptorPoolSizes)
const;
56 bool allocated(uint32_t& numSets, DescriptorPoolSizes& descriptorPoolSizes)
const;
Container for DescriptorPools.
Definition DescriptorPools.h:24
void reserve(const ResourceRequirements &requirements)
check if there are enough Descriptorsets/Descrioptors, if not allocated a new DescriptorPool for thes...
bool allocated(uint32_t &numSets, DescriptorPoolSizes &descriptorPoolSizes) const
compute the number of sets and descriptors allocated.
bool available(uint32_t &numSets, DescriptorPoolSizes &availableDescriptorPoolSizes) const
compute the number of sets and descriptors available.
bool used(uint32_t &numSets, DescriptorPoolSizes &descriptorPoolSizes) const
compute the number of sets and descriptors used.
void getDescriptorPoolSizesToUse(uint32_t &maxSets, DescriptorPoolSizes &descriptorPoolSizes)
get the maxSets and descriptorPoolSizes to use
void report(std::ostream &out, indentation indent={}) const
write the internal details to stream.
DescriptorSetLayout encapsulates VkDescriptorSetLayout and VkDescriptorSetLayoutCreateInfo settings u...
Definition DescriptorSetLayout.h:28
ResourceRequirements provides a container for various Vulkan resource requirements that can be used t...
Definition ResourceRequirements.h:30
helper class for inserting indentation into streams useful for formatting output.
Definition stream.h:38