Troubleshooting KSA (Pre-Alpha) on Linux under Wine

irasponsible

Member
Oct 9, 2025
17
36
I've been trying to run KSA build v2025.10.8.2502 on Linux, and thought I'd document here what's worked and hasn't worked. I haven't got it to run, so unfortunately this isn't a 'guide'. Not going to ask for tech support, because this is a pre-alpha for a game on an unsupported platform, but I figure it's worth documenting what I've tried for the next person who tries to run it before we get an official Linux version. Or maybe someone knows a magical fix I've missed.

Setup​

I created a new wineprefix using Bottles, and went with the standard "Game" settings. I did have to add dotNET Core Desktop 9 to run the installer, so the final list of installed dependencies is as follows;
- d3dx9​
- msls31​
- arial32​
- times32​
- courie32​
- d3dcompiler_43​
- d3dcompiler_47​
- mono​
- gecko​
- dotnetcoredesktop9​

UPDATE: Installing the Vulkan Software Development Kit (for Windows, inside the Bottle/Wineprefix) is what got us able to boot, and gets past the first set of error messages, but from there right now it's still luck and depends on the exact game build as to if it works.

I tried both the included Bottles Soda runner (soda-9.0.1) as well as my System wine version (sys-wine-10.15).
I also tried using umu-launcher, but that didn't even give me an error message!

This is trying to run

Results​

I consistently run into the same error, when the game tries to get information about Vulkan and fails. Here's the error from Brutal.log.
Code:
2025-10-21 21:40:20.5113 DEBUG BRUTAL VERSION: 25.7.3
2025-10-21 21:40:20.5484  WARN settings file not found, creating default settings at C:\users\xxx\Documents\My Games\Kitten Space Agency\settings.toml
2025-10-21 21:40:20.5636  INFO loaded settings from C:\users\xxx\Documents\My Games\Kitten Space Agency\settings.toml
2025-10-21 21:40:20.7601 FATAL Brutal.BrutalException: Exception of type 'Brutal.BrutalException' was thrown.
   at Brutal.VulkanApi.PhysicalDeviceLibrary._EnumerateDeviceExtensionProperties(VkPhysicalDevice inPhysicalDevice, ReadOnlySpan`1 inLayerName) in C:\actions-runner\_work\BRUTAL\BRUTAL\Brutal.Framework\Generated\VulkanApi\Api\Libraries\PhysicalDeviceLibrary.gen.cs:line 739
   at Brutal.VulkanApi.PhysicalDevice.get_ExtensionNames() in C:\actions-runner\_work\BRUTAL\BRUTAL\Brutal.Framework\Api\Vulkan\Classes\PhysicalDevice.cs:line 22
   at Brutal.VulkanApi.PhysicalDeviceExtensions.SupportsExtension(PhysicalDevice physicalDevice, Key extension) in C:\actions-runner\_work\BRUTAL\BRUTAL\Brutal.Framework\Abstractions\Vulkan\Extensions\PhysicalDeviceExtensions.cs:line 64
   at System.Linq.Enumerable.All[TSource](IEnumerable`1 source, Func`2 predicate)
   at System.Linq.Enumerable.ArrayWhereIterator`1.MoveNext()
   at System.Linq.Enumerable.OrderedIterator`2.TryGetFirst(Boolean& found)
   at System.Linq.Enumerable.First[TSource](IEnumerable`1 source)
   at Core.KSADeviceContextEx..ctor(Api inApiVersion)
   at Core.Renderer..ctor(GlfwWindow window, VkFormat depthFormat, VkPresentModeKHR presentMode, Api vulkanApiVersion)
   at KSA.Program..ctor(IReadOnlyList`1 inArgs)
   at KSA.Program.Main(String[] inArgs)

and from Wine;
Code:
002c:err:wineboot:process_run_key Error running cmd L"C:\\windows\\system32\\winemenubuilder.exe -a -r" (126).
00b4:err:setupapi:do_file_copyW Unsupported style(s) 0x10
0104:err:vulkan:wine_vkEnumerateDeviceExtensionProperties Layer enumeration not supported from ICD.
0104:err:eventlog:ReportEventW L"Application: KSA.exe\n"
0104:err:eventlog:ReportEventW L"CoreCLR Version: 9.0.124.61010\n"
0104:err:eventlog:ReportEventW L".NET Version: 9.0.1\n"
0104:err:eventlog:ReportEventW L"Description: The process was terminated due to an unhandled exception.\n"
0104:err:eventlog:ReportEventW L"Exception Info: Brutal.BrutalException: Exception of type 'Brutal.BrutalException' was thrown.\r\n"
0104:err:eventlog:ReportEventW L"   at Brutal.VulkanApi.PhysicalDeviceLibrary._EnumerateDeviceExtensionProperties(VkPhysicalDevice inPhysicalDevice, ReadOnlySpan`1 inLayerName) in C:\\actions-runner\\_work\\BRUTAL\\BRUTAL\\Brutal.Framework\\Generated\\VulkanApi\\Api\\Libraries\\PhysicalDeviceLibrary.gen.cs:line 739\r\n"
0104:err:eventlog:ReportEventW L"   at Brutal.VulkanApi.PhysicalDevice.get_ExtensionNames() in C:\\actions-runner\\_work\\BRUTAL\\BRUTAL\\Brutal.Framework\\Api\\Vulkan\\Classes\\PhysicalDevice.cs:line 22\r\n"
0104:err:eventlog:ReportEventW L"   at Brutal.VulkanApi.PhysicalDeviceExtensions.SupportsExtension(PhysicalDevice physicalDevice, Key extension) in C:\\actions-runner\\_work\\BRUTAL\\BRUTAL\\Brutal.Framework\\Abstractions\\Vulkan\\Extensions\\PhysicalDeviceExtensions.cs:line 64\r\n"
0104:err:eventlog:ReportEventW L"   at System.Linq.Enumerable.All[TSource](IEnumerable`1 source, Func`2 predicate)\r\n"
0104:err:eventlog:ReportEventW L"   at System.Linq.Enumerable.ArrayWhereIterator`1.MoveNext()\r\n"
0104:err:eventlog:ReportEventW L"   at System.Linq.Enumerable.OrderedIterator`2.TryGetFirst(Boolean& found)\r\n"
0104:err:eventlog:ReportEventW L"   at System.Linq.Enumerable.First[TSource](IEnumerable`1 source)\r\n"
0104:err:eventlog:ReportEventW L"   at Core.KSADeviceContextEx..ctor(Api inApiVersion)\r\n"
0104:err:eventlog:ReportEventW L"   at Core.Renderer..ctor(GlfwWindow window, VkFormat depthFormat, VkPresentModeKHR presentMode, Api vulkanApiVersion)\r\n"
0104:err:eventlog:ReportEventW L"   at KSA.Program..ctor(IReadOnlyList`1 inArgs)\r\n"
0104:err:eventlog:ReportEventW L"   at KSA.Program.Main(String[] inArgs)\n"
wine: Unhandled exception 0xe0434352 in thread 104 at address 00006FFFFF3BD817 (thread 0104), starting debugger...

