Vulkan: don't require vulkan-loader (macOS)

Which also avoids requiring portability_enumeration extension
This commit is contained in:
李通洲
2022-12-13 11:10:50 +08:00
parent 3b2c189083
commit 7e98fa8626
4 changed files with 13 additions and 14 deletions
+1 -1
View File
@@ -64,7 +64,7 @@ jobs:
uses: actions/checkout@v3
- name: install required packages
run: brew install vulkan-loader molten-vk
run: brew install vulkan-headers molten-vk
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
+1 -1
View File
@@ -53,7 +53,7 @@ The following libraries are used if present at runtime:
### macOS
* [`MediaRemote`](https://iphonedev.wiki/index.php/MediaRemote.framework): Need for Media detection. It's a private framework provided by newer macOS system.
* [`libvulkan`](https://www.vulkan.org/): Vulkan module. To get it actually working, both loader (`vulkan-loader`) and driver (`molten-vk`) need to be installed.
* [`MoltenVK`](https://github.com/KhronosGroup/MoltenVK): Vulkan driver for macOS.
### Windows
+1 -1
View File
@@ -341,7 +341,7 @@
# Sets an user specific path to a library to load.
# Must be a valid path to a library.
#--lib-PCI /usr/lib/libpci.so
#--lib-vulkan /usr/lib/libvulkan.so
#--lib-vulkan /usr/lib/libvulkan.so (libMoltenVK.dylib on macOS)
#--lib-wayland /usr/lib/libwayland-client.so
#--lib-xcb-randr /usr/lib/libxcb-randr.so
#--lib-xcb /usr/lib/libxcb.so
+10 -11
View File
@@ -38,7 +38,13 @@ static void applyDriverName(VkPhysicalDeviceDriverProperties* properties, FFstrb
static const char* detectVulkan(const FFinstance* instance, FFVulkanResult* result)
{
FF_LIBRARY_LOAD(vulkan, &instance->config.libVulkan, "dlopen libvulkan"FF_LIBRARY_EXTENSION " failed", "libvulkan"FF_LIBRARY_EXTENSION, 2, "vulkan-1"FF_LIBRARY_EXTENSION, -1)
FF_LIBRARY_LOAD(vulkan, &instance->config.libVulkan, "dlopen libvulkan"FF_LIBRARY_EXTENSION " failed",
#ifdef __APPLE__
"libMoltenVK"FF_LIBRARY_EXTENSION, -1
#else
"libvulkan"FF_LIBRARY_EXTENSION, 2, "vulkan-1"FF_LIBRARY_EXTENSION, -1
#endif
)
FF_LIBRARY_LOAD_SYMBOL_MESSAGE(vulkan, vkGetInstanceProcAddr)
FF_LIBRARY_LOAD_SYMBOL_MESSAGE(vulkan, vkCreateInstance)
FF_LIBRARY_LOAD_SYMBOL_MESSAGE(vulkan, vkDestroyInstance)
@@ -88,16 +94,9 @@ static const char* detectVulkan(const FFinstance* instance, FFVulkanResult* resu
.pApplicationInfo = &applicationInfo,
.enabledLayerCount = 0,
.ppEnabledLayerNames = NULL,
#if defined(__APPLE__) && defined(VK_KHR_portability_enumeration)
.enabledExtensionCount = 1,
.ppEnabledExtensionNames = (const char* const[]) { VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME },
.flags = VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR
#else
.enabledExtensionCount = 0,
.ppEnabledExtensionNames = NULL,
.flags = 0
#endif
.enabledExtensionCount = 0,
.ppEnabledExtensionNames = NULL,
.flags = 0
};
VkInstance vkInstance;