Fix to ImGuiVulkan Experiment to run on MacOSX#1197
Merged
Perksey merged 7 commits intodotnet:mainfrom Jan 8, 2023
Oblikovati:main
Merged
Fix to ImGuiVulkan Experiment to run on MacOSX#1197Perksey merged 7 commits intodotnet:mainfrom Oblikovati:main
Perksey merged 7 commits intodotnet:mainfrom
Oblikovati:main
Conversation
The MoltenVK library (dylib) is considered as an ICD (Installable Client Driver) by the Vulkan loader. The Vulkan loader dynamically loads ICDs at execution time. When using the Vulkan loader, ICDs are not linked directly to the application. Similarly, the Vulkan loader dynamically loads the layers at execution time. Layers are not linked directly to the application. The MoltenVK library is a little unusual because it is built in such a way that an application can link to it directly and run MoltenVK (Vulkan subset) applications without using the loader and layers. But if you want to use the loader and layers, you don't link MoltenVK and the layers to your application. You link only the loader. The loader then dynamically loads the MoltenVK lib as an ICD and dynamically loads the layers if requested.
Updating to net6.0 Including Constants for different OSes
Rolling back OS Constants
Included KHR portability subset to work on MoltenVK. Bit set into InstanceCreateInfo for Enumerate Portability. The project works on MacOS 13.1 now on Apple Silicon.
Contributor
Author
|
The project works out of the box over Rosetta with the changes proposed. |
Beyley
reviewed
Jan 2, 2023
Perksey
reviewed
Jan 3, 2023
Using a different approach proposed by the corefx team.
Perksey
approved these changes
Jan 8, 2023
Member
Perksey
left a comment
There was a problem hiding this comment.
Looks fine but again RuntimeInformation is deprecated, please start using OperatingSystem APIs in the future (they're also a lot more obvious to use!).
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.
Summary of the PR
The current implementation only works on Windows, based on my tests it was never validated over MoltenVK,
I successfully managed to run on the Mac after troubleshooting and fixing the Vulkan initialisation config.
Related issues, Discord discussions, or proposals
My proposal is to bring the fixes to the Experiment and hopefully some enhancements to make this an official example.