summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/window.cpp14
-rw-r--r--src/window.hpp3
2 files changed, 13 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);
diff --git a/src/window.hpp b/src/window.hpp
index 0ff88ad..ff9e677 100644
--- a/src/window.hpp
+++ b/src/window.hpp
@@ -26,6 +26,9 @@ extern VkPhysicalDeviceProperties vkPhysicalDeviceProperties;
extern VkSurfaceKHR vkSurfaceKHR;
extern VkDevice vkDevice;
extern VkAllocationCallbacks *vkAllocator;
+extern VkQueue graphicsQueue;
+extern VkCommandPool graphicsCommandPool;
+extern VkCommandBuffer graphicsCommandBuffer;
extern VkQueue transferQueue;
extern VkCommandPool transferCommandPool;
extern VkCommandBuffer transferCommandBuffer;