Skip to content

Commit

Permalink
Use buffer usage
Browse files Browse the repository at this point in the history
  • Loading branch information
RobDangerous committed Feb 4, 2025
1 parent ce148d2 commit 3de8f20
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 9 deletions.
20 changes: 15 additions & 5 deletions Backends/Graphics5/Vulkan/Sources/kope/vulkan/device.c
Original file line number Diff line number Diff line change
Expand Up @@ -524,15 +524,25 @@ void kope_vulkan_device_create_buffer(kope_g5_device *device, const kope_g5_buff

buffer->vulkan.size = parameters->size;

VkBufferUsageFlags usage;
if ((parameters->usage_flags & KOPE_G5_BUFFER_USAGE_VERTEX) != 0) {
usage |= VK_BUFFER_USAGE_VERTEX_BUFFER_BIT;
}
if ((parameters->usage_flags & KOPE_G5_BUFFER_USAGE_INDEX) != 0) {
usage |= VK_BUFFER_USAGE_INDEX_BUFFER_BIT;
}
if ((parameters->usage_flags & KOPE_G5_BUFFER_USAGE_INDIRECT) != 0) {
usage |= VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT;
}
#ifdef KINC_VKRT
usage |= VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT;
#endif

const VkBufferCreateInfo create_info = {
.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
.pNext = NULL,
.size = parameters->size,
#ifdef KINC_VKRT
.usage = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
#else
.usage = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,
#endif
.usage = usage,
.flags = 0,
};

Expand Down
9 changes: 5 additions & 4 deletions Sources/kope/graphics5/device.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,11 @@ typedef enum kope_g5_buffer_usage {
KOPE_G5_BUFFER_USAGE_COPY_SRC = 0x0004,
KOPE_G5_BUFFER_USAGE_COPY_DST = 0x0008,
KOPE_G5_BUFFER_USAGE_INDEX = 0x0010,
KOPE_G5_BUFFER_USAGE_READ_WRITE = 0x0020,
KOPE_G5_BUFFER_USAGE_INDIRECT = 0x0040,
KOPE_G5_BUFFER_USAGE_QUERY_RESOLVE = 0x0080,
KOPE_G5_BUFFER_USAGE_RAYTRACING_VOLUME = 0x0100
KOPE_G5_BUFFER_USAGE_VERTEX = 0x0020,
KOPE_G5_BUFFER_USAGE_READ_WRITE = 0x0040,
KOPE_G5_BUFFER_USAGE_INDIRECT = 0x0080,
KOPE_G5_BUFFER_USAGE_QUERY_RESOLVE = 0x0100,
KOPE_G5_BUFFER_USAGE_RAYTRACING_VOLUME = 0x0200
} kope_g5_buffer_usage;

typedef struct kope_g5_buffer_parameters {
Expand Down

0 comments on commit 3de8f20

Please sign in to comment.