25 VkCommandBufferBeginInfo cmdInfo = {
26 .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
28 .flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
29 .pInheritanceInfo =
NULL
32 return vkBeginCommandBuffer(*commandBuffer, &cmdInfo);
37 VK_VERIFY(vkEndCommandBuffer(*commandBuffer));
39 VkSubmitInfo submitInfo = {
40 .sType = VK_STRUCTURE_TYPE_SUBMIT_INFO,
42 .waitSemaphoreCount = 0,
43 .pWaitSemaphores =
NULL,
44 .pWaitDstStageMask =
NULL,
45 .commandBufferCount = 1,
46 .pCommandBuffers = commandBuffer,
47 .signalSemaphoreCount = 0,
48 .pSignalSemaphores =
NULL
51 VkFenceCreateInfo fCreateInfo = {
52 .sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO,
59 VK_VERIFY(vkQueueSubmit(*queue, 1, &submitInfo, queueFence));
67 VkCommandPoolCreateInfo cpCreateInfo = {
68 .sType = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO,
71 .flags = VK_COMMAND_POOL_CREATE_TRANSIENT_BIT | VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,
72 .queueFamilyIndex = queueFamilyIndex
80 VkCommandBuffer commandBuffer = VK_NULL_HANDLE;
81 VkCommandBufferAllocateInfo allocInfo = {
82 .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO,
84 .commandPool = *commandPool,
86 .commandBufferCount = 1