35 lines
1.1 KiB
C++
35 lines
1.1 KiB
C++
#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);
|
|
|
|
VkDescriptorPool Ptr() {
|
|
return mPtr;
|
|
}
|
|
VkDescriptorSet Allocate(VkDescriptorSetLayout& descriptorSetLayout);
|
|
public:
|
|
static pmr::vector<VkDescriptorPoolSize> DefaultDescriptorPoolSize() {
|
|
return pmr::vector<VkDescriptorPoolSize>{
|
|
{ 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 },
|
|
};
|
|
}
|
|
};
|
|
} |