mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-11 21:58:31 +09:00
[Feat] (MG_Backend/DirectVulkan): dynamically load vulkan functions for vma
This commit is contained in:
@@ -255,6 +255,14 @@ set(MOBILEGL_LINK_LIBRARIES
|
|||||||
GPUOpen::VulkanMemoryAllocator
|
GPUOpen::VulkanMemoryAllocator
|
||||||
)
|
)
|
||||||
|
|
||||||
|
set(MOBILEGL_COMPILE_DEF
|
||||||
|
-DVMA_STATIC_VULKAN_FUNCTIONS=0
|
||||||
|
-DVMA_DYNAMIC_VULKAN_FUNCTIONS=1
|
||||||
|
-DVMA_VULKAN_VERSION=1001000
|
||||||
|
)
|
||||||
|
|
||||||
|
message(STATUS "MOBILEGL_COMPILE_DEF=${MOBILEGL_COMPILE_DEF}")
|
||||||
|
|
||||||
set(MOBILEGL_INCLUDE_DIR
|
set(MOBILEGL_INCLUDE_DIR
|
||||||
${CMAKE_SOURCE_DIR}/include
|
${CMAKE_SOURCE_DIR}/include
|
||||||
${CMAKE_SOURCE_DIR}/MobileGL
|
${CMAKE_SOURCE_DIR}/MobileGL
|
||||||
@@ -291,6 +299,11 @@ target_link_libraries(${CMAKE_PROJECT_NAME}
|
|||||||
${MOBILEGL_LINK_LIBRARIES}
|
${MOBILEGL_LINK_LIBRARIES}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
target_compile_definitions(${CMAKE_PROJECT_NAME}
|
||||||
|
PUBLIC
|
||||||
|
${MOBILEGL_COMPILE_DEF}
|
||||||
|
)
|
||||||
|
|
||||||
if(NOT ANDROID)
|
if(NOT ANDROID)
|
||||||
add_library(${CMAKE_PROJECT_NAME}_s STATIC
|
add_library(${CMAKE_PROJECT_NAME}_s STATIC
|
||||||
${SOURCE_FILES}
|
${SOURCE_FILES}
|
||||||
@@ -318,6 +331,11 @@ if(NOT ANDROID)
|
|||||||
PUBLIC
|
PUBLIC
|
||||||
${MOBILEGL_LINK_LIBRARIES}
|
${MOBILEGL_LINK_LIBRARIES}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
target_compile_definitions(${CMAKE_PROJECT_NAME}_s
|
||||||
|
PUBLIC
|
||||||
|
${MOBILEGL_COMPILE_DEF}
|
||||||
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (TRACY_ENABLE)
|
if (TRACY_ENABLE)
|
||||||
|
|||||||
@@ -1020,9 +1020,13 @@ namespace MobileGL::MG_Backend::DirectVulkan {
|
|||||||
}
|
}
|
||||||
|
|
||||||
VmaAllocatorCreateInfo allocatorInfo{};
|
VmaAllocatorCreateInfo allocatorInfo{};
|
||||||
|
VmaVulkanFunctions vulkanFunctions{};
|
||||||
|
vulkanFunctions.vkGetInstanceProcAddr = vkGetInstanceProcAddr;
|
||||||
|
vulkanFunctions.vkGetDeviceProcAddr = vkGetDeviceProcAddr;
|
||||||
allocatorInfo.instance = m_instance;
|
allocatorInfo.instance = m_instance;
|
||||||
allocatorInfo.physicalDevice = m_physicalDevice.handle;
|
allocatorInfo.physicalDevice = m_physicalDevice.handle;
|
||||||
allocatorInfo.device = m_device;
|
allocatorInfo.device = m_device;
|
||||||
|
allocatorInfo.pVulkanFunctions = &vulkanFunctions;
|
||||||
allocatorInfo.vulkanApiVersion = VK_API_VERSION_1_0;
|
allocatorInfo.vulkanApiVersion = VK_API_VERSION_1_0;
|
||||||
|
|
||||||
VK_VERIFY(vmaCreateAllocator(&allocatorInfo, &m_allocator), "vmaCreateAllocator");
|
VK_VERIFY(vmaCreateAllocator(&allocatorInfo, &m_allocator), "vmaCreateAllocator");
|
||||||
|
|||||||
Reference in New Issue
Block a user