bug-14258: Make descriptor pools and command pools more consistent
diff --git a/demos/cube.c b/demos/cube.c
index 1abf525..91fcd8e 100644
--- a/demos/cube.c
+++ b/demos/cube.c
@@ -451,7 +451,7 @@
err = vkQueueWaitIdle(demo->queue);
assert(!err);
- vkDestroyCommandBuffer(demo->device, demo->cmd);
+ vkFreeCommandBuffers(demo->device, demo->cmd_pool, 1, cmd_bufs);
demo->cmd = VK_NULL_HANDLE;
}
@@ -465,15 +465,15 @@
VkResult U_ASSERT_ONLY err;
if (demo->cmd == VK_NULL_HANDLE) {
- const VkCmdBufferCreateInfo cmd = {
- .sType = VK_STRUCTURE_TYPE_CMD_BUFFER_CREATE_INFO,
+ const VkCmdBufferAllocInfo cmd = {
+ .sType = VK_STRUCTURE_TYPE_CMD_BUFFER_ALLOC_INFO,
.pNext = NULL,
.cmdPool = demo->cmd_pool,
.level = VK_CMD_BUFFER_LEVEL_PRIMARY,
- .flags = 0,
+ .count = 1,
};
- err = vkCreateCommandBuffer(demo->device, &cmd, &demo->cmd);
+ err = vkAllocCommandBuffers(demo->device, &cmd, &demo->cmd);
assert(!err);
VkCmdBufferBeginInfo cmd_buf_info = {
@@ -1630,7 +1630,6 @@
const VkDescriptorPoolCreateInfo descriptor_pool = {
.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO,
.pNext = NULL,
- .poolUsage = VK_DESCRIPTOR_POOL_USAGE_ONE_SHOT,
.maxSets = 1,
.count = 2,
.pTypeCount = type_counts,
@@ -1649,10 +1648,14 @@
VkResult U_ASSERT_ONLY err;
uint32_t i;
- err = vkAllocDescriptorSets(demo->device, demo->desc_pool,
- VK_DESCRIPTOR_SET_USAGE_STATIC,
- 1, &demo->desc_layout,
- &demo->desc_set);
+ VkDescriptorSetAllocInfo alloc_info = {
+ .sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOC_INFO,
+ .pNext = NULL,
+ .descriptorPool = demo->desc_pool,
+ .count = 1,
+ .pSetLayouts = &demo->desc_layout
+ };
+ err = vkAllocDescriptorSets(demo->device, &alloc_info, &demo->desc_set);
assert(!err);
memset(&tex_descs, 0, sizeof(tex_descs));
@@ -1721,12 +1724,12 @@
err = vkCreateCommandPool(demo->device, &cmd_pool_info, &demo->cmd_pool);
assert(!err);
- const VkCmdBufferCreateInfo cmd = {
- .sType = VK_STRUCTURE_TYPE_CMD_BUFFER_CREATE_INFO,
+ const VkCmdBufferAllocInfo cmd = {
+ .sType = VK_STRUCTURE_TYPE_CMD_BUFFER_ALLOC_INFO,
.pNext = NULL,
.cmdPool = demo->cmd_pool,
.level = VK_CMD_BUFFER_LEVEL_PRIMARY,
- .flags = 0,
+ .count = 1,
};
demo_prepare_buffers(demo);
@@ -1739,7 +1742,7 @@
demo_prepare_pipeline(demo);
for (uint32_t i = 0; i < demo->swapchainImageCount; i++) {
- err = vkCreateCommandBuffer(demo->device, &cmd, &demo->buffers[i].cmd);
+ err = vkAllocCommandBuffers(demo->device, &cmd, &demo->buffers[i].cmd);
assert(!err);
}
@@ -1798,7 +1801,7 @@
for (i = 0; i < demo->swapchainImageCount; i++) {
vkDestroyImageView(demo->device, demo->buffers[i].view);
- vkDestroyCommandBuffer(demo->device, demo->buffers[i].cmd);
+ vkFreeCommandBuffers(demo->device, demo->cmd_pool, 1, &demo->buffers[i].cmd);
}
free(demo->buffers);