From 98b845f876bea94f7bf1b9d30588cf617bf93452 Mon Sep 17 00:00:00 2001 From: Kbz-8 Date: Sun, 23 Nov 2025 00:52:26 +0100 Subject: [PATCH] adding kvfFindMemoryType function --- kvf.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/kvf.h b/kvf.h index 954ad5c..8624c65 100755 --- a/kvf.h +++ b/kvf.h @@ -236,6 +236,7 @@ VkPipeline kvfCreateGraphicsPipeline(VkDevice device, VkPipelineCache cache, VkP void kvfDestroyPipeline(VkDevice device, VkPipeline pipeline); void kvfCheckVk(VkResult result); +int32_t kvfFindMemoryType(VkPhysicalDevice physical_device, uint32_t type_filter, VkMemoryPropertyFlags properties); #ifdef KVF_IMPL_VK_NO_PROTOTYPES #ifdef KVF_DEFINE_VULKAN_FUNCTION_PROTOTYPE @@ -520,6 +521,19 @@ void kvfCheckVk(VkResult result) __kvfCheckVk(result); } +int32_t kvfFindMemoryType(VkPhysicalDevice physical_device, uint32_t type_filter, VkMemoryPropertyFlags properties) +{ + VkPhysicalDeviceMemoryProperties mem_properties; + KVF_GET_INSTANCE_FUNCTION(vkGetPhysicalDeviceMemoryProperties)(physical_device, &mem_properties); + + for(int32_t i = 0; i < mem_properties.memoryTypeCount; i++) + { + if((type_filter & (1 << i)) && (mem_properties.memoryTypes[i].propertyFlags & properties) == properties) + return i; + } + return -1; +} + void __kvfAddDeviceToArray(VkPhysicalDevice device, int32_t graphics_queue, int32_t present_queue, int32_t compute_queue) { KVF_ASSERT(device != VK_NULL_HANDLE);