X-Git-Url: http://git.mutantstargoat.com?a=blobdiff_plain;f=src%2Fvulkan%2Fvkutil.cc;h=35a85dd0e3a378d52ae8cdf43a910bcecc0e54f6;hb=22347bb45e427ea763295d77da0de0d2ef9c2395;hp=526ec382c16661a99021401249d9393fa486a1a9;hpb=9d97500df375665ce6757c1341373cdd34fd9235;p=demo diff --git a/src/vulkan/vkutil.cc b/src/vulkan/vkutil.cc index 526ec38..35a85dd 100644 --- a/src/vulkan/vkutil.cc +++ b/src/vulkan/vkutil.cc @@ -7,6 +7,7 @@ #include #include +#include "allocator.h" #include "vkutil.h" /* global variables */ @@ -443,13 +444,25 @@ struct vku_buffer *vku_create_buffer(int sz, unsigned int usage) fprintf(stderr, "failed to create %d byte buffer (usage: %x)\n", sz, usage); return 0; } - // TODO back with memory + + VkMemoryRequirements mr; + vkGetBufferMemoryRequirements(vk_device, buf->buf, &mr); + + DevMemBlock block; + if(!vku_allocate(mr.size, &block)) + return 0; + + buf->mem_pool = block.dev_mem; + return buf; } void vku_destroy_buffer(struct vku_buffer *buf) { if(buf) { + //TODO change when the allocator changes + vku_free(buf->mem_pool); + vkDestroyBuffer(vk_device, buf->buf, 0); delete buf; }