Repository navigation
Releases: xXJSONDeruloXx/omfg-deck
Release list
v0.1.4
What's new in v0.1.4
Full workaround parity with decky-lsfg-vk
| Toggle | Env var(s) set |
|---|---|
| Disable vSync | MESA_VK_WSI_PRESENT_MODE=immediate |
| Base FPS Cap slider (0–60) | DXVK_FRAME_RATE=N |
| Disable vkbasalt | DISABLE_VKBASALT=1 (mutex with Force Enable) |
| Force Enable vkbasalt | ENABLE_VKBASALT=1 (mutex with Disable) |
| Gamescope WSI (disabled by default — conflicts with frame gen) | ENABLE_GAMESCOPE_WSI=0 DXVK_HDR=0 |
| WoW64 for 32-bit games | PROTON_USE_WOW64=1 |
| Disable Steam Deck Mode | SteamDeck=0 |
| MangoHud Workaround | MANGOHUD=1 |
| Zink (OpenGL → Vulkan) | __GLX_VENDOR_LIBRARY_NAME=mesa MESA_LOADER_DRIVER_OVERRIDE=zink GALLIUM_DRIVER=zink |
- Explicit
VK_INSTANCE_LAYERS=VK_LAYER_OMFG_rust+VK_LAYER_PATH PRESSURE_VESSEL_FILESYSTEMS_RWset to expose layer dir inside Proton container
Config section collapsible
Config knobs section now has a collapse/expand toggle (default expanded), state saved to localStorage.
Smart clipboard (two modes)
Toggle in Usage section switches between:
- Inline: full env var string with active workarounds prepended
- Wrapper:
/home/deck/.config/omfg/omfg-wrapper.sh %command%
Nerd Stuff modal
Tap Nerd Stuff to view raw omfg-live.toml and omfg-wrapper.sh with per-file copy buttons.
v0.1.3 — Workarounds section
What's new in v0.1.3
Workarounds section
New Workarounds panel in the plugin UI with two toggles that get prepended to the generated launch option string:
Disable vSync (MESA_VK_WSI_PRESENT_MODE=immediate)
Recommended for all frame generation use. Prevents Mesa's compositor vsync from interfering with the layer's frame insertion timing. Without this, the display sync interval fights the layer's inserted presents, causing stutter.
Disable vkbasalt (DISABLE_VKBASALT=1)
Enable if you see black screens or visual artifacts. vkbasalt post-processing can conflict with frame generation layers by processing the inserted frames.
When active, the launch option shown in the Usage panel and copied by the clipboard button automatically includes the enabled workarounds at the front:
MESA_VK_WSI_PRESENT_MODE=immediate DISABLE_VKBASALT=1 ENABLE_OMFG_RUST=1 OMFG_HOT_CONFIG_PATH=... %command%
Shared omfg.env store
Refactored the ~/.config/omfg/omfg.env file to be a proper multi-key store. The global layer disable flag and workaround flags now coexist without clobbering each other.
Tests
197 passing tests · 100% backend coverage
v0.1.2 — Full config parity + global toggle + log viewer
What's new in v0.1.2
Complete config parity with omfg-live.toml
All 37 OMFG environment variables are now surfaced in the plugin UI — previously 12 were missing:
Hot-reload (apply without restarting the game):
OMFG_ADAPTIVE_MULTI_INTERVAL_THRESHOLD_MS— adaptive controller debounce intervalOMFG_BFI_HOLD_MS— black frame hold duration (visible inbfimode)OMFG_VISUAL_HOLD_MS— visual frame hold time (bfi / copy / history-copy)OMFG_BLEND_ORIGINAL_PRESENT_FIRST— blend mode frame order toggleOMFG_COPY_ORIGINAL_PRESENT_FIRST— copy mode frame order toggleOMFG_HISTORY_COPY_FREEZE_HISTORY— freeze history frame in history-copy modeOMFG_PRESENT_WAIT_TIMEOUT_NS— present-wait timeout (shown only when Present Wait is on)OMFG_BENCHMARK_LABEL— benchmark output label (shown only when Benchmark is on)
Startup-scoped (require game restart — clearly labelled ⚠):
OMFG_SWAPCHAIN_IMAGE_BUMP_OVERRIDEOMFG_CREATE_DEVICE_DEBUGOMFG_CREATE_DEVICE_APPEND_TIMING_EXTENSIONSOMFG_CREATE_DEVICE_APPEND_TIMING_FEATURES
Global layer enable/disable toggle
New toggle at the top of the plugin panel. Writes OMFG_DISABLE_LAYER=1 to ~/.config/omfg/omfg.env, which the wrapper script sources. Disable OMFG for all games without touching individual launch options.
Layer log viewer
"View Layer Log" button reads the last 60 lines from ~/.local/share/omfg/logs/omfg.log and renders them inline in a scrollable monospace panel. Appears only when the layer is installed.
Wrapper script updated
The installed omfg-wrapper.sh now sources omfg.env and respects OMFG_DISABLE_LAYER, and explicitly sets OMFG_LAYER_LOG_FILE.
Tests
- 186 passing pytest tests, 100% backend coverage
v0.1.1 — Bug fixes + 100% test coverage
Bug fixes
- Critical: Fixed
NameErroron plugin load —WRAPPER_FILENAMEwas missing from import ininstallation.py, causing the plugin to crash immediately when Decky calledcheck_omfg_installed - Bug: Restored orphaned
update_fieldmethod inconfiguration.py(definition line was dropped by a prior edit) - UX: Fixed clipboard button falsely reporting "✓ Copied!" on Steam Deck — now uses
execCommand('copy')fallback whennavigator.clipboardis unavailable in Steam's local HTTP context - Cleanup: Removed all unused imports across backend modules
Tests
- 176 passing pytest tests, 100% backend coverage across all 8 modules
- No real network calls or filesystem I/O — all mocked
- Runs in ~0.5 s
v0.1.0 — Initial Release
OMFG Deck v0.1.0
Decky Loader plugin for the OMFG (Open Multi Frame Generation) Vulkan layer on Steam Deck.
Installation
Install via Decky Loader → Developer → Install from ZIP, or wait for store listing.
Features
- One-click install — downloads latest OMFG layer from GitHub releases
- Live config editing — all 25 OMFG knobs exposed with sliders/dropdowns/toggles
- Hot-reload — changes to
~/.config/omfg/omfg-live.tomlapply in ~250 ms, no game restart - Context-aware UI — Reprojection, Optical Flow, Multi/Adaptive, BFI sections appear only for relevant modes
- Per-slider reset (B button snaps to default)
- Reset to Defaults button (backs up current config to
.toml.bak) - Launch option clipboard button
- Plugin self-update checker
Quick Start
- Install the plugin
- Press Install OMFG in the plugin panel
- Add to each game's Steam Launch Options:
ENABLE_OMFG_RUST=1 OMFG_HOT_CONFIG_PATH=/home/deck/.config/omfg/omfg-live.toml %command%
Layer Modes Supported
passthrough · clear · bfi · copy · history-copy · blend · adaptive-blend · search-blend · search-adaptive-blend · reproject-blend · reproject-adaptive-blend · optflow-blend · multi-blend · adaptive-multi-blend · reproject-multi-blend · reproject-adaptive-multi-blend · optflow-multi-blend · optflow-adaptive-multi-blend