diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/vulkan/SCsub | 21 | ||||
-rw-r--r-- | drivers/vulkan/rendering_device_vulkan.cpp | 1 | ||||
-rw-r--r-- | drivers/vulkan/vulkan_context.h | 5 |
3 files changed, 9 insertions, 18 deletions
diff --git a/drivers/vulkan/SCsub b/drivers/vulkan/SCsub index 3e0f5788c3..8fe75367a8 100644 --- a/drivers/vulkan/SCsub +++ b/drivers/vulkan/SCsub @@ -6,24 +6,13 @@ thirdparty_obj = [] thirdparty_dir = "#thirdparty/vulkan" thirdparty_volk_dir = "#thirdparty/volk" +# Use bundled Vulkan headers +env.Prepend(CPPPATH=[thirdparty_dir, thirdparty_dir + "/include"]) + if env["use_volk"]: env.AppendUnique(CPPDEFINES=["USE_VOLK"]) env.Prepend(CPPPATH=[thirdparty_volk_dir]) -if env["platform"] == "android" and not env["use_volk"]: - # Use NDK Vulkan headers - ndk_vulkan_dir = env["ANDROID_NDK_ROOT"] + "/sources/third_party/vulkan/src" - thirdparty_includes = [ - ndk_vulkan_dir, - ndk_vulkan_dir + "/include", - ndk_vulkan_dir + "/layers", - ndk_vulkan_dir + "/layers/generated", - ] - env.Prepend(CPPPATH=thirdparty_includes) -else: - # Use bundled Vulkan headers - env.Prepend(CPPPATH=[thirdparty_dir, thirdparty_dir + "/include"]) - if env["platform"] == "android": env.AppendUnique(CPPDEFINES=["VK_USE_PLATFORM_ANDROID_KHR"]) elif env["platform"] == "iphone": @@ -47,6 +36,10 @@ if env["use_volk"]: thirdparty_sources_volk = [thirdparty_volk_dir + "/volk.c"] env_thirdparty_volk.add_source_files(thirdparty_obj, thirdparty_sources_volk) +elif env["platform"] == "android": + # Our current NDK version only provides old Vulkan headers, + # so we have to limit VMA. + env_thirdparty_vma.AppendUnique(CPPDEFINES=["VMA_VULKAN_VERSION=1000000"]) env_thirdparty_vma.add_source_files(thirdparty_obj, thirdparty_sources_vma) diff --git a/drivers/vulkan/rendering_device_vulkan.cpp b/drivers/vulkan/rendering_device_vulkan.cpp index f6677e2da4..dbe932f74c 100644 --- a/drivers/vulkan/rendering_device_vulkan.cpp +++ b/drivers/vulkan/rendering_device_vulkan.cpp @@ -8794,6 +8794,7 @@ void RenderingDeviceVulkan::initialize(VulkanContext *p_context, bool p_local_de memset(&allocatorInfo, 0, sizeof(VmaAllocatorCreateInfo)); allocatorInfo.physicalDevice = p_context->get_physical_device(); allocatorInfo.device = device; + allocatorInfo.instance = p_context->get_instance(); vmaCreateAllocator(&allocatorInfo, &allocator); } diff --git a/drivers/vulkan/vulkan_context.h b/drivers/vulkan/vulkan_context.h index 1690b853e3..fe09d4c497 100644 --- a/drivers/vulkan/vulkan_context.h +++ b/drivers/vulkan/vulkan_context.h @@ -233,10 +233,6 @@ protected: Error _get_preferred_validation_layers(uint32_t *count, const char *const **names); - VkInstance _get_instance() { - return inst; - } - public: uint32_t get_vulkan_major() const { return vulkan_major; }; uint32_t get_vulkan_minor() const { return vulkan_minor; }; @@ -245,6 +241,7 @@ public: VkDevice get_device(); VkPhysicalDevice get_physical_device(); + VkInstance get_instance() { return inst; } int get_swapchain_image_count() const; uint32_t get_graphics_queue() const; |