Replace uniform with storage buffer for instances
Signed-off-by: Piotr Krygier <piotrkrygier@everyonecancode@xyz>
This commit is contained in:
@@ -119,7 +119,12 @@ static rse_err_t create_instance_buffers(struct graphics_context_t* context)
|
||||
buffer_size = sizeof(struct instance_data_t) * MAX_INSTANCE_NUMBER;
|
||||
|
||||
STATUS_CHECK(
|
||||
buffer_create_uniform(context, &context->render_targets[RENDER_TARGET_3D].instance_buffer, buffer_size));
|
||||
create_buffer(context,
|
||||
buffer_size,
|
||||
VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
|
||||
VMA_MEMORY_USAGE_AUTO_PREFER_HOST,
|
||||
VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT | VMA_ALLOCATION_CREATE_MAPPED_BIT,
|
||||
&context->render_targets[RENDER_TARGET_3D].instance_buffer));
|
||||
/* TODO: Move creation to somewhere else? */
|
||||
STATUS_CHECK(create_buffer(context,
|
||||
CMD_BUFFER_SIZE,
|
||||
@@ -435,10 +440,12 @@ void destroy_buffers(struct graphics_context_t* context)
|
||||
destroy_buffer(context, &context->render_targets[RENDER_TARGET_3D].vertex_buffer);
|
||||
destroy_buffer(context, &context->render_targets[RENDER_TARGET_3D].index_buffer);
|
||||
destroy_buffer(context, &context->render_targets[RENDER_TARGET_3D].draw_indirect_command_buffer);
|
||||
destroy_buffer(context, &context->render_targets[RENDER_TARGET_3D].instance_buffer);
|
||||
|
||||
for (iter = 0U; iter < context->uniform_buffers.vulkan_buffers_count; ++iter)
|
||||
{
|
||||
vmaDestroyBuffer(context->vulkan_handles.allocator, context->uniform_buffers.vulkan_buffers[iter].buffer, context->uniform_buffers.vulkan_buffers[iter].allocation);
|
||||
for (iter = 0U; iter < context->uniform_buffers.vulkan_buffers_count; ++iter) {
|
||||
vmaDestroyBuffer(context->vulkan_handles.allocator,
|
||||
context->uniform_buffers.vulkan_buffers[iter].buffer,
|
||||
context->uniform_buffers.vulkan_buffers[iter].allocation);
|
||||
}
|
||||
|
||||
context->uniform_buffers.vulkan_buffers_count = 0;
|
||||
|
||||
Reference in New Issue
Block a user