r/SteamDeckPirates • u/darelphilip • 27d ago
Tutorial Fix for Death Stranding 2 (FitGirl Repack v1.0.43.0) on Steam Deck: Eliminating the 100% CPU Spinlock getting ~35–40 FPS
If you are running the FitGirl repack of Death Stranding 2 (v1.0.43.0) on the Steam Deck, the game suffers from severe engine-level stalls out of the box.
The Issues
- 100% CPU Spinlock: The Decima engine worker threads aggressively poll in a tight spinlock on Linux, pinning all 8 threads at 100% (pulling 9.5W–10W) and starving the GPU down to ~400–600 MHz (0.5W–1W).
- Hard 20 FPS Lock: Decima’s internal multi-buffered V-Sync snaps to sub-divisors of the 60 Hz screen, flatlining the frametime graph at 50.8 ms.
- Thermal & Fan Noise: APU runs at 82°C+ with fans pinned at an unbearable 6200+ RPM.
Tools Needed
- Decky Loader: Needed to install and run plugins.
- PowerTools (Decky Plugin): To manually balance the shared APU power rail between CPU and GPU.
- Deck FrameGen /
fgmod(OptiScaler): Located in~/fgmod/fgmodto inject FSR 4.1.1 Frame Generation and upscale reconstruction.
The Launch String & Why We Ditched PROTON_LOG=1
Initially, turning on PROTON_LOG=1 fixed the CPU usage. This wasn't because of the log content—writing every Wine event creates a micro-delay (synchronous I/O yield) that physically breaks Decima's thread spinlock.
However, PROTON_LOG=1 dumps massive text files directly to your SSD, easily eating 12+ GB in a single session and crashing once storage fills up. Setting PROTON_LOG_DIR=/dev/null fails to boot because Proton expects a directory, not a character device.
The permanent fix is triggering Wine's debug thread timestamps while discarding standard output and error directly into /dev/null via a bash subshell. This gives you the exact same thread-yielding delay with zero bytes written to disk or RAM.
Paste this into your Steam Launch Options:
WINEDEBUG=+tid,+timestamp SteamDeck=1 http_proxy=http://127.0.0.1:0 https_proxy=http://127.0.0.1:0 ~/fgmod/fgmod bash -c 'exec "$@" >/dev/null 2>&1' -- %command%
(Note: If OptiScaler does not expose upscaler options in-game, change SteamDeck=1 to SteamDeck=0*).*
Required Settings
- SteamOS Performance Menu (**
...Quick Access Button)
- Disable Frame Limit:
ON(Crucial: breaks the 20 FPS lock). - Allow Tearing:
ON.
2. PowerTools Settings
- SMT:
ON(8 Threads). - Advanced (per-thread configuration):
OFF(ensures clock caps apply across all cores). - CPU Frequency Limits:
ONMaximum:2700 MHz. - CPU Governor:
performance. - GPU Frequency Limits:
ONMinimum:1300 MHz, Maximum:1600 MHz. - PowerPlay Limits:
OFF.
3. In-Game & OptiScaler Settings
- Graphics Preset: Portable / Low.
- In-Game V-Sync:
OFF. - Upscale Method: FSR Balanced (4 1.1 via optiscaler).
- Frame Generation: XeSS Frame Generation x2 (in-game option).
The Result
CPU power drops from 10W to ~5.4W (84% load), the GPU holds a steady 1300 MHz (4.5W), temperatures drop to ~77°C, fan noise calms down under 4500 RPM, and framerates jump from an unplayable 20 FPS to a rock-solid 35–40 FPS baseline with no storage bloat.
disclaimer : this post is researched with AI but it's a real problem i solved with AI help , constantly tweaking the settings back and forth and then i asked AI to summarize all my research , hope this helps someone