diff options
Diffstat (limited to 'src/window.cpp')
| -rw-r--r-- | src/window.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/window.cpp b/src/window.cpp index 443fdea..1c53d7b 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -54,7 +54,8 @@ VkPipeline graphicsPipeline; VkFramebuffer *swapchainFramebuffers = nullptr; VkCommandPool transferCommandPool; VkCommandBuffer transferCommandBuffer; -VkCommandPool vkCommandPool; +VkCommandPool graphicsCommandPool; +VkCommandBuffer graphicsCommandBuffer; VkCommandBuffer presentCommandBuffers[MAX_FRAMES_IN_FLIGHT]; VkSemaphore presentImageAvailableSemaphores[MAX_FRAMES_IN_FLIGHT]; VkSemaphore presentRenderFinishedSemaphores[MAX_FRAMES_IN_FLIGHT]; @@ -837,7 +838,7 @@ void CreateCommandPool() { poolInfo.flags = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT; poolInfo.queueFamilyIndex = graphicsFamilyIndex; - auto result = vkCreateCommandPool(vkDevice, &poolInfo, vkAllocator, &vkCommandPool); + auto result = vkCreateCommandPool(vkDevice, &poolInfo, vkAllocator, &graphicsCommandPool); if (result != VK_SUCCESS) { throw "failed to create command pool"; } @@ -853,7 +854,7 @@ void CreateCommandPool() { void CreateCommandBuffer() { VkCommandBufferAllocateInfo allocInfo{}; allocInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO; - allocInfo.commandPool = vkCommandPool; + allocInfo.commandPool = graphicsCommandPool; allocInfo.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY; allocInfo.commandBufferCount = MAX_FRAMES_IN_FLIGHT; @@ -863,6 +864,11 @@ void CreateCommandBuffer() { } allocInfo.commandBufferCount = 1; + result = vkAllocateCommandBuffers(vkDevice, &allocInfo, &graphicsCommandBuffer); + if (result != VK_SUCCESS) { + throw "failed to allocate command buffer"; + } + allocInfo.commandPool = transferCommandPool; result = vkAllocateCommandBuffers(vkDevice, &allocInfo, &transferCommandBuffer); if (result != VK_SUCCESS) { @@ -1131,7 +1137,7 @@ void DestroyWindow() { vkDestroySemaphore(vkDevice, presentRenderFinishedSemaphores[i], vkAllocator); vkDestroyFence(vkDevice, presentInFlightFences[i], vkAllocator); } - vkDestroyCommandPool(vkDevice, vkCommandPool, vkAllocator); + vkDestroyCommandPool(vkDevice, graphicsCommandPool, vkAllocator); vkDestroyCommandPool(vkDevice, transferCommandPool, vkAllocator); vkDestroyPipeline(vkDevice, graphicsPipeline, vkAllocator); vkDestroyPipelineLayout(vkDevice, pipelineLayout, vkAllocator); |
