zengine/engine/modules/render/vulkan/include/vkn/wrapper/descriptorpool.h

35 lines
1.1 KiB
C
Raw Permalink Normal View History

2024-10-27 22:37:35 +08:00
#pragma once
#include "vkn/type.h"
#include "commandbuffer.h"
namespace vkn {
class Device;
class Queue;
class DescriptorPool {
protected:
VkDescriptorPool mPtr;
Device& mDevice;
public:
DescriptorPool(Device& device, pmr::vector<VkDescriptorPoolSize>& pPoolSizes,uint32_t maxSets);
2024-11-02 17:55:55 +08:00
VkDescriptorPool Ptr() {
return mPtr;
}
2024-10-27 22:37:35 +08:00
VkDescriptorSet Allocate(VkDescriptorSetLayout& descriptorSetLayout);
public:
static pmr::vector<VkDescriptorPoolSize> DefaultDescriptorPoolSize() {
return pmr::vector<VkDescriptorPoolSize>{
2024-11-08 17:18:23 +08:00
{ VK_DESCRIPTOR_TYPE_SAMPLER, 1024 },
{ VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1 },
{ VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, 8192 },
{ VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, 1024 },
{ VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, 1024 },
{ VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, 1024 },
{ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 8192 },
{ VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1024 },
{ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, 1024 },
{ VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, 1 },
{ VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, 1 },
2024-10-27 22:37:35 +08:00
};
}
};
}