Trial Deployment of Linux Builds

Apologies it has taken this long, but we are now trialing linux build deployments. These builds are deployed untested. I have changed ⁠version-history on discord to now split out preparing the builds and deploying them. The windows build will now refuse to deploy a build that fails digital signature. Both builds will now indicate if they have successfully be deployed or not. The master server MAY indicate an incorrect build for linux, if linux fails to deploy. This will be changed soon when I can update that side of the deployment process.

You can download the trial builds for linux directly at:https://ksa-linux.ahwoo.com/

Please consider contributing​

It will increase our costs significantly to host this separate linux deployment. We are already spending x10 as much as we get in contributions - so it would make a great deal of help if folks who find the linux deployment useful consider contributing. If you do contribute - please do note in the contribution message if you can that it is FOR the linux deployments. I will use this data to help push that we should continue to integrate this going forward.

Report Linux issues​

Please discuss linux issues here and we will do our best to resolve them. One member of the team is developing on linux, so we do have some capacity to try and resolve these issues where they occur.
 
Probably better to link /usr/lib64/libvulkan.so → /usr/lib64/libvulkan.so.1 instead, apparently some distros' vulkan-loader package doesn't provide this link even though it should.

Yeah, linking libVulkanEx.so was probably a mistake, it's better to link system's libvulkan.so.1 into ./libvulkan.so just to satisfy current build of KSA.

But KSA should search libvulkan by a versioned name. Unversioned .so names are for development and compilation, compiled applications are expected to access libraries by versioned names.

This is by design, and, for example, in Debian it is reflected in which package provides which path:
libvulkan-dev: /usr/lib/x86_64-linux-gnu/libvulkan.so
libvulkan1: /usr/lib/x86_64-linux-gnu/libvulkan.so.1
libvulkan1: /usr/lib/x86_64-linux-gnu/libvulkan.so.1.4.341
 
Last edited:
In CachyOS i got it to run perfectly after using the Package Installer to install dotnet-runtime (maybe the dotnet-host was installed at the same time).

Hopefully this will help someone struggling.

1771612359605.png
 
  • Like
Reactions: Tektoy and Dalk
Yay, thanks for the above advice, I was able to get KSA to run for a few seconds on my first run, about a minute on the next.
Then KSA just spontaneously crashes and disappears... :confused:
Also buttons don't work on the escape menu, step by step I guess!
 
fyi: on (k)ubuntu 24.04 LTS i needed to install the following packages to get it working:
Bash:
sudo apt install -y dotnet-sdk-10.0 libvulkan1 libvulkan-dev
 
Intallation on debian 13 ...
wget https://packages.microsoft.com/config/debian/13/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
#this installs a microsoft repository
sudo apt update
sudo apt install dotnet-runtime-10.0
#this installs dotnet-runtime-10.0 from the microsoft repository
#doesn't feel great tainting debian with microsoft stuff

KSA didn't find vulkan on debian 13:

-----------------------------------------------------------------
~/Games/ksa3640/linux-x64$ ./KSA
21:36:33 ERROR Unhandled exception System.TypeInitializationException: The type initializer for 'Brutal.VulkanApi.Vulkan' threw an exception.
---> System.DllNotFoundException: Unable to load shared library 'vulkan' or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. If you're using glibc, con
sider setting the LD_DEBUG environment variable:
/home/bernhard/Games/ksa3640/linux-x64/vulkan.so: cannot open shared object file: No such file or directory
/usr/share/dotnet/shared/Microsoft.NETCore.App/10.0.3/vulkan.so: cannot open shared object file: No such file or directory
/home/bernhard/Games/ksa3640/linux-x64/libvulkan.so: cannot open shared object file: No such file or directory
/usr/share/dotnet/shared/Microsoft.NETCore.App/10.0.3/libvulkan.so: cannot open shared object file: No such file or directory
/home/bernhard/Games/ksa3640/linux-x64/vulkan: cannot open shared object file: No such file or directory
/usr/share/dotnet/shared/Microsoft.NETCore.App/10.0.3/vulkan: cannot open shared object file: No such file or directory
/home/bernhard/Games/ksa3640/linux-x64/libvulkan: cannot open shared object file: No such file or directory
/usr/share/dotnet/shared/Microsoft.NETCore.App/10.0.3/libvulkan: cannot open shared object file: No such file or directory

at System.Runtime.InteropServices.NativeLibrary.LoadLibraryByName(String libraryName, Assembly assembly, Nullable`1 searchPath, Boolean throwOnError)
at Brutal.VulkanApi.Vulkan..cctor()
--- End of inner exception stack trace ---
at Brutal.VulkanApi.Vulkan.get_GetInstanceProcAddr()
at KSA.Program..ctor(IReadOnlyList`1 inArgs)
at KSA.Program.Main(String[] inArgs).
Unhandled exception. System.TypeInitializationException: The type initializer for 'Brutal.VulkanApi.Vulkan' threw an exception.
---> System.DllNotFoundException: Unable to load shared library 'vulkan' or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. If you're using glibc, con
sider setting the LD_DEBUG environment variable:
/home/bernhard/Games/ksa3640/linux-x64/vulkan.so: cannot open shared object file: No such file or directory
/usr/share/dotnet/shared/Microsoft.NETCore.App/10.0.3/vulkan.so: cannot open shared object file: No such file or directory
/home/bernhard/Games/ksa3640/linux-x64/libvulkan.so: cannot open shared object file: No such file or directory
/usr/share/dotnet/shared/Microsoft.NETCore.App/10.0.3/libvulkan.so: cannot open shared object file: No such file or directory
/home/bernhard/Games/ksa3640/linux-x64/vulkan: cannot open shared object file: No such file or directory
/usr/share/dotnet/shared/Microsoft.NETCore.App/10.0.3/vulkan: cannot open shared object file: No such file or directory
/home/bernhard/Games/ksa3640/linux-x64/libvulkan: cannot open shared object file: No such file or directory
/usr/share/dotnet/shared/Microsoft.NETCore.App/10.0.3/libvulkan: cannot open shared object file: No such file or directory

at System.Runtime.InteropServices.NativeLibrary.LoadLibraryByName(String libraryName, Assembly assembly, Nullable`1 searchPath, Boolean throwOnError)
at Brutal.VulkanApi.Vulkan..cctor()
--- End of inner exception stack trace ---
at Brutal.VulkanApi.Vulkan.get_GetInstanceProcAddr()
at KSA.Program..ctor(IReadOnlyList`1 inArgs)
at KSA.Program.Main(String[] inArgs)
Aborted
--------------------------------------------------------------------------------------

gpt-oss-20B suggested:
as root: ldconfig -p | grep vulkan
libvulkan.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libvulkan.so.1
libvulkan.so.1 (libc6) => /lib/i386-linux-gnu/libvulkan.so.1
libgstvulkan-1.0.so.0 (libc6,x86-64) => /lib/x86_64-linux-gnu/libgstvulkan-1.0.so.0

Then either
cd ~/Games/ksa3640/linux-x64
ln -s /lib/x86_64-linux-gnu/libvulkan.so.1 libvulkan.so

or
export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
./KSA

I did the former and it works. :)
 
Last edited: