-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix locating moltenvk headers when with_vulkan=True #24903
Fix locating moltenvk headers when with_vulkan=True #24903
Conversation
Tested on macOS and we now get a successful build, but have not tested this on the consumer side yet - so this may not be fully sufficient |
This comment has been minimized.
This comment has been minimized.
Hooks produced the following warnings for commit ab01b40qt/6.6.3@#3c2178c6dfa3439498b875d1f10e9f60
qt/6.7.1@#ae061de2ced904397cca2749490a72dd
qt/6.5.3@#5f01152ab65c7ef6d0d8ab257e9f1e79
|
have managed to test this against the sample vulkan project here: https://github.com/qt/qtbase/tree/v6.7.1/examples/vulkan/hellovulkancubes so far have only managed to make it work with the shared variant, built with the following options:
otherwise the application might build but not run correctly (for the static version, even if I link the plugins statically, it fails to initialise vulkan, that would require further investigation). |
@nebrain - apologies it took so long to fix this - if you have the chance to test these fixes, please let us know! |
@@ -304,9 +304,6 @@ def validate(self): | |||
if Version(self.version) >= "6.6.1" and self.settings.compiler == "apple-clang" and Version(self.settings.compiler.version) < "13.1": | |||
raise ConanInvalidConfiguration("apple-clang >= 13.1 is required by qt >= 6.6.1 cf QTBUG-119490") | |||
|
|||
if self.settings.os == "Macos" and self.dependencies["double-conversion"].options.shared: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This restriction is artificial and not related to Qt itself, but rather Conan or Conan Center - lifting it. Have managed to reproduce the original problems, if issues are reported will propose a more robust fix (otherwise, this is not currently causing issues on CI).
Conan v1 pipeline ✔️All green in build 2 (
Conan v2 pipeline ✔️
All green in build 2 ( |
Hooks produced the following warnings for commit 50eef9fqt/6.5.3@#cbf48815bf7347e5d1b7e3fb1730251f
qt/6.7.1@#44d104c8767294a0f80623d38ba5909a
qt/6.6.3@#e036f48b7636827645dfd943b4e3b5dc
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
Thanks for working on this! Indeed Qt builds fine without any workarounds for me now. Sadly I haven't been able to get my actual application running though, similarly to the example you tried. It's failing to pick up the VkInstance extensions required to use MoltenVK. I haven't been able to look more deeply into it yet however. With my custom Qt recipe I previously got it working while also pointing |
Thanks for trying this out @neobrain! The example from https://github.com/qt/qtbase/tree/v6.7.1/examples/vulkan/hellovulkancubes does seem to work without modifications to either the example or the recipe, but only when Qt is shared. Are you using shared Qt or static builds? Any info would help, and we can open an issue to track this, thanks! |
Good news: I finally got around to clean up my application code and look into this again, and it seems that everything is working fine now! For reference, my setup is the following:
To run the application, conanrun.sh must still be sourced (but I don't need to override VK_ICD_FILENAMES and QT_VULKAN_LIB like before). |
Hi @neobrain !! Happy to hear it is working now, thanks for taking the time to test this out and report back! |
Summary
Changes to recipe: qt/6
with_vulkan=True
because it does not find the moltenvk headerstransitive_headers
for the vulkan-headers whenwith_vulkan=True
, these are used here: https://github.com/qt/qtbase/blob/v6.7.1/src/gui/vulkan/qvulkaninstance.h#L19-L21 - if these are not found, including<QVulkanWindow>
does not properly include the vulkan headers, leading to include errorswith_vulkan=True
- moltenvk and vulkan have strict version requirements and need to be paired with the right versionsMotivation
Details
Close #24045
Close #23684