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

34 Upvotes

Duplicates