diff options
| author | Lucas Fryzek <lucas.fryzek@fryzekconcepts.com> | 2025-11-24 19:39:30 -0500 |
|---|---|---|
| committer | Lucas Fryzek <lucas.fryzek@fryzekconcepts.com> | 2025-11-24 19:39:30 -0500 |
| commit | b5f3587df4048d2ba807721ff2faea8c8a43a93f (patch) | |
| tree | 6913f730a41822b98fecd5e82b7cae46164fd9c0 /src/frygon/vulkan/fgvk_device_memory.c | |
| parent | 41c700fdbf1d79dfb571105ee93bfa46da6c8428 (diff) | |
WIPfrygon
Diffstat (limited to 'src/frygon/vulkan/fgvk_device_memory.c')
| -rw-r--r-- | src/frygon/vulkan/fgvk_device_memory.c | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/src/frygon/vulkan/fgvk_device_memory.c b/src/frygon/vulkan/fgvk_device_memory.c new file mode 100644 index 00000000000..d4b7b418a2c --- /dev/null +++ b/src/frygon/vulkan/fgvk_device_memory.c @@ -0,0 +1,81 @@ +/* + * Copyright © 2025 Lucas Francisco Fryzek + * SPDX-License-Identifier: MIT + */ +#include "fgvk_device_memory.h" + +#include "fgvk_device.h" + +VKAPI_ATTR VkResult VKAPI_CALL +fgvk_AllocateMemory(VkDevice device, + const VkMemoryAllocateInfo *pAllocateInfo, + const VkAllocationCallbacks *pAllocator, + VkDeviceMemory *pMem) +{ + VK_FROM_HANDLE(fgvk_device, dev, device); + VkResult result = VK_SUCCESS; + struct fgvk_device_memory *mem; + + mem = vk_device_memory_create(&dev->vk, pAllocateInfo, + pAllocator, sizeof(*mem)); + if (!mem) + return vk_error(dev, VK_ERROR_OUT_OF_HOST_MEMORY); + + mem->data = malloc(pAllocateInfo->allocationSize); + + if (!mem->data) + goto fail_alloc; + + *pMem = fgvk_device_memory_to_handle(mem); + + return VK_SUCCESS; + +fail_alloc: + vk_device_memory_destroy(&dev->vk, pAllocator, &mem->vk); + return result; +} + +VKAPI_ATTR void VKAPI_CALL +fgvk_FreeMemory(VkDevice device, + VkDeviceMemory _mem, + const VkAllocationCallbacks *pAllocator) +{ + VK_FROM_HANDLE(fgvk_device, dev, device); + VK_FROM_HANDLE(fgvk_device_memory, mem, _mem); + + vk_device_memory_destroy(&dev->vk, pAllocator, &mem->vk); +} + +VKAPI_ATTR VkResult VKAPI_CALL +fgvk_MapMemory2KHR(VkDevice device, + const VkMemoryMapInfoKHR *pMemoryMapInfo, + void **ppData) +{ + VK_FROM_HANDLE(fgvk_device_memory, mem, pMemoryMapInfo->memory); + + *ppData = mem->data; + return VK_SUCCESS; +} + +VKAPI_ATTR VkResult VKAPI_CALL +fgvk_UnmapMemory2KHR(VkDevice device, + const VkMemoryUnmapInfoKHR *pMemoryUnmapInfo) +{ + return VK_SUCCESS; +} + +VKAPI_ATTR VkResult VKAPI_CALL +fgvk_FlushMappedMemoryRanges(VkDevice device, + uint32_t memoryRangeCount, + const VkMappedMemoryRange *pMemoryRanges) +{ + return VK_SUCCESS; +} + +VKAPI_ATTR VkResult VKAPI_CALL +fgvk_InvalidateMappedMemoryRanges(VkDevice device, + uint32_t memoryRangeCount, + const VkMappedMemoryRange *pMemoryRanges) +{ + return VK_SUCCESS; +} |