Finish up memory stuff

For now, of course.
This commit is contained in:
Bill Currie 2020-02-11 09:37:04 +09:00
parent 1baee0cbba
commit 29b1d6baf8
7 changed files with 71 additions and 1 deletions

View File

@ -50,4 +50,8 @@ QFV_CreateBufferTransitionSet (qfv_buffertransition_t **transitions,
qfv_bufferview_t *QFV_CreateBufferView (qfv_buffer_t *buffer, VkFormat format, qfv_bufferview_t *QFV_CreateBufferView (qfv_buffer_t *buffer, VkFormat format,
VkDeviceSize offset, VkDeviceSize size); VkDeviceSize offset, VkDeviceSize size);
void QFV_DestroyBufferView (qfv_bufferview_t *view);
void QFV_DestroyBuffer (qfv_buffer_t *buffer);
#endif//__QF_Vulkan_buffer_h #endif//__QF_Vulkan_buffer_h

View File

@ -107,17 +107,23 @@ DEVICE_LEVEL_VULKAN_FUNCTION (vkDestroyFence)
DEVICE_LEVEL_VULKAN_FUNCTION (vkDestroySemaphore) DEVICE_LEVEL_VULKAN_FUNCTION (vkDestroySemaphore)
DEVICE_LEVEL_VULKAN_FUNCTION (vkFreeCommandBuffers) DEVICE_LEVEL_VULKAN_FUNCTION (vkFreeCommandBuffers)
DEVICE_LEVEL_VULKAN_FUNCTION (vkDestroyCommandPool) DEVICE_LEVEL_VULKAN_FUNCTION (vkDestroyCommandPool)
DEVICE_LEVEL_VULKAN_FUNCTION (vkCreateBuffer) DEVICE_LEVEL_VULKAN_FUNCTION (vkCreateBuffer)
DEVICE_LEVEL_VULKAN_FUNCTION (vkGetBufferMemoryRequirements) DEVICE_LEVEL_VULKAN_FUNCTION (vkGetBufferMemoryRequirements)
DEVICE_LEVEL_VULKAN_FUNCTION (vkAllocateMemory)
DEVICE_LEVEL_VULKAN_FUNCTION (vkBindBufferMemory) DEVICE_LEVEL_VULKAN_FUNCTION (vkBindBufferMemory)
DEVICE_LEVEL_VULKAN_FUNCTION (vkCreateBufferView) DEVICE_LEVEL_VULKAN_FUNCTION (vkCreateBufferView)
DEVICE_LEVEL_VULKAN_FUNCTION (vkDestroyBufferView)
DEVICE_LEVEL_VULKAN_FUNCTION (vkDestroyBuffer)
DEVICE_LEVEL_VULKAN_FUNCTION (vkCreateImage) DEVICE_LEVEL_VULKAN_FUNCTION (vkCreateImage)
DEVICE_LEVEL_VULKAN_FUNCTION (vkGetImageMemoryRequirements) DEVICE_LEVEL_VULKAN_FUNCTION (vkGetImageMemoryRequirements)
DEVICE_LEVEL_VULKAN_FUNCTION (vkBindImageMemory) DEVICE_LEVEL_VULKAN_FUNCTION (vkBindImageMemory)
DEVICE_LEVEL_VULKAN_FUNCTION (vkCreateImageView) DEVICE_LEVEL_VULKAN_FUNCTION (vkCreateImageView)
DEVICE_LEVEL_VULKAN_FUNCTION (vkDestroyImageView)
DEVICE_LEVEL_VULKAN_FUNCTION (vkDestroyImage)
DEVICE_LEVEL_VULKAN_FUNCTION (vkAllocateMemory)
DEVICE_LEVEL_VULKAN_FUNCTION (vkFreeMemory)
DEVICE_LEVEL_VULKAN_FUNCTION (vkMapMemory) DEVICE_LEVEL_VULKAN_FUNCTION (vkMapMemory)
DEVICE_LEVEL_VULKAN_FUNCTION (vkUnmapMemory) DEVICE_LEVEL_VULKAN_FUNCTION (vkUnmapMemory)
DEVICE_LEVEL_VULKAN_FUNCTION (vkFlushMappedMemoryRanges) DEVICE_LEVEL_VULKAN_FUNCTION (vkFlushMappedMemoryRanges)

View File

@ -57,4 +57,8 @@ qfv_imageview_t *QFV_CreateImageView (qfv_image_t *image, VkImageViewType type,
VkFormat format, VkFormat format,
VkImageAspectFlags aspect); VkImageAspectFlags aspect);
void QFV_DestroyImageView (qfv_imageview_t *view);
void QFV_DestroyImage (qfv_image_t *image);
#endif//__QF_Vulkan_image_h #endif//__QF_Vulkan_image_h

