zhliau / fika-headless-docker

Docker image to run SPT + Fika client headless, to provide a packaged dedicated client for raid hosting
Other
20 stars 7 forks source link

Use wine-ge-proton8.26 for better performance, and to potentially mitigate mem leak #8

Closed zhliau closed 2 months ago

zhliau commented 2 months ago

Seems to perform a bit better. About 5 to 10 extra FPS on the dedicated client. Also seems to solve the slow memory leak that occurs on some maps like Lighthouse.

Test system specs are i5 4690k overclocked to 4.2Ghz, 24Gb of DDR3 1333Mhz RAM Bot despawns, AI limiting at 300m via SWAG+DONUTS.

Lighthouse running about 26 bots shows roughly 11-12Gb RAM throughout the entire raid. I'm getting consistently >30FPS sitting in a bush at the Convenience store. On wine-devel, the same position with roughly the same number of bots would get me about 18-22FPS, and client RAM usage would slowly climb until it exhausts all available RAM and the container is OOM killed.

zhliau commented 2 months ago

Everything seems to work fine, except I get this strange exception right after the BepInEx preloader finishes. Looks like it's related to t he SPT core libraries, but according to BepInEx logs the plugin loads fine and in raid it doesn't seem to affect anything. QB, SAIN etc all function just fine. Will test more before I merge.

