2#include <UnCompute/Backend/DeviceObjectBase.h>
3#include <UnCompute/Memory/Object.h>
4#include <UnCompute/VulkanBackend/VulkanInclude.h>
10 std::array<float, DescriptorTypeMaxValue> Sizes{};
11 VkDescriptorPoolCreateFlags PoolFlags = VK_FLAGS_NONE;
26 VkDescriptorPool m_CurrentPool = VK_NULL_HANDLE;
27 std::vector<VkDescriptorPool> m_UsedPools;
28 std::vector<VkDescriptorPool> m_FreePools;
30 UInt32 m_NextPoolSize = 128;
32 inline UInt32 GetPoolSize()
34 auto result = m_NextPoolSize;
39 VkDescriptorPool CreatePool(UInt32 count, VkDescriptorPoolCreateFlags flags);
40 VkDescriptorPool GetPool();
47 void Reset()
override;
50 ResultCode AllocateSet(VkDescriptorSetLayout setLayout, VkDescriptorSet* pDescriptorSet);
Base class for all compute backend objects.
Definition: DeviceObjectBase.h:18
Interface for all backend-specific compute devices.
Definition: IComputeDevice.h:38
Base interface for all compute backend objects.
Definition: IDeviceObject.h:30
Definition: VulkanDescriptorAllocator.h:15
Definition: VulkanDescriptorAllocator.h:25
void Reset() override
Reset the object to uninitialized state.
Definition: VulkanDescriptorAllocator.cpp:17
Definition: VulkanDescriptorAllocator.h:9