Conversation
Link lib{vulkan} on every platform, including macOS. Do not
direct-link MoltenVK from the backend (that pins an ICD onto every
consumer and collides with the loader's vk* exports).
GLFW+Vulkan examples adhoc-import libs{MoltenVK} and load it at
vkCreateInstance via VK_LUNARG_direct_driver_loading.
Contributor
Author
|
FYI the failing build appears to have run on the last release ( |
Member
BTW, feel free to take over as a maintainer :) I don't have much time to spare for ImGui at the moment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
BEFORE MERGE: Branch currently have temporary
queue/testingprerequisite inrepositories.manifest(drop once the new libmoltenvk packages are incppget.org).libimgui-render-vulkanandlibimgui-render-vulkan-dockingnow depend onlibvulkan-loader ^1.4.359and linklib{vulkan}on every platform, including macOS. The backend no longer picks an ICD. Direct-linking MoltenVK from it would pin a driver onto every consumer and collide with the loader'svk*exports.macOS GLFW+Vulkan examples consume
libmoltenvk ^1.4.2themselves:libs{MoltenVK}is an adhoc (unlinked) prerequisite,lib{mvk-direct-util}dlopens it, andVK_LUNARG_direct_driver_loadinghands it to the loader atvkCreateInstance.They also call
glfwInitVulkanLoader(vkGetInstanceProcAddr)so GLFW uses the linked Khronos loader. Exclusive direct driver loading cannot useglfwCreateWindowSurface(GLFW probes WSI on the loader before any ICD exists), so the examples create aCAMetalLayerand callvkCreateMetalSurfaceEXT(macos_surface.mm).This (upstream-conventional) setup is all explained in the libmoltenvk/PACKAGE-README.md.
Packages that include Apple SDK headers pin
cxx.stdto20on macOS (latestelsewhere). Apple SDK headers currently reject C++23/26 enum arithmetic.Also: docking null-backend test
.gitignorefix.