aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorladevieq <ladevie.quentin@gmail.com>2026-09-03 22:10:42 +0200
committerladevieq <ladevie.quentin@gmail.com>2026-09-03 22:56:45 +0200
commit61f4cab1ebafc5ff62ffa1c324ac0ff72c9ee0bb (patch)
treee33f9f9fd939dd7136228d045bf8eb9f9e6fa83b /src
parentf060e63604520da0ba381bcbc86bee1cf48374be (diff)
Removed usage from before desc and buffer creation
Diffstat (limited to 'src')
-rw-r--r--src/gltf.cpp12
-rw-r--r--src/main.cpp7
-rw-r--r--src/scene.cpp36
-rw-r--r--src/vk-device.cpp12
4 files changed, 22 insertions, 45 deletions
diff --git a/src/gltf.cpp b/src/gltf.cpp
index 8b5255c..67daade 100644
--- a/src/gltf.cpp
+++ b/src/gltf.cpp
@@ -158,24 +158,20 @@ static void load_textures(char* path, std::vector<handle<device_texture>>& textu
// samplers[sampler_index] = vkrenderer::create_sampler(VK_FILTER_LINEAR, VK_SAMPLER_ADDRESS_MODE_REPEAT);
// }
- vkdevice& device = vkdevice::get();
-
constexpr auto buffers_count = 2U;
size_t buffer_size = 256U * MB;
handle<device_buffer> staging_buffers_handle[buffers_count] = {
- device.create_buffer({
+ vkdevice::get().create_buffer({
.size = buffer_size,
- .usages = VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
+ .usages = VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT,
.memory_properties = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
- .memory_usage = VMA_MEMORY_USAGE_CPU_TO_GPU,
.name = "image upload staging buffer 0",
}),
- device.create_buffer({
+ vkdevice::get().create_buffer({
.size = buffer_size,
- .usages = VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
+ .usages = VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT,
.memory_properties = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
- .memory_usage = VMA_MEMORY_USAGE_CPU_TO_GPU,
.name = "image upload staging buffer 1",
}),
};
diff --git a/src/main.cpp b/src/main.cpp
index 6b1cae3..8139264 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -237,7 +237,6 @@ int main() {
#if VK
.usages = VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT,
.memory_properties = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
- .memory_usage = VMA_MEMORY_USAGE_CPU_TO_GPU,
#else
.map = true,
.states = D3D12_RESOURCE_STATE_COPY_SOURCE,
@@ -251,9 +250,8 @@ int main() {
const handle<device_buffer> vertex_buffer_handle = render_device.create_buffer({
.size = MB * sizeof(uint32_t),
#if VK
- .usages = VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT,
+ .usages = VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT,
.memory_properties = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
- .memory_usage = VMA_MEMORY_USAGE_CPU_TO_GPU,
.name = "ImGui vertex buffer",
#else
#endif
@@ -264,7 +262,6 @@ int main() {
#if VK
.usages = VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT,
.memory_properties = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
- .memory_usage = VMA_MEMORY_USAGE_CPU_TO_GPU,
.name = "ImGui index buffer",
#else
#endif
@@ -307,7 +304,7 @@ int main() {
.vs_code_size = vertex_code_size,
.fs_code = fragment_code,
.fs_code_size = fragment_code_size,
- .color_attachments_format = surface->surface_format.format,
+ .color_attachments_format = &surface->surface_format.format,
.color_attachments_format_count = 1U
});
diff --git a/src/scene.cpp b/src/scene.cpp
index 12499b0..5146bf8 100644
--- a/src/scene.cpp
+++ b/src/scene.cpp
@@ -178,79 +178,67 @@ scene::scene(const camera& cam, u16 width, u16 height)
{
indices_buffer_handle = vkdevice::get().create_buffer({
.size = indices.size() * sizeof(indices[0]),
- .usages = VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT,
+ .usages = VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT,
.memory_properties = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
- .memory_usage = VMA_MEMORY_USAGE_CPU_TO_GPU,
.name = "indices",
});
const auto& indices_buffer = vkdevice::get().get_buffer(indices_buffer_handle);
- void* ptr = indices_buffer->mapped_ptr;
- memcpy(ptr, indices.data(), indices.size() * sizeof(indices[0]));
+ memcpy(indices_buffer->cpu_ptr, indices.data(), indices.size() * sizeof(indices[0]));
}
{
positions_buffer_handle = vkdevice::get().create_buffer({
.size = positions.size() * sizeof(positions[0]),
- .usages = VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT,
+ .usages = VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT,
.memory_properties = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
- .memory_usage = VMA_MEMORY_USAGE_CPU_TO_GPU,
.name = "positions",
});
const auto& positions_buffer = vkdevice::get().get_buffer(positions_buffer_handle);
- void* ptr = positions_buffer->mapped_ptr;
- memcpy(ptr, positions.data(), positions.size() * sizeof(positions[0]));
+ memcpy(positions_buffer->cpu_ptr, positions.data(), positions.size() * sizeof(positions[0]));
}
{
normals_buffer_handle = vkdevice::get().create_buffer({
.size = normals.size() * sizeof(normals[0]),
- .usages = VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT,
+ .usages = VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT,
.memory_properties = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
- .memory_usage = VMA_MEMORY_USAGE_CPU_TO_GPU,
.name = "normals",
});
const auto& normals_buffer = vkdevice::get().get_buffer(normals_buffer_handle);
- void* ptr = normals_buffer->mapped_ptr;
- memcpy(ptr, normals.data(), normals.size() * sizeof(normals[0]));
+ memcpy(normals_buffer->cpu_ptr, normals.data(), normals.size() * sizeof(normals[0]));
}
{
uvs_buffer_handle = vkdevice::get().create_buffer({
.size = uvs.size() * sizeof(uvs[0]),
- .usages = VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT,
+ .usages = VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT,
.memory_properties = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
- .memory_usage = VMA_MEMORY_USAGE_CPU_TO_GPU,
.name = "uvs",
});
const auto& uvs_buffer = vkdevice::get().get_buffer(uvs_buffer_handle);
- void* ptr = uvs_buffer->mapped_ptr;
- memcpy(ptr, uvs.data(), uvs.size() * sizeof(uvs[0]));
+ memcpy(uvs_buffer->cpu_ptr, uvs.data(), uvs.size() * sizeof(uvs[0]));
}
{
bvh_buffer_handle = vkdevice::get().create_buffer({
.size = packed_nodes.size() * sizeof(packed_nodes[0]),
- .usages = VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT,
+ .usages = VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT,
.memory_properties = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
- .memory_usage = VMA_MEMORY_USAGE_CPU_TO_GPU,
.name = "bvh",
});
const auto& bvh_buffer = vkdevice::get().get_buffer(bvh_buffer_handle);
- void* ptr = bvh_buffer->mapped_ptr;
- memcpy(ptr, packed_nodes.data(), packed_nodes.size() * sizeof(packed_nodes[0]));
+ memcpy(bvh_buffer->cpu_ptr, packed_nodes.data(), packed_nodes.size() * sizeof(packed_nodes[0]));
}
{
materials_buffer_handle = vkdevice::get().create_buffer({
.size = materials.size() * sizeof(materials[0]),
- .usages = VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT,
+ .usages = VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT,
.memory_properties = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
- .memory_usage = VMA_MEMORY_USAGE_CPU_TO_GPU,
.name = "materials",
});
const auto& materials_buffer = vkdevice::get().get_buffer(materials_buffer_handle);
- void* ptr = materials_buffer->mapped_ptr;
- memcpy(ptr, materials.data(), materials.size() * sizeof(materials[0]));
+ memcpy(materials_buffer->cpu_ptr, materials.data(), materials.size() * sizeof(materials[0]));
}
}
diff --git a/src/vk-device.cpp b/src/vk-device.cpp
index f35d02b..8e46205 100644
--- a/src/vk-device.cpp
+++ b/src/vk-device.cpp
@@ -41,8 +41,6 @@ static void create_heaps(size_t max_images, size_t max_samplers) {
.usages = VK_BUFFER_USAGE_2_DESCRIPTOR_HEAP_BIT_EXT |
VK_BUFFER_USAGE_2_TRANSFER_DST_BIT,
.memory_properties = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
- .memory_usage = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT |
- VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
.name = "image descriptor_heap",
});
}
@@ -54,8 +52,6 @@ static void create_heaps(size_t max_images, size_t max_samplers) {
.usages = VK_BUFFER_USAGE_2_DESCRIPTOR_HEAP_BIT_EXT |
VK_BUFFER_USAGE_2_TRANSFER_DST_BIT,
.memory_properties = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
- .memory_usage = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT |
- VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
.name = "sampler descriptor_heap",
});
}
@@ -94,14 +90,14 @@ static device_semaphore create_semaphore(const semaphore_desc& desc, const char*
}
-static VkShaderModule create_shader_module(uint8_t* code, size_t code_size) {
+static VkShaderModule create_shader_module(const uint8_t* code, size_t code_size) {
VkShaderModule shader_module;
VkShaderModuleCreateInfo create_info{
.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO,
.pNext = nullptr,
.flags = 0U,
.codeSize = code_size,
- .pCode = reinterpret_cast<uint32_t*>(code),
+ .pCode = reinterpret_cast<const uint32_t*>(code),
};
VK_CHECK(vkCreateShaderModule(device, &create_info, nullptr, &shader_module));
@@ -260,9 +256,9 @@ handle<device_buffer> vkdevice::create_buffer(const buffer_desc& desc) {
.sharingMode = VK_SHARING_MODE_EXCLUSIVE,
};
+ VmaAllocationCreateFlags flags = (desc.memory_properties & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) ? (VMA_ALLOCATION_CREATE_MAPPED_BIT | VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT) : 0U;
VmaAllocationCreateInfo alloc_create_info{
- .flags = desc.memory_properties & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT ? VMA_ALLOCATION_CREATE_MAPPED_BIT : 0U,
- .usage = static_cast<VmaMemoryUsage>(desc.memory_usage),
+ .flags = flags,
.requiredFlags = desc.memory_properties,
};