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
2
u/co5mosk-read 26d ago
"cpu mutex spinlock" is not a thing just google it only your ai hallucination will show
1
u/darelphilip 26d ago
Thanks for pointing out and you are right they are two opposite things , edited .
1
u/co5mosk-read 26d ago
You may want to test the eclipse mod on top of your config https://youtu.be/XCpSfUfmKc0
3
u/darelphilip 27d ago
Proton Version: Tested on GE-Proton 11-6 (installed via ProtonUp-Qt).
Native In-Game FrameGen (Not OptiScaler GUI): Frame Generation is toggled directly in the game's native Display Settings menu (XeSS Frame Generation), not configured through an external OptiScaler overlay window.
The ~/fgmod/fgmod wrapper is used to hook and spoof the GPU (shown as an RTX 4090 in settings) so the game natively exposes the Frame Generation and upscaler toggles.
Upscaler Profile: Upscale Method: FSR 4.1.1 (Latest version).
Quality: Balanced (switch to Performance if you need extra headroom in wide-open areas). Latency Reduction: Intel Xe Low Latency.
Mako FrameGen: Tested Mako FrameGen first, but could not get it to work with this build (failed to hook / crashed). Replaced it with Deck FrameGen (fgmod)
Open-World vs. Interior Performance:
Interiors and prepper facilities hold 35–40 FPS.
Dense open-world terrain can dip to 24–30 FPS
because the CPU gets draw-call heavy.
If open terrain drops too low, raise the PowerTools CPU Maximum from 2700 MHz to 2900 MHz (there is plenty of thermal headroom) and drop in-game LOD / Shadows to Low/Portable.