From 998ed84c26da259c5b19e228af245e58e0daa7d6 Mon Sep 17 00:00:00 2001 From: Jonathan Bradley Date: Wed, 23 Aug 2023 15:33:40 -0400 Subject: create command pool --- src/window.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/window.cpp') 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 REQUIRED_EXTENSIONS = std::vector { 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() { -- cgit v1.2.3