free the allocated memory
[demo] / src / vulkan / vkutil.cc
index 526ec38..35a85dd 100644 (file)
@@ -7,6 +7,7 @@
 #include <string>
 #include <vector>
 
+#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;
        }