View File

@ -12,6 +12,7 @@ typedef struct qfv_mappedmemrange_s {
VkDeviceSize size; VkDeviceSize size;
} qfv_mappedmemrange_t; } qfv_mappedmemrange_t;
void QFV_FreeMemory (qfv_memory_t *memory);
void *QFV_MapMemory (qfv_memory_t *memory, void *QFV_MapMemory (qfv_memory_t *memory,
VkDeviceSize offset, VkDeviceSize size); VkDeviceSize offset, VkDeviceSize size);
void QFV_UnmapMemory (qfv_memory_t *memory); void QFV_UnmapMemory (qfv_memory_t *memory);

View File

@ -184,3 +184,25 @@ QFV_CreateBufferView (qfv_buffer_t *buffer, VkFormat format,
dfunc->vkCreateBufferView (dev, &createInfo, 0, &view->view); dfunc->vkCreateBufferView (dev, &createInfo, 0, &view->view);
return view; return view;
} }
void
QFV_DestroyBufferView (qfv_bufferview_t *view)
{
qfv_device_t *device = view->device;
VkDevice dev = device->dev;
qfv_devfuncs_t *dfunc = device->funcs;
dfunc->vkDestroyBufferView (dev, view->view, 0);
free (view);
}
void
QFV_DestroyBuffer (qfv_buffer_t *buffer)
{
qfv_device_t *device = buffer->device;
VkDevice dev = device->dev;
qfv_devfuncs_t *dfunc = device->funcs;
dfunc->vkDestroyBuffer (dev, buffer->buffer, 0);
free (buffer);
}

View File

@ -212,3 +212,25 @@ QFV_CreateImageView (qfv_image_t *image, VkImageViewType type, VkFormat format,
dfunc->vkCreateImageView (dev, &createInfo, 0, &view->view); dfunc->vkCreateImageView (dev, &createInfo, 0, &view->view);
return view; return view;
} }
void
QFV_DestroyImageView (qfv_imageview_t *view)
{
qfv_device_t *device = view->device;
VkDevice dev = device->dev;
qfv_devfuncs_t *dfunc = device->funcs;
dfunc->vkDestroyImageView (dev, view->view, 0);
free (view);
}
void
QFV_DestroyImage (qfv_image_t *image)
{
qfv_device_t *device = image->device;
VkDevice dev = device->dev;
qfv_devfuncs_t *dfunc = device->funcs;
dfunc->vkDestroyImage (dev, image->image, 0);
free (image);
}

View File

@ -60,6 +60,17 @@
#include "util.h" #include "util.h"
void
QFV_FreeMemory (qfv_memory_t *memory)
{
qfv_device_t *device = memory->device;
VkDevice dev = device->dev;
qfv_devfuncs_t *dfunc = device->funcs;
dfunc->vkFreeMemory (dev, memory->object, 0);
free (memory);
}
void * void *
QFV_MapMemory (qfv_memory_t *memory, VkDeviceSize offset, VkDeviceSize size) QFV_MapMemory (qfv_memory_t *memory, VkDeviceSize offset, VkDeviceSize size)
{ {