The important part of those would seem to be at the top of the Wine error log; "0104:err:vulkan:wine_vkEnumerateDeviceExtensionProperties Layer enumeration not supported from ICD". If anyone knows a fix, I'd love to hear it, but anything I can find on this is far above my level, and the issue is probably deep in Wine Vulkan.

Other Things I Tried​

As mentioned, I tried umu-launcher with no success.
I also tried changing the Vulkan version in settings.toml from "Vulkan_1_3" to "Vulkan_1_4" but all that did was cause KSA to reset it to "Vulkan_1_2" on next boot!

System Info​

I don't have much more to add beyond documenting the issues and what I've tried. Here's the relevant system information, in case it helps anyone;
Code:
==========
VULKANINFO
==========

Vulkan Instance Version: 1.4.313

[snip]

Devices:
========
GPU0:
        apiVersion         = 1.4.311
        driverVersion      = 25.1.9
        vendorID           = 0x1002
        deviceID           = 0x73df
        deviceType         = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
        deviceName         = AMD Radeon RX 6700 XT (RADV NAVI22)
        driverID           = DRIVER_ID_MESA_RADV
        driverName         = radv
        driverInfo         = Mesa 25.1.9
        conformanceVersion = 1.4.0.0
        deviceUUID         = 00000000-0300-0000-0000-000000000000
        driverUUID         = 414d442d-4d45-5341-2d44-525600000000

==========
System Information:
==========

Operating System: Fedora Linux 42
KDE Plasma Version: 6.4.5
KDE Frameworks Version: 6.19.0
Qt Version: 6.9.2
Kernel Version: 6.16.7-200.fc42.x86_64 (64-bit)
Graphics Platform: Wayland
Processors: 12 × AMD Ryzen 5 7600 6-Core Processor
Memory: 32 GB of RAM (30.5 GB usable)
Graphics Processor 1: AMD Radeon RX 6700 XT

P.S. KSA dumps stuff into a new "My Games" folder in your home directory, which is a bit annoying - but at least it wasn't hard to find the Brutal.log files.
 
Last edited:
Does vkcube.exe work in your Wine prefix? You can get it from https://vulkan.lunarg.com/sdk/home#windows, downloading the SDK installer, and opening it with Ark.
Installing that got me part of the way there! I can now boot the game and get to the startup menu.
...unfortunately, once I try to load the system, it crashes once I get to the "Spherical Billboarding" loading step. At least I assumed it crashes - the system stops giving me any graphics output and I have to hard reboot the computer.

Tried it thrice so far. There's options for loading the Solar system, Earth/Moon, or just Earth, and all three seem to crash the same way. I can edit `settings.toml` to get it to boot in windowed mode, but same deal. You win some you lose some, I suppose.

There's nothing particularly interesting in the log, other than the fact it doesn't show a crash - I just lose all graphics output.

Code:
2025-10-26 14:13:20.4207 DEBUG BRUTAL VERSION: 25.7.3
2025-10-26 14:13:20.4953  INFO loaded settings from C:\users\[redacted]\Documents\My Games\Kitten Space Agency\settings.toml
2025-10-26 14:13:20.8931 DEBUG Found dedicated compute queue family at index 1
2025-10-26 14:13:20.9752  INFO Kitten Space Agency (KSA) v2025.10.8.2502 initialized
2025-10-26 14:13:20.9906  INFO found mod 'Core'
2025-10-26 14:13:21.0048 DEBUG found system 'Sol'
2025-10-26 14:13:21.0048 DEBUG found system 'SolLite'
2025-10-26 14:13:21.0061 DEBUG found system 'Test'
2025-10-26 14:13:32.6590 DEBUG loaded system 'Test'
2025-10-26 14:13:32.6699 DEBUG loaded planet mesh collection 'Default'
2025-10-26 14:13:32.6710 DEBUG loaded planet mesh collection 'Optimized'
2025-10-26 14:13:34.9130  INFO loading star binary 'hip_main.bin'
2025-10-26 14:13:34.9159  INFO loading star binary 'hip_main.bin'
2025-10-26 14:13:34.9163 DEBUG loading 106424 star binaries from 'Content\Core\hip_main.bin'
2025-10-26 14:13:34.9410  INFO instantiated 'Test' system
2025-10-26 14:13:34.9580  INFO set simulation speed to x1
2025-10-26 14:13:34.9585  INFO following celestial 'Rocket'
2025-10-26 14:13:34.9585  INFO Controlling 'Rocket'
2025-10-26 14:13:34.9585  INFO set orbit camera to azimuth -2.77, elevation -0.12, distancePower 2.25
2025-10-26 14:13:34.9603  INFO set camera mode to 'Orbit'
2025-10-26 14:13:36.3123 DEBUG checking for updates from '[download link redacted]'
2025-10-26 14:13:36.3453 DEBUG Application Initialization Complete
 
Last edited:
  • Like
Reactions: Terra Incognita
I've been poking through kjournald browser to see if I can find any clues.
In one of the 3 crashes, there's a systemd core dump for plasmashell, but I think that happened because of the forced shutdown - but it didn't happen every time.

Another thing I tried is launching the game through the Vulkan Configurator that came with the SDK; and that's... better. The game crash didn't crash the entire computer. And now I've got an error message!

Code:
<snip - same as previous log, no issues before this point >
2025-10-26 21:45:20.8523 DEBUG Application Initialization Complete

interop - error: Exception "submit: ErrorDeviceLost" occurred while executing CSHARP ROCKET_EXPORT void __cdecl CSHARP_QueueLibrary_submit(brutal::vulkanApi::VkQueue& queue, size_t submitsSize, brutal::vulkanApi::VkSubmitInfo* submits, brutal::vulkanApi::VkFence& fence, int& __exception__).

Unhandled exception. Brutal.BrutalException: Exception of type 'Brutal.BrutalException' was thrown.
   at Brutal.VulkanApi.QueueLibrary._Submit(VkQueue inQueue, Span`1 inSubmits, VkFence inFence) in C:\actions-runner\_work\BRUTAL\BRUTAL\Brutal.Framework\Generated\VulkanApi\Api\Libraries\QueueLibrary.gen.cs:line 119
   at Brutal.VulkanApi.Queue.Submit(Span`1 inSubmits, VkFence inFence) in C:\actions-runner\_work\BRUTAL\BRUTAL\Brutal.Framework\Api\Vulkan\Classes\Queue.cs:line 26
   at Brutal.VulkanApi.QueueExtensions.Submit(Queue queue, Span`1 waitSemaphores, Span`1 waitDstStageMask, Span`1 commandBuffers, Span`1 signalSemaphores, VkFence fence) in C:\actions-runner\_work\BRUTAL\BRUTAL\Brutal.Framework\Abstractions\Vulkan\Extensions\QueueExtensions.cs:line 44
   at Core.Renderer.TrySubmitFrame(Span`1 additionalWaitSemaphores, Span`1 additionalWaitStages, Span`1 additionalSignalSemaphores)
   at KSA.Program.OnFrame(Double currentPlayerTime, Double dtPlayer)
   at KSA.App.Run()
   at KSA.Program.Main(String[] inArgs)

interop - error: Exception "waitIdle: ErrorDeviceLost" occurred while executing CSHARP ROCKET_EXPORT void __cdecl CSHARP_DeviceLibrary_waitIdle(brutal::vulkanApi::VkDevice& device, int& __exception__).
Unhandled exception. Brutal.BrutalException: Exception of type 'Brutal.BrutalException' was thrown.
   at Brutal.VulkanApi.DeviceLibrary._WaitIdle(VkDevice inDevice) in C:\actions-runner\_work\BRUTAL\BRUTAL\Brutal.Framework\Generated\VulkanApi\Api\Libraries\DeviceLibrary.gen.cs:line 2629
   at KSA.Program.Dispose()
   at KSA.Program.Main(String[] inArgs)

Process terminated

Trying that method two more times; next attempt same crash as earlier. Third attempt I realised what might have made the difference - taking a screenshot!
Taking a screenshot might have avoided the complete system crash - but it means the error above might not actually be relevant.

Previously I was able to get to Sperical Rendering - Line Rendering (i forget the exact wording there, don't feel like crashing my PC to find out).
Using the Vulkan Configurator, it hangs there, and if I take a screenshot, it hangs on a bit longer, then crashes at Spherical Billboarding - Bloom Renderers (which I got a screenshot of!).

I'm thinking the GPU/display output (or plasmashell) breaks (nfi - I know Py/HTML/JS, not C# and driver code!), but taking a screenshot (KDE Spectacle) at the right time 'jolts' it? Then Vulkan (in wine) thinks the GPU disappeared for a split second, and throws this error, because GPUs shouldn't do that.
Tried it one more time using the configurator to force using the Ryzen 7600 internal GPU - same error.

(Edited post - eliminated some dead-ends because I kept having ideas, and somehow taking a screenshot was the PC equivalent of getting jolted with a defib?)
 
Last edited:
hmmm i wonder if it'll work better now that they've updated Vulkan, just gotta wait for a build,

edit: build just got deployed
 
This might help out a bit, ive been doing a bit of testing with older builds with VulkanSDK now installed.
Build 2136 works fine, build 2163 works but the atmosphere is broken, and 2167 crashes in the same place as before.

edit: on build 2163, the atmosphere works fine after opening settings and clicking apply. weird
 
Last edited:
Looking in the #live-changelog channel on the Discord, here is the commit where build 2163 came out. There's only 3 commits (or pushes?) between then and build 2167, one of which is about the Discord DeployBot, and another doesn't seem too invasive, so I'd guess the culprit is this commit:

Code:
** Linx-RW **
* Converted planet renderer coordinates from kilometers to meters and fixed texture UV jittering.

* Converted all planet rendering calculations from kilometers to meters.

* Fixed the planet terrain texture jittering. Heavy temporary performance loss.

+ Added storage buffer for per-frame UV offsets passed from the CPU.

* Fixed the performance drop caused by the texture jittering fix.

* Changed UV offset SSBO to a UBO.

* Cleaned up stride logic in PlanetRenderer.cs.

+ Added a warning in Planet.glsl about incorrect UV offset retrieval causing performance degradation.
 
  • Like
Reactions: Winter
Also, regarding the ErrorDeviceLost in QueueLibrarySubmit(), I found this in the Vulkan docs:
If vkQueueSubmit fails, it may return VK_ERROR_OUT_OF_HOST_MEMORY or
VK_ERROR_OUT_OF_DEVICE_MEMORY. If it does, the implementation must ensure that the
state and contents of any resources or synchronization primitives referenced by the submit-
ted command buffers and any semaphores referenced by pSubmits is unaffected by the
call or its failure. If vkQueueSubmit fails in such a way that the implementation is unable
to make that guarantee, the implementation must return VK_ERROR_DEVICE_LOST. See
Lost Device.
So it sounds like it ran out of memory (either system memory or VRAM) and couldn't make the guarantees that Vulkan requires it to when it does, so it was then required to return VK_ERROR_DEVICE_LOST.
 
Also, regarding the ErrorDeviceLost in QueueLibrarySubmit(), I found this in the Vulkan docs:

So it sounds like it ran out of memory (either system memory or VRAM) and couldn't make the guarantees that Vulkan requires it to when it does, so it was then required to return VK_ERROR_DEVICE_LOST.
Given that I only seem to that specific error when I do the screenshot jiggery-pokery, I think that might be some issue caused by a combination of Wine, Vulkan, KSA, and Spectacle.

If it *is* an out of memory problem, then something's gone wrong - I've got 32gb system ram and 12gb video ram, and every setting set to the lowest possible. If I get a chance I'll try the more recent builds and see what I get - but I might not have time until next week and it could be public by then lol (and then we can get more people trying stuff)
 
  • Like
Reactions: Amsel XII
Hmmmmmm, and now it isn't working... weird

Edit: i have no clue why it isnt working anymore. I have everything set up exactly the same and its just crashing in the same spot again.
 
Last edited:
  • Like
Reactions: Amsel XII
I've got build 2025.10.10.2613 working! No changes to the previous config.
  • First time I ran it, with all the quality options turned down to the lowest on the "Earth and Luna" system it crashed when I tried to go to the Map View
  • Second time, running the full Solar system - everything was a pixelated static mess. Didn't crash when I went to the map view, though.
    • I turned off the clouds, which didn't fix it, but doing that twice seemed to make it work? I'm not gonna pretend to know what actually made the snow go away.
    • Still getting quite a few graphical errors. Presumably it doesn't like me having the wrong version of Vulkan, but who knowx.
    • Terrain (as in, the ground) seems to have disappeared.
 
Last edited:
  • Like
Reactions: Amsel XII
I also noticed the terrain being gone in 2163 and 2613, not sure about other builds.
 
Last edited:
After a few hours and countless VK_ERROR_FEATURE_NOT_PRESENTs, I still am stumped...

With the public release soon I hope we get some sort of information on how to make this more.. ermmm... official.
 
Last edited:
Latest build (2025.11.2.2620) is kinda consistently working now for me :) i do see the same glitches mentioned in #12
 
Last edited:
  • Like
Reactions: TheDirepack
Latest build (2025.11.2.2620) is kinda consistently working now for me :) i do see the same glitches mentioned in #12
How did you get it to work? Just .NET 9 and vkcube installed with ark (what even is that)?
 
How did you get it to work? Just .NET 9 and vkcube installed with ark (what even is that)?
Ark is the KDE archive program, it turns out it can extract stuff from certain types of .exe files. You don't actually need vkcube, it's just a little Vulkan test program to see if Vulkan is working with your setup. From what @irasponsible said, it might help to install the Vulkan SDK I linked to in #2 (You'd probably want the Windows version, installed through Wine).
 
  • Like
Reactions: Winter
Just posting because I managed to get a backtrace:
How did you get it to work? Just .NET 9 and vkcube installed with ark (what even is that)?
Installing the Vulkan SDK from here is what made me able to boot the game, that might work for both of you? I'll update the original post with it. Other than that, it's just a matter of hoping the newest build works or not. I'm settling into "wait a bit longer and see", because once it's public, there'll be a lot more people trying - and hopefully they know more than I do.

On discord, the changelog just mentioned "Revision 2657; Turned off libshaderc optimizations due to causing infinite hanging when creating some compute pipelines on 6000 series AMD cards". I don't know about you too, but @Winter and I both happen to be on RX6000 GPUs - so when we get a build with that fix, we might start getting somewhere.
 
Last edited: