Implemented KRDevice::createDescriptorSets

This commit is contained in:
2022-09-20 18:23:45 -07:00
parent ee091aa1fe
commit 5ab035b076
2 changed files with 12 additions and 3 deletions

View File

@@ -475,9 +475,18 @@ bool KRDevice::initDescriptorPool()
return true;
}
VkDescriptorPool KRDevice::getDescriptorPool()
void KRDevice::createDescriptorSets(const std::vector<VkDescriptorSetLayout>& layouts, std::vector<VkDescriptorSet>& descriptorSets)
{
return m_descriptorPool;
VkDescriptorSetAllocateInfo allocInfo{};
allocInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
allocInfo.descriptorPool = m_descriptorPool;
allocInfo.descriptorSetCount = descriptorSets.size();
allocInfo.pSetLayouts = layouts.data();
if (vkAllocateDescriptorSets(m_logicalDevice, &allocInfo, descriptorSets.data()) != VK_SUCCESS) {
// TODO - Vulkan Refactoring - Error Handling
// In event of failure, should allocate an additional descriptor pool and try again
assert(false);
}
}
bool KRDevice::initialize(const std::vector<const char*>& deviceExtensions)

View File

@@ -83,7 +83,7 @@ public:
void graphicsUpload(VkCommandBuffer& commandBuffer, KRDataBlock& data, VkBuffer destination);
void graphicsUpload(VkCommandBuffer& commandBuffer, void* data, size_t size, VkBuffer destination);
VkDescriptorPool getDescriptorPool();
void createDescriptorSets(const std::vector<VkDescriptorSetLayout>& layouts, std::vector<VkDescriptorSet>& descriptorSets);
VkPhysicalDevice m_device;
VkDevice m_logicalDevice;