Vulkan disabled when running 0ad appimage with Intel or AMD chipsets

I’m the maintainer for the 0ad AppImage. Vulkan support has been implemented since 0ad 27 (not yet released but I’m building the images from their svn repo). I build the images in an Ubuntu Bionic docker container. When I run them on my laptop (Intel GPU) with Manjaro installed, 0ad reports that Vulkan has been disabled. On my desktop (NVIDIA GPU) with Manjaro, the Vulkan backend works. Two other people have reported similar results. The ticket is at In some cases, Vulkan may be automatically disabled when using the 0ad svn appimage · Issue #19 · 0ad-matters/0ad-appimage · GitHub

I saw in OpenGL Core Context / Vulkan there might be some clues as to why this is happening.

So far the Vulkan backend works with Intel or AMD when 0ad is built and ran natively…

1 Like

All I can say is that AppImage does not use any form of sandboxing or virtualization by default; so it is likely a driver/library compatibility issue? Try experimenting with bundling more/less components.

1 Like

Thanks @probono I’ll try to get some more info from the 0ad maintainers.

Thanks for the hints @probono . From what I see in the build script there is nothing in particular done to have any kind of graphic support: Whether is Mesa OpenGL or NVIDIA non-libre drivers for OpenGL & Vulkan.

So I’m guessing linuxdeploy/AppRun that builds the AppImage takes care of basic mesa stuff currently.
And I’ve been told in the Mesa chat (IRC #dri-devel@OFTC) that something like this is missing: probably the vulkan loader, probably also mesa vulkan drivers and maybe also the headers to build against.

Does that make any sense and does anyone what would be the next step? Could it be: opening a ticket to report that it seems that the AppImage building toolchain is missing something like vulkan loader/mesa vulkan drivers/vulkan headers.

For linuxdeploy, it’d be best to discuss this with its author, TheAssassin, over at Issues · linuxdeploy/linuxdeploy · GitHub. I don’t think he is reading here.