上一章我们介绍了用于描述可以绑定的描述符类型的描述符布局。
在这一章节,我们为每一个 vkBuffer 创建描述符集,将其和 uniform 缓冲
描述符进行绑定。
描述符池
描述符集不能被直接创建,需要通过描述符池来分配。我们添加一个
叫做 createDescriptorPool 的函数来进行描述符池的创建:描述符集不能被
直接创建,需要通过描述符池来分配。
我们通过 VkDescriptorPoolSize 结构体来对描述符池可以分配的描述
符集进行定义:
VkDescriptorPoolSize poolSize = {};
p o o l S i z e . type = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
p o o l S i z e . d e s c r i p t o r C o u n t = s t a t i c _ c a s t <uint32_t >(
swapChainImages . s i z e ( ) ) ;
我们会在每一帧分配一个描述符。描述符池的大小需要通过 VkDe-
scriptorPoolCreateInfo 结构体定义:
VkDescriptorPoolCreateInfo poolInfo = {};
p o o l I n f o . sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
p o o l I n f o . poolSizeCount = 1 ;
p o o l I n f o . p P o o l S i z e s = &p o o l S i z e ;
除了可用的最大独立描述符个数外,我们还需要指定可以分配的