aboutsummaryrefslogtreecommitdiffstats
path: root/src/vk-api.cpp
diff options
context:
space:
mode:
authorladevieq <ladevie.quentin@gmail.com>2022-07-11 00:50:27 +0200
committerladevieq <ladevie.quentin@gmail.com>2022-07-11 00:50:27 +0200
commit23e6a58d59b7a11cb8bdb7aa61d3c534c02027e7 (patch)
treeaa62fe9d75f4b82a0caee70d3bf14fa1e0b617b2 /src/vk-api.cpp
parentd676e9a2fb533494d1558483e8266605b1d5b632 (diff)
Refactor includes & improve compile time
Add platform defined to CMakeLists.txt
Diffstat (limited to 'src/vk-api.cpp')
-rw-r--r--src/vk-api.cpp23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/vk-api.cpp b/src/vk-api.cpp
index de23b65..2ae57e2 100644
--- a/src/vk-api.cpp
+++ b/src/vk-api.cpp
@@ -1,10 +1,13 @@
+#include "vk-api.hpp"
+
#include <cassert>
-#include <memory>
-#include "vk-api.hpp"
-#include "vulkan-loader.hpp"
+#include <vk_mem_alloc.h>
+
#include "window.hpp"
#include "utils.hpp"
+#include "vk-context.hpp"
+#include "vulkan-loader.hpp"
#ifdef _DEBUG
#define VKRESULT(result) assert(result == VK_SUCCESS);
@@ -171,12 +174,14 @@ handle vkapi::create_buffer(size_t data_size, VkBufferUsageFlags buffer_usage, V
buffer_info.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
buffer_info.size = data_size;
buffer_info.usage = buffer_usage | VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR;
-
+
VmaAllocationCreateInfo alloc_create_info = {};
alloc_create_info.usage = mem_usage;
alloc_create_info.flags = VMA_ALLOCATION_CREATE_MAPPED_BIT;
- VKRESULT(vmaCreateBuffer(context.allocator, &buffer_info, &alloc_create_info, &buffer->handle, &buffer->alloc, &buffer->alloc_info))
+ VmaAllocationInfo alloc_info {};
+
+ VKRESULT(vmaCreateBuffer(context.allocator, &buffer_info, &alloc_create_info, &buffer->handle, &buffer->alloc, &alloc_info))
VkBufferDeviceAddressInfo buffer_device_address_info = {};
buffer_device_address_info.sType = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO;
@@ -186,6 +191,7 @@ handle vkapi::create_buffer(size_t data_size, VkBufferUsageFlags buffer_usage, V
buffer->size = data_size;
buffer->device_address = vkGetBufferDeviceAddress(context.device, &buffer_device_address_info);
+ buffer->device_ptr = alloc_info.pMappedData;
buffers.push_back(buffer);
@@ -260,7 +266,9 @@ handle vkapi::create_image(VkExtent3D size, VkFormat format, VkImageUsageFlags u
VmaAllocationCreateInfo alloc_create_info = {};
alloc_create_info.usage = VMA_MEMORY_USAGE_GPU_ONLY;
- VKRESULT(vmaCreateImage(context.allocator, &img_create_info, &alloc_create_info, &image->handle, &image->alloc, &image->alloc_info))
+ VmaAllocationInfo alloc_info {};
+
+ VKRESULT(vmaCreateImage(context.allocator, &img_create_info, &alloc_create_info, &image->handle, &image->alloc, &alloc_info))
VkImageViewCreateInfo image_view_create_info = {};
image_view_create_info.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
@@ -280,6 +288,7 @@ handle vkapi::create_image(VkExtent3D size, VkFormat format, VkImageUsageFlags u
VKRESULT(vkCreateImageView(context.device, &image_view_create_info, VK_NULL_HANDLE, &image->view))
image->usages = usages;
+ image->device_ptr = alloc_info.pMappedData;
images.push_back(image);
@@ -387,7 +396,7 @@ std::vector<VkSemaphore> vkapi::create_semaphores(size_t semaphores_count) const
}
void vkapi::destroy_semaphores(VkSemaphore semaphores[], size_t semaphores_count) const {
- for(auto index { 0 }; index < semaphores_count; index++) {
+ for(size_t index { 0 }; index < semaphores_count; index++) {
vkDestroySemaphore(context.device, semaphores[index], nullptr);
}
}