/* for the moment: one cmd buffer per swapchain image */
static std::vector<VkCommandBuffer>vk_cmd_buffers;
static std::vector<VkFence>vk_fences;
/* for the moment: one cmd buffer per swapchain image */
static std::vector<VkCommandBuffer>vk_cmd_buffers;
static std::vector<VkFence>vk_fences;
printf("display %d\n", count++);
printf("current image %u\n", vk_current_image);
printf("display %d\n", count++);
printf("current image %u\n", vk_current_image);
vk_destroy_image(&vk_core, &vk_depth_att.obj);
vk_destroy_renderer(&vk_core, &vk_rnd);
vk_destroy_image(&vk_core, &vk_depth_att.obj);
vk_destroy_renderer(&vk_core, &vk_rnd);
for (size_t i = 0; i < vk_cmd_buffers.size(); i++)
vk_destroy_cmd_buffers(&vk_core, vk_cmd_buffers.size(), vk_cmd_buffers.data());
for (size_t i = 0; i < vk_cmd_buffers.size(); i++)
vk_destroy_cmd_buffers(&vk_core, vk_cmd_buffers.size(), vk_cmd_buffers.data());
memset(&sinfo, 0, sizeof sinfo);
sinfo.sType = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO;
memset(&sinfo, 0, sizeof sinfo);
sinfo.sType = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO;
if (vkCreateFence(vk_core.dev, &finfo, 0, &vk_fences[i]) != VK_SUCCESS) {
fprintf(stderr, "Failed to create fence: %d\n", i);
return false;
if (vkCreateFence(vk_core.dev, &finfo, 0, &vk_fences[i]) != VK_SUCCESS) {
fprintf(stderr, "Failed to create fence: %d\n", i);
return false;