diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2023-08-23 15:33:40 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2023-08-23 15:33:40 -0400 |
| commit | 998ed84c26da259c5b19e228af245e58e0daa7d6 (patch) | |
| tree | bfbe872975fabe74d29f59eeca00718cf4a41fa2 /src | |
| parent | 70a7b74aba8c8337188d0c5047bff3a8a1e12525 (diff) | |
create command pool
Diffstat (limited to 'src')
| -rw-r--r-- | src/window.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/window.cpp b/src/window.cpp index e8a4b4a..be4dec9 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -45,6 +45,7 @@ VkDescriptorSetLayout vkDescriptorSetLayout; VkPipelineLayout pipelineLayout; VkPipeline graphicsPipeline; VkFramebuffer *swapchainFramebuffers = nullptr; +VkCommandPool vkCommandPool; const std::vector<const char *> REQUIRED_EXTENSIONS = std::vector<const char *> { VK_KHR_SWAPCHAIN_EXTENSION_NAME @@ -673,7 +674,20 @@ void CreateFramebuffers() { } } +void CreateCommandPool() { + VkCommandPoolCreateInfo poolInfo{}; + poolInfo.sType = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO; + poolInfo.flags = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT; + poolInfo.queueFamilyIndex = graphicsFamilyIndex; + + auto result = vkCreateCommandPool(vkDevice, &poolInfo, vkAllocator, &vkCommandPool); + if (result != VK_SUCCESS) { + throw "failed to create command pool"; + } +} + void DestroySwapchain() { + vkDestroyCommandPool(vkDevice, vkCommandPool, vkAllocator); if (swapchainFramebuffers != nullptr && swapchainFramebuffers != CAFE_BABE(VkFramebuffer)) { for (long i = 0; i < swapchainLength; ++i) { vkDestroyFramebuffer(vkDevice, swapchainFramebuffers[i], vkAllocator); @@ -714,6 +728,7 @@ void CreateWindow(PKEWindowProperties *wp) { CreateRenderPass(); CreateGraphicsPipeline(); CreateFramebuffers(); + CreateCommandPool(); } void DestroyWindow() { |
