From 0bde9a03a938c30b384994b2cdb67bf875536bbc Mon Sep 17 00:00:00 2001 From: luboslenco Date: Mon, 21 Jul 2025 15:06:21 +0200 Subject: [PATCH] Gpu cleanup --- base/sources/backends/direct3d12_gpu.c | 4 ++-- base/sources/backends/metal_gpu.m | 5 ++--- base/sources/backends/vulkan_gpu.c | 7 ++++--- base/sources/backends/vulkan_gpu.h | 1 - base/sources/iron.h | 6 ++---- base/sources/iron_gpu.h | 2 +- 6 files changed, 11 insertions(+), 14 deletions(-) diff --git a/base/sources/backends/direct3d12_gpu.c b/base/sources/backends/direct3d12_gpu.c index 3ace340d..68bc4832 100644 --- a/base/sources/backends/direct3d12_gpu.c +++ b/base/sources/backends/direct3d12_gpu.c @@ -999,14 +999,14 @@ void gpu_vertex_buffer_init(gpu_buffer_t *buffer, int count, gpu_vertex_structur buffer->impl.vertex_buffer_view.StrideInBytes = buffer->stride; } -float *gpu_vertex_buffer_lock(gpu_buffer_t *buffer) { +void *gpu_vertex_buffer_lock(gpu_buffer_t *buffer) { D3D12_RANGE range = { .Begin = 0, .End = buffer->count * buffer->stride, }; void *p; buffer->impl.buffer->lpVtbl->Map(buffer->impl.buffer, 0, &range, &p); - return (float *)p; + return p; } void gpu_vertex_buffer_unlock(gpu_buffer_t *buffer) { diff --git a/base/sources/backends/metal_gpu.m b/base/sources/backends/metal_gpu.m index fa26eb2f..21b14849 100644 --- a/base/sources/backends/metal_gpu.m +++ b/base/sources/backends/metal_gpu.m @@ -587,10 +587,9 @@ void gpu_vertex_buffer_init(gpu_buffer_t *buffer, int count, gpu_vertex_structur buffer->impl.metal_buffer = (__bridge_retained void *)buf; } -float *gpu_vertex_buffer_lock(gpu_buffer_t *buf) { +void *gpu_vertex_buffer_lock(gpu_buffer_t *buf) { id buffer = (__bridge id)buf->impl.metal_buffer; - float *floats = (float *)[buffer contents]; - return floats; + return [buffer contents]; } void gpu_vertex_buffer_unlock(gpu_buffer_t *buf) { diff --git a/base/sources/backends/vulkan_gpu.c b/base/sources/backends/vulkan_gpu.c index ae572ee0..de00a322 100644 --- a/base/sources/backends/vulkan_gpu.c +++ b/base/sources/backends/vulkan_gpu.c @@ -1818,9 +1818,10 @@ void gpu_vertex_buffer_init(gpu_buffer_t *buffer, int count, gpu_vertex_structur vkBindBufferMemory(device, buffer->impl.buf, buffer->impl.mem, 0); } -float *gpu_vertex_buffer_lock(gpu_buffer_t *buffer) { - vkMapMemory(device, buffer->impl.mem, 0, buffer->count * buffer->stride, 0, (void **)&buffer->impl.data); - return buffer->impl.data; +void *gpu_vertex_buffer_lock(gpu_buffer_t *buffer) { + void *p; + vkMapMemory(device, buffer->impl.mem, 0, buffer->count * buffer->stride, 0, (void **)&p); + return p; } void gpu_vertex_buffer_unlock(gpu_buffer_t *buffer) { diff --git a/base/sources/backends/vulkan_gpu.h b/base/sources/backends/vulkan_gpu.h index fb226365..d69fb177 100644 --- a/base/sources/backends/vulkan_gpu.h +++ b/base/sources/backends/vulkan_gpu.h @@ -30,7 +30,6 @@ typedef struct { VkBuffer buf; VkDeviceMemory mem; VkMemoryAllocateInfo mem_alloc; - float *data; } gpu_buffer_impl_t; typedef struct { diff --git a/base/sources/iron.h b/base/sources/iron.h index 90317f82..e7844a5b 100644 --- a/base/sources/iron.h +++ b/base/sources/iron.h @@ -927,9 +927,8 @@ void gpu_delete_index_buffer(gpu_buffer_t *buffer) { } u32_array_t *gpu_lock_index_buffer(gpu_buffer_t *buffer) { - void *vertices = gpu_index_buffer_lock(buffer); u32_array_t *ar = (u32_array_t *)malloc(sizeof(u32_array_t)); - ar->buffer = vertices; + ar->buffer = gpu_index_buffer_lock(buffer); ar->length = buffer->count; return ar; } @@ -946,9 +945,8 @@ void gpu_delete_vertex_buffer(gpu_buffer_t *buffer) { } buffer_t *gpu_lock_vertex_buffer(gpu_buffer_t *buffer) { - float *vertices = gpu_vertex_buffer_lock(buffer); buffer_t *b = (buffer_t *)malloc(sizeof(buffer_t)); - b->buffer = vertices; + b->buffer = gpu_vertex_buffer_lock(buffer); b->length = buffer->count * buffer->stride; return b; } diff --git a/base/sources/iron_gpu.h b/base/sources/iron_gpu.h index 24f3fa4c..13e84e9d 100644 --- a/base/sources/iron_gpu.h +++ b/base/sources/iron_gpu.h @@ -176,7 +176,7 @@ void gpu_texture_destroy(gpu_texture_t *texture); void gpu_render_target_init(gpu_texture_t *target, int width, int height, gpu_texture_format_t format); void gpu_render_target_init2(gpu_texture_t *render_target, int width, int height, gpu_texture_format_t format, int framebuffer_index); void gpu_vertex_buffer_init(gpu_buffer_t *buffer, int count, gpu_vertex_structure_t *structure); -float *gpu_vertex_buffer_lock(gpu_buffer_t *buffer); +void *gpu_vertex_buffer_lock(gpu_buffer_t *buffer); void gpu_vertex_buffer_unlock(gpu_buffer_t *buffer); void gpu_constant_buffer_init(gpu_buffer_t *buffer, int size); void gpu_constant_buffer_destroy(gpu_buffer_t *buffer);