-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
104 lines (98 loc) · 6.38 KB
/
docker-compose.yml
File metadata and controls
104 lines (98 loc) · 6.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
services:
fex:
image: stevenlafl/fex:latest
build:
context: .
dockerfile: Dockerfile
platform: linux/arm64
container_name: fex-emulator
environment:
# ----------------
# CPU Options
# ----------------
- FEX_MULTIBLOCK=true # Controls multiblock code compilation; may cause long JIT compilation times and stutter
- FEX_MAXINST=5000 # Maximum number of instructions to store in a block
- FEX_ENABLECODECACHINGWIP=false # Enable the code caching subsystem
- FEX_HOSTFEATURES=off # Controls CPU features in the JIT (enable/disable feature flags)
- FEX_SMALLTSCSCALE=true # Scales the cycle counter on systems that have low frequencies
- FEX_CPUFEATUREREGISTERS= # Override CPU feature flags for manual testing
# ----------------
# Emulation Options
# ----------------
- FEX_ROOTFS=/opt/.fex-emu/RootFS/Ubuntu_24_04.sqsh # Which Root filesystem prefix to use; can be a path or named RootFS
- FEX_THUNKHOSTLIBS=/usr/lib/aarch64-linux-gnu/fex-emu/HostThunks # Folder for host-side thunking libraries
- FEX_THUNKGUESTLIBS=/usr/share/fex-emu/GuestThunks # Folder for guest-side thunking libraries
- FEX_THUNKCONFIG= # Path or named Thunk configuration JSON file
- FEX_ENV= # Adds environment variables to the emulated environment
- FEX_HOSTENV= # Adds environment variables to the host environment
#- FEX_ADDITIONALARGUMENTS= # Additional CLI arguments to the application
- FEX_DISABLEL2CACHE=false # Disable FEXCore's JIT L2 cache lookup (less memory, more stutter possible)
- FEX_DYNAMICL1CACHE=false # Enables dynamically sized JIT L1 cache to save memory
- FEX_DYNAMICL1CACHEINCREASECOUNTHEURISTIC=250 # Threshold (lookups/sec) to increase L1 cache size
- FEX_DYNAMICL1CACHEDECREASECOUNTHEURISTIC=50 # Threshold (lookups/sec) to decrease L1 cache size
# ----------------
# Debug Options
# ----------------
- FEX_SINGLESTEP=false # Enable single stepping
- FEX_GDBSERVER=false # Enable GDB remote server
- FEX_DUMPIR=no # Dump IR [no, stdout, stderr, server, <folder>]
- FEX_PASSMANAGERDUMPIR=off # When to dump IR [off, beforeopt, afteropt, beforepass, afterpass]
- FEX_DUMPGPRS=false # Print GPR registers at program end
- FEX_O0=false # Disable optimization passes for debugging
- FEX_GLOBALJITNAMING=false # Lump all JIT symbols as 'FEXJIT' for profiling
- FEX_LIBRARYJITNAMING=false # Group JIT symbols by library name
- FEX_BLOCKJITNAMING=false # Name each JIT block individually (profiling aid)
- FEX_GDBSYMBOLS=false # Integrate with GDB via JIT interface
- FEX_INJECTLIBSEGFAULT=false # Preload libSegFault.so for crash debugging
- FEX_DISASSEMBLE=off # VIXL disassembler mode [off, dispatcher, blocks, stats]
- FEX_FORCESVEWIDTH=0 # Override SVE width (debugging only)
- FEX_DISABLETELEMETRY=false # Disable telemetry collection
# ----------------
# Logging Options
# ----------------
- FEX_SILENTLOG=true # Disable logging completely
- FEX_OUTPUTLOG=server # Logging destination [stdout, stderr, server, <filename>]
- FEX_TELEMETRYDIRECTORY= # Redirect FEX telemetry output directory
- FEX_PROFILESTATS=false # Enable low-overhead runtime profile stats (requires MangoHud)
- FEX_ENABLEGPUVISPROFILING=false # Enable GPUVIS profiler backend
# ----------------
# Hacks Options
# ----------------
- FEX_SMCCHECKS=mtrack # Code modification checks [none, mtrack(default), full]
- FEX_TSOENABLED=true # Enable TSO IR operations (required for multithreading)
- FEX_VECTORTSOENABLED=false # Vector load/store atomicity under TSO
- FEX_MEMCPYSETTSOENABLED=false # Atomic memcpy/memset under TSO
- FEX_HALFBARRIERTSOENABLED=true # Half-barrier atomics for unaligned load/store under TSO
- FEX_STRICTINPROCESSSPLITLOCKS=false # Strict lock for split-atomic handling across cacheline
- FEX_KERNELUNALIGNEDATOMICBACKPATCHING=true # Backpatch unaligned atomic ops to reduce context switches
- FEX_VOLATILEMETADATA=true # Use PE volatile metadata for TSO handling when available
- FEX_X87REDUCEDPRECISION=false # Use 64-bit x87 precision (faster, less accurate)
- FEX_STALLPROCESS=false # Force process stall at startup (debugging)
- FEX_HIDEHYPERVISORBIT=false # Hide the hypervisor CPUID bit
- FEX_STARTUPSLEEP=0 # Sleep duration in seconds before process startup
- FEX_STARTUPSLEEPPROCNAME= # Only apply startup sleep to this process name
- FEX_MONOHACKS=true # Use Mono-specific SMC behavior and smaller JIT blocks
# ----------------
# Misc Options
# ----------------
- FEX_SERVERSOCKETPATH= # Override FEXServer socket path (for chroots)
- FEX_NEEDSSECCOMP=false # Disable inline syscalls to support seccomp
- FEX_EXTENDEDVOLATILEMETADATA= # Extended volatile metadata config string (WoW64/arm64ec)
# ----------------
# Additional Environment Variables (always available)
# ----------------
- FEX_APP_CONFIG_LOCATION= # Override where FEX looks for config files
- FEX_APP_CONFIG= # Override only the application config file location
- FEX_APP_DATA_LOCATION= # Override data file storage directory (includes caches)
- FEX_PORTABLE= # Make FEX run in portable mode; ignore system-wide locations
# volumes:
# - ./Steam:/home/fex/Steam
ports:
- 27015:27015/tcp
- 27015:27015/udp
command: bash
# command: sh -c "cd '/home/fex/Steam/steamapps/common/Sven Co-op Dedicated Server' && FEX ./svends_run +map svencoop1"
stdin_open: true
tty: true
privileged: true
# restart: unless-stopped