Skip to content

Game Optimization Linux 0.1.5-alpha

Choose a tag to compare

@DevVoidPL DevVoidPL released this 10 Aug 18:56
· 7 commits to main since this release

Large alpha update focused on real game analysis, Btrfs measurements, runtime reliability, controller support and the foundation of automatic game optimization.

This release contains a lot of internal and user-facing changes compared with 0.1.4-alpha.

Warning

Game Analyzer, performance baseline recording and Automatic Optimization are still experimental.

Engine/API/runtime/executable detection does not work correctly for every game yet and may return Unknown.
Automatic optimization is still under active development and currently has only a limited number of safe optimization candidates.

Do not expect every game to receive useful recommendations yet.

Added

  • Game Analyzer / GameFingerprint system
  • Experimental game engine detection:
    • Unreal Engine
    • Unity
    • REDengine
  • Executable detection shared with the OptiScaler resolver
  • PE/ELF architecture detection
  • Graphics API detection where reliable information is available
  • Steam compatibility/runtime detection
  • Host hardware snapshot:
    • CPU
    • GPU
    • RAM
    • VRAM
    • display resolution
    • refresh rate
  • Real VRAM detection instead of the previous placeholder value
  • Performance measurement foundation using MangoHud logs
  • Per-game baseline measurement sessions
  • Bottleneck analysis foundation:
    • GPU bottleneck
    • CPU bottleneck
    • VRAM pressure
    • RAM pressure
    • frame pacing problems
    • balanced / insufficient data
  • Optimization recommendation framework with evidence, confidence and limitations
  • Initial safe engine-specific optimization candidates
  • Before / After performance comparison foundation
  • Apply / Revert infrastructure for reversible optimization changes

Btrfs / Storage

  • Added real exact Btrfs compression measurement using compsize
  • Exact measurement uses the host Polkit authentication dialog
  • No password is stored or passed through the application
  • Basic Btrfs verification still works without administrator authentication
  • Added real:
    • physical disk usage
    • uncompressed extent size
    • current compression saving
    • compression ratio
    • compression classification
    • measurement source/status
  • Exact measurements are separated from estimated compression analysis
  • Exact results are now correctly propagated to the game header and Storage page
  • Invalid or incomplete compsize output is no longer reported as a successful measurement
  • Measurements are isolated per game/AppID

Steam Runner

  • Major Game Optimization Runner improvements
  • Improved preservation of the original Steam / Proton environment
  • Fixed Steam Runtime libraries leaking into host tools
  • Fixed scenarios that could incorrectly produce compatdata/0
  • Improved AppID restoration and validation
  • Improved environment isolation for host-side commands
  • One permanent Steam Launch Option can still be used while the application generates the per-game launch plan
  • Improved runner preflight detection from Steam localconfig.vdf
  • Fixed false Game Optimization Runner is not configured results when Steam contains multiple nodes for the same AppID
  • Launch Options are now checked semantically instead of requiring one exact string
  • Improved runner support for repeated Steam/Proton wrapper stages

Performance Baseline

  • Added experimental Record baseline workflow
  • Baseline sessions use a private one-session MangoHud configuration
  • Saved per-game MangoHud profiles are not modified
  • Added session states for:
    • waiting for Steam
    • waiting for runner
    • recording
    • waiting for game exit
    • processing
    • completed / failed
  • Added protection against stale or previous sessions attaching to a new launch
  • Improved handling of Steam/Proton launching the runner multiple times
  • Added fallback handling when the MangoHud log has completed but the runner completion signal is lost
  • Added support for importing an existing MangoHud log

Note

Real baseline recording is still experimental and needs more testing with different Steam/Proton games.
Some games may still fail to create a usable measurement.

Gamescope / GameMode / Launch Plan

  • Improved Gamescope command generation
  • Removed unnecessary default Gamescope arguments
  • Improved Gamescope environment isolation
  • Prevented Steam Runtime / Vulkan / Fossilize variables from incorrectly leaking into Gamescope
  • GameMode and Gamescope remain independent parts of the generated launch plan
  • Improved wrapper ordering while preserving the original Steam/Proton command

Controller / Couch Mode

  • Fixed controller access inside the Flatpak sandbox
  • Added required input-device access
  • Improved SDL3 controller diagnostics
  • Improved controller dead-zone and navigation handling
  • Improved Couch Mode fullscreen / cursor behavior
  • Removed or hidden controller settings that had no working implementation

UI / Settings

  • New Sidebar SVG icons
  • Improved Optimization page layout
  • Improved Detected Game information layout
  • Added more detailed performance-analysis information
  • Removed placeholder CPU/GPU resource-limit controls that had no runtime implementation
  • Removed non-functional interface-sound setting
  • Removed unnecessary Sidebar status/version information
  • Improved saved default Btrfs compression-profile behavior

Fixed

  • Flatpak startup regressions after controller refactoring
  • Host command execution from Steam Runtime environments
  • Gamescope crashes caused by inherited Steam loader variables
  • Controller not being visible inside the Flatpak sandbox
  • VRAM incorrectly reporting 0 GiB
  • Game Analyzer ignoring executable information already available elsewhere in the application
  • Exact Btrfs measurement succeeding internally but appearing as unavailable in the UI
  • False-negative Steam runner detection for games with duplicate AppID nodes in localconfig.vdf
  • Baseline lifecycle getting stuck when Steam/Proton invoked the runner more than once
  • Various QML state, translation and runtime issues

Experimental Automatic Optimization

The long-term optimization workflow is now being built around:

Analyze Game -> Measure -> Detect Bottleneck -> Recommend -> Preview -> Apply -> Measure Again -> Keep/Revert

The current implementation is only the foundation.

Game Optimization Linux deliberately avoids fake FPS predictions, generic "RAM booster" behavior, global cache clearing and blindly applying unknown engine variables.

If there is not enough reliable information, the application should prefer returning no recommendation rather than applying a placebo tweak.

Known limitations

  • Engine detection is incomplete and some games will show Unknown
  • Executable/runtime/API detection may still fail for some games
  • Game category detection is currently very limited
  • Baseline recording still needs real-world testing across more games and Proton versions
  • Automatic Optimization currently has only a small set of safe candidates
  • A detected engine does not yet mean that the application has a useful optimization for that game
  • Gamescope compatibility still varies between games and systems
  • This is still an alpha release

Not included yet

The following planned features are not part of this release yet:

  • Deep Optimize / unnecessary game-data cleanup
  • AI Graphics Remaster
  • Local Polish / Spanish narrator
  • Full engine-specific optimization library
  • Generic automatic RAM optimization

These are planned for later development and should not be considered finished features.