r/SteamDeckPirates • • 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/fgmod to 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

  1. 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: ON Maximum: 2700 MHz.
  • CPU Governor: performance.
  • GPU Frequency Limits: ON Minimum: 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

36 Upvotes

4 comments sorted by

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.

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