Qt app installer requirements for Vulkan on Windows
-
TL;DR: Is there a (need && way) to trigger Vulkan loader/runtime installation in a Qt app installer in Windows?
Context: I've made a Vulkan-based Qt app (QMainWindow with Dock and GUI + QVulkanWindow centralWidget for rendered content). I've got the app binary running on Linux, macOS, and Win, but for each case in a development environment (with Qt sources and VulkanSDK).
Now I'm making bundles/installers for each, as applicable, and after hiding my Qt sources and VulkanSDK folders to simulate a random non-dev person's computer, I've worked to make sure the dependencies are included:
- Linux: AppImage made from appimagetool (successor to linuxdeployqt).
- This requires including the loader (lib/libvulkan.so) which presumably calls directly to the installed gfx drivers
- macOS: Bundle.app made from macdeployqt
- This requires including the loader (lib/libvulkan.dylib) which calls to MoltenVK (lib/libMoltenVK + share/vulkan/icd.d) which presumably calls to Apple's gfx drivers
I've been able to test the above, and it makes logical sense, so I assume those are done. But for Windows --
- Win: Installer.exe made from windeployqt.exe + binarycreator.exe
- This runs fine with NO Vulkan lib inside and with VulkanSDK hidden, but given above patterns, I find it hard to trust that
- https://www.reddit.com/r/vulkan/comments/sa30f7/should_i_deploy_the_loader_with_my_application/httw5fl/ indicates that I should trust this, but I don't yet
- I haven't been able to test this on a non-dev, non-gaming computer with sufficient GPU to overcome my fears
So my question is: if we're not supposed to ship the Vulkan loader with a Windows application, is it always the case that a computer with a Vulkan-capable GPU and installed drivers will have a system-wide loader ready to run my app, OR can I somehow force a dependency check in my installer to install an appropriate Vulkan runtime/loader on that Windows PC? And if the latter, what's best practice for installing that runtime on an unknown system?
Thank you,
Wade - Linux: AppImage made from appimagetool (successor to linuxdeployqt).