Commit: 404ed5a6eab1030b1a2d047a5adf9a8cb7484f04 Author: Jeroen Bakker Date: Mon Feb 6 13:31:21 2023 +0100 Branches: temp-vulkan-descriptor-sets https://developer.blender.org/rB404ed5a6eab1030b1a2d047a5adf9a8cb7484f04
Fix memory allocation by disabling any extension. =================================================================== M intern/ghost/intern/GHOST_ContextVK.cpp M source/blender/gpu/vulkan/vk_buffer.cc M source/blender/gpu/vulkan/vk_context.cc =================================================================== diff --git a/intern/ghost/intern/GHOST_ContextVK.cpp b/intern/ghost/intern/GHOST_ContextVK.cpp index 4ee48243234..10662f20d90 100644 --- a/intern/ghost/intern/GHOST_ContextVK.cpp +++ b/intern/ghost/intern/GHOST_ContextVK.cpp @@ -841,6 +841,12 @@ GHOST_TSuccess GHOST_ContextVK::initializeDrawingContext() extensions_device.push_back(VK_KHR_SWAPCHAIN_EXTENSION_NAME); } + extensions_device.push_back("VK_KHR_dedicated_allocation"); + /* Enable MoltenVK required instance extensions.*/ +#ifdef VK_MVK_MOLTENVK_EXTENSION_NAME + requireExtension( + extensions_available, extensions_enabled, "VK_KHR_get_physical_device_properties2"); +#endif VkApplicationInfo app_info = {}; app_info.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO; @@ -903,6 +909,13 @@ GHOST_TSuccess GHOST_ContextVK::initializeDrawingContext() return GHOST_kFailure; } + /* According to the Vulkan specs, when `VK_KHR_portability_subset` is available it should be + * enabled. See + * https://vulkan.lunarg.com/doc/view/1.2.198.1/mac/1.2-extensions/vkspec.html#VUID-VkDeviceCreateInfo-pProperties-04451*/ + if (device_extensions_support(m_physical_device, {VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME})) { + extensions_device.push_back(VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME); + } + vector<VkDeviceQueueCreateInfo> queue_create_infos; { diff --git a/source/blender/gpu/vulkan/vk_buffer.cc b/source/blender/gpu/vulkan/vk_buffer.cc index 66eec891046..ff12d153702 100644 --- a/source/blender/gpu/vulkan/vk_buffer.cc +++ b/source/blender/gpu/vulkan/vk_buffer.cc @@ -62,12 +62,9 @@ bool VKBuffer::create(VKContext &context, create_info.pQueueFamilyIndices = context.queue_family_ptr_get(); VmaAllocationCreateInfo vma_create_info = {}; - /* vma_create_info.flags = vma_allocation_flags(usage); vma_create_info.priority = 1.0f; vma_create_info.usage = VMA_MEMORY_USAGE_AUTO; - vma_create_inf - */ VkResult result = vmaCreateBuffer( allocator, &create_info, &vma_create_info, &vk_buffer_, &allocation_, nullptr); diff --git a/source/blender/gpu/vulkan/vk_context.cc b/source/blender/gpu/vulkan/vk_context.cc index 853968daa22..7d9fa356a65 100644 --- a/source/blender/gpu/vulkan/vk_context.cc +++ b/source/blender/gpu/vulkan/vk_context.cc @@ -28,8 +28,10 @@ VKContext::VKContext(void *ghost_window, void *ghost_context) /* Initialize the memory allocator. */ VmaAllocatorCreateInfo info = {}; - /* Should use same vulkan version as GHOST. */ - info.vulkanApiVersion = VK_API_VERSION_1_2; + /* Should use same vulkan version as GHOST, but set to 1.0 for now. Raising it to 1.2 requires + * correct extensions and funtions to be found, which doesn't out-of-the-box. We should fix this, + * but to continue the development at hand we lower the API to 1.0.*/ + info.vulkanApiVersion = VK_API_VERSION_1_0; info.physicalDevice = physical_device_; info.device = device_; info.instance = instance_; _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs