Open Patola opened 2 years ago
Hello @Patola, these look like some lines of interest from the log:
[ERROR] FATAL UNHANDLED EXCEPTION: System.NullReferenceException: Object reference not set to an instance of an object
at Xenko.Audio.AudioSystem.Destroy () [0x0004b] in <fb366cc5f3dc47ae988732c2710b70d7>:0
at Xenko.Core.DisposeBase.Xenko.Core.IReferencable.Release () [0x00015] in <97a4614d4c87402ba31427db1cac05dc>:0
at Xenko.Core.DisposeBase.Dispose () [0x00008] in <97a4614d4c87402ba31427db1cac05dc>:0
at Xenko.Games.GameBase.Destroy () [0x00064] in <94e706aa2dc04636b07142ce9c2bfe79>:0
at Xenko.Engine.Game.Destroy () [0x0000c] in <fb366cc5f3dc47ae988732c2710b70d7>:0
at Xenko.Core.DisposeBase.Xenko.Core.IReferencable.Release () [0x00015] in <97a4614d4c87402ba31427db1cac05dc>:0
at Xenko.Core.DisposeBase.Dispose () [0x00008] in <97a4614d4c87402ba31427db1cac05dc>:0
at GentrieveX.Windows.GentrieveXApp.Main (System.String[] args) [0x0006f] in <f64443f780a6463b9efa0e0a06df42cf>:0 (1)
I think the first problem is this:
[0000000000000144:] EXCEPTION handling: System.DllNotFoundException: libxenkoaudio assembly:<unknown assembly> type:<unknown type> member:(null)
libxenkoaudio.dll is present in the x64 directory of the game's files, so I tried copying its contents to the game's directory. Then I got this error:
664145.679:010c:0110:err:vulkan:wine_vkEnumerateDeviceExtensionProperties Layer enumeration not supported from ICD.
[0000000000000110:] EXCEPTION handling: Vortice.Vulkan.VkException: [-6] ErrorLayerNotPresent - Vulkan error occured
So the way this is supposed to work, based on source code available online for the engine this game is using, is that static AudioLayer()
(https://github.com/stride3d/stride/blob/7e836297cb5930c01e6dfa0183e7f3cc64748fb6/sources/engine/Stride.Audio/Native/AudioLayer.cs#L35) loads libxenkoaudio.dll in the process manually using the full path before static AudioEngine()
(https://github.com/stride3d/stride/blob/7e836297cb5930c01e6dfa0183e7f3cc64748fb6/sources/engine/Stride.Audio/AudioEngine.cs#L25) tries to use a pinvoke method. The problem is that Mono tries to resolve the pinvoke for AudioLayer.Init
before it calls static AudioLayer()
.
I think I understand the dll loading issue and have a fix for it, but that still leaves the error in wine_vkEnumerateDeviceExtensionProperties
.
Compatibility Report
System Information
I confirm:
steam-1256380.log
Symptoms
Game doesn't run under proton.
Reproduction
Note: the game has a native version. However running it in proton might be advantageous under a number of scenarios. One of these is using the game in VR, since the linux build does not have VR capabilities. Also, it's a free game, so testing it is very easy.
My suspicions of where the problems might be:
52472.762:0140:0170:fixme:msctf:ThreadMgr_ActivateEx Unimplemented flags 0x4
or52472.762:0140:0144:err:ole:CoMarshalInterface Failed to marshal the interface {ea1ea136-19df-11d7-a6d2-00065b84435c}, hr 0x80004002