fika_dedi  | 2024-09-16T19:26:27.635910269Z Stacktrace:
fika_dedi  | 2024-09-16T19:26:27.635933667Z
fika_dedi  | 2024-09-16T19:26:27.635938057Z   at <unknown> <0xffffffff>
fika_dedi  | 2024-09-16T19:26:27.635940268Z   at (wrapper managed-to-native) System.Reflection.MonoMethod.get_name (System.Reflection.MethodBase) [0x0000b] in <eae584ce26bc40229c1b1aa476bfa589>:0
fika_dedi  | 2024-09-16T19:26:27.635942058Z   at System.Reflection.MonoMethod.get_Name () [0x0000f] in <eae584ce26bc40229c1b1aa476bfa589>:0
fika_dedi  | 2024-09-16T19:26:27.635943646Z   at SPT.Reflection.Utils.PatchConstants/<>c.<.cctor>b__43_5 (System.Reflection.MethodInfo) [0x00000] in <3b81d006478744cd9be2e7c497ce2027>:0
fika_dedi  | 2024-09-16T19:26:27.635945380Z   at System.Linq.Enumerable/SelectArrayIterator`2<TSource_REF, TResult_REF>.MoveNext () [0x0003a] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
fika_dedi  | 2024-09-16T19:26:27.636056702Z   at System.Linq.Enumerable.Contains<TSource_REF> (System.Collections.Generic.IEnumerable`1<TSource_REF>,TSource_REF,System.Collections.Generic.IEqualityComparer`1<TSource_REF>) [0x00036] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
fika_dedi  | 2024-09-16T19:26:27.636068471Z   at System.Linq.Enumerable.Contains<TSource_REF> (System.Collections.Generic.IEnumerable`1<TSource_REF>,TSource_REF) [0x0000a] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
fika_dedi  | 2024-09-16T19:26:27.636070500Z   at SPT.Reflection.Utils.PatchConstants/<>c.<.cctor>b__43_2 (System.Type) [0x0002a] in <3b81d006478744cd9be2e7c497ce2027>:0
fika_dedi  | 2024-09-16T19:26:27.636072208Z   at System.Linq.Enumerable/WhereArrayIterator`1<TSource_REF>.ToArray () [0x00022] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
fika_dedi  | 2024-09-16T19:26:27.636073768Z   at System.Linq.Enumerable.ToArray<TSource_REF> (System.Collections.Generic.IEnumerable`1<TSource_REF>) [0x0001f] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
fika_dedi  | 2024-09-16T19:26:27.636075380Z   at SPT.Reflection.Utils.PatchConstants.SingleCustom<T_REF> (System.Collections.Generic.IEnumerable`1<T_REF>,System.Func`2<T_REF, bool>) [0x00023] in <3b81d006478744cd9be2e7c497ce2027>:0
fika_dedi  | 2024-09-16T19:26:27.636077094Z   at SPT.Reflection.Utils.PatchConstants..cctor () [0x0008a] in <3b81d006478744cd9be2e7c497ce2027>:0
fika_dedi  | 2024-09-16T19:26:27.636078582Z   at (wrapper runtime-invoke) object.runtime_invoke_void (object,intptr,intptr,intptr) [0x0001e] in <eae584ce26bc40229c1b1aa476bfa589>:0
fika_dedi  | 2024-09-16T19:26:27.636080074Z   at <unknown> <0xffffffff>
fika_dedi  | 2024-09-16T19:26:27.636081494Z   at SPT.Core.Patches.ConsistencySinglePatch.GetTargetMethod () [0x00000] in <a778b1ec266f4df28abbca784d1ab8df>:0
fika_dedi  | 2024-09-16T19:26:27.636082967Z   at SPT.Reflection.Patching.ModulePatch.Enable () [0x00000] in <3b81d006478744cd9be2e7c497ce2027>:0
fika_dedi  | 2024-09-16T19:26:27.636084454Z   at SPT.Core.SPTCorePlugin.Awake () [0x00020] in <a778b1ec266f4df28abbca784d1ab8df>:0
fika_dedi  | 2024-09-16T19:26:27.636085902Z   at (wrapper runtime-invoke) object.runtime_invoke_void__this__ (object,intptr,intptr,intptr) [0x0001e] in <eae584ce26bc40229c1b1aa476bfa589>:0
fika_dedi  | 2024-09-16T19:26:27.636087413Z   at <unknown> <0xffffffff>
fika_dedi  | 2024-09-16T19:26:27.636088781Z   at (wrapper managed-to-native) UnityEngine.GameObject.Internal_AddComponentWithType (UnityEngine.GameObject,System.Type) [0x0000c] in <ca21460feb9c47d0ac337b9893474cc6>:0
fika_dedi  | 2024-09-16T19:26:27.636090329Z   at UnityEngine.GameObject.AddComponent (System.Type) [0x00001] in <ca21460feb9c47d0ac337b9893474cc6>:0
fika_dedi  | 2024-09-16T19:26:27.636181237Z   at BepInEx.Bootstrap.Chainloader.Start () [0x006f4] in <5e471ddbeb974684bff43bc61f1b58cb>:0
fika_dedi  | 2024-09-16T19:26:27.636183830Z   at UnityEngine.Application..cctor () [0x0000c] in <ca21460feb9c47d0ac337b9893474cc6>:0
fika_dedi  | 2024-09-16T19:26:27.636185407Z   at (wrapper runtime-invoke) object.runtime_invoke_void (object,intptr,intptr,intptr) [0x0001e] in <eae584ce26bc40229c1b1aa476bfa589>:0
fika_dedi  | 2024-09-16T19:26:27.636186929Z   at <unknown> <0xffffffff>
fika_dedi  | 2024-09-16T19:26:27.636188370Z   at Sirenix.Serialization.UnitySerializationInitializer.Initialize () [0x0001f] in <892d689d12944a24bd1ec02a1c06bd82>:0
fika_dedi  | 2024-09-16T19:26:27.636192514Z   at Sirenix.Serialization.UnitySerializationInitializer.InitializeRuntime () [0x00000] in <892d689d12944a24bd1ec02a1c06bd82>:0
fika_dedi  | 2024-09-16T19:26:27.636194210Z   at (wrapper runtime-invoke) object.runtime_invoke_void (object,intptr,intptr,intptr) [0x0001e] in <eae584ce26bc40229c1b1aa476bfa589>:0
fika_dedi  | 2024-09-16T19:26:27.636195716Z
fika_dedi  | 2024-09-16T19:26:27.636196990Z =================================================================
fika_dedi  | 2024-09-16T19:26:27.636198380Z Got a SIGSEGV while executing native code. This usually indicates
fika_dedi  | 2024-09-16T19:26:27.636199777Z a fatal error in the mono runtime or one of the native libraries
fika_dedi  | 2024-09-16T19:26:27.636201162Z used by your application.
fika_dedi  | 2024-09-16T19:26:27.636202478Z =================================================================