| 275 | } |
| 276 | |
| 277 | void VulkanCreateBuffer(GraphicContext* gctx, uint64_t size, VulkanBuffer* buffer) |
| 278 | { |
| 279 | KYTY_PROFILER_FUNCTION(); |
| 280 | |
| 281 | EXIT_IF(gctx == nullptr); |
| 282 | EXIT_IF(buffer == nullptr); |
| 283 | EXIT_IF(buffer->buffer != nullptr); |
| 284 | |
| 285 | VkBufferCreateInfo buffer_info {}; |
| 286 | buffer_info.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO; |
| 287 | buffer_info.size = size; |
| 288 | buffer_info.usage = buffer->usage; |
| 289 | buffer_info.sharingMode = VK_SHARING_MODE_EXCLUSIVE; |
| 290 | |
| 291 | vkCreateBuffer(gctx->device, &buffer_info, nullptr, &buffer->buffer); |
| 292 | EXIT_NOT_IMPLEMENTED(buffer->buffer == nullptr); |
| 293 | |
| 294 | vkGetBufferMemoryRequirements(gctx->device, buffer->buffer, &buffer->memory.requirements); |
| 295 | |
| 296 | bool allocated = VulkanAllocate(gctx, &buffer->memory); |
| 297 | EXIT_NOT_IMPLEMENTED(!allocated); |
| 298 | |
| 299 | // vkBindBufferMemory(gctx->device, buffer->buffer, buffer->memory.memory, buffer->memory.offset); |
| 300 | VulkanBindBufferMemory(gctx, buffer, &buffer->memory); |
| 301 | } |
| 302 | |
| 303 | void VulkanDeleteBuffer(GraphicContext* gctx, VulkanBuffer* buffer) |
| 304 | { |
no test coverage detected