Skip to content

basuev/deck-pacer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DeckPacer

Steam Deck FPS optimizer for Proton games, Decky Loader, and gamescope.

DeckPacer applies per-game performance profiles before a game starts. It can lower internal render resolution, cap FPS for the OLED or LCD panel, write DXVK/VKD3D settings, patch safe engine config keys, and expose the controls in Game Mode through a Decky plugin.

The first target is Steam Deck OLED at 90Hz. LCD Steam Deck and generic Linux handhelds use their own panel targets.

Why It Exists

Many Steam Deck games miss stable frame pacing because they render too many pixels, spend GPU time on effects, or keep expensive compatibility defaults. DeckPacer handles those costs before launch:

  • DeckPacer Proton works as a Steam compatibility tool for Proton games.
  • The Decky panel sets global and per-game profiles from Game Mode.
  • gamescope can run games at lower internal resolution and scale to 1280x800.
  • DXVK, VKD3D, RADV, Mesa, and optional libstrangle settings tune the graphics stack.
  • Engine adapters patch reversible config keys for Unreal, Unity, Source, and Path of Exile 2.

Quick Start

Run from Desktop Mode:

~/deck-pacer/bin/deck-pacer-install
~/deck-pacer/bin/deck-pacer-install-decky

Then:

  1. Restart Steam and Decky Loader.
  2. Open a Proton game's properties in Game Mode.
  3. Choose DeckPacer Proton under Compatibility.
  4. Open the DeckPacer panel in Decky.
  5. Pick a global or per-game profile.
  6. Launch the game.

Steam can cache compatibility-tool names. If the dropdown still shows an old name after reinstalling, restart Steam or reboot the Deck.

The installer copies the Decky plugin to:

~/homebrew/plugins/deck-pacer

Profiles

Profile OLED target Internal resolution Behavior
off uncapped 1280x800 No wrapper changes
safe 45 FPS 960x600 Low-risk profile, no VRS
potato 45 FPS 800x500 Default OLED profile
brutal 60 FPS 640x400 VRS 2x2, engine config patching
insane 90 FPS 512x320 Maximum degradation

Path of Exile 2 has measured game-specific targets. Its insane profile uses 640x400 at 50 FPS instead of the generic 512x320 at 90 FPS target.

Path of Exile 2

DeckPacer has a dedicated Path of Exile 2 adapter for Steam AppID 2694490.

Current support:

  • Detects the PoE 2 Proton prefix and config path.
  • Patches display settings with backups.
  • Uses measured 640x400 at 50 FPS for the aggressive profile.
  • Keeps nested gamescope disabled for PoE 2 because it exits inside the Steam Runtime.
  • Shows PoE 2 status and a config patch action in Decky.
  • Logs MangoHud benchmark data for profile comparison.

Native Linux Games

Use this launch option:

~/deck-pacer/bin/deck-pacer-run --profile potato -- %command%

CLI

python3 -m deck_pacer detect-device
python3 -m deck_pacer profiles --device oled
python3 -m deck_pacer set-profile potato
python3 -m deck_pacer set-profile brutal --appid 12345
python3 -m deck_pacer plan --profile brutal --device oled --dry-run -- /path/to/game
python3 -m deck_pacer install-decky
python3 -m deck_pacer steam-resolution 2694490 --show

Environment Overrides

Variable Meaning
DECK_PACER_PROFILE off, safe, potato, brutal, insane
DECK_PACER_DEVICE oled, lcd, generic
DECK_PACER_DISABLE=1 Bypass all changes
DECK_PACER_GAMESCOPE=0 Disable nested gamescope wrapper
DECK_PACER_FPS_CAP=0 Keep profile resolution without an FPS cap
DECK_PACER_STRANGLE=1 Enable libstrangle texture and filtering knobs
DECK_PACER_BASE_PROTON Explicit Proton executable used under DeckPacer Proton

Built For

  • Steam Deck OLED and LCD
  • Decky Loader
  • Proton and GE-Proton users
  • gamescope profiles
  • DXVK and VKD3D tuning
  • Linux handheld gaming
  • Path of Exile 2 performance testing

Project Status

Implemented:

  • Decky plugin with global and per-game profile switching.
  • OLED-first profile model.
  • gamescope command generation.
  • DXVK config generation.
  • VKD3D_CONFIG=nodxr merge.
  • RADV_FORCE_VRS=2x2 for brutal and insane.
  • Steam Compatibility Tool installer.
  • Engine config adapters for Unreal, Unity, Source, and Path of Exile 2.
  • Path of Exile 2 ini patching with backups.
  • MangoHud benchmark logging for Path of Exile 2.
  • Steam resolution override inspection and patching.

Planned:

  • Benchmark-driven profile recommendation.
  • Bethesda engine adapter.
  • Anti-cheat database and Safe Mode fallback.

License

MIT

Releases

No releases published

Packages

 
 
 

Contributors