Skip to content

Add ArmadaLSFGAdaptive to Plugin Store - #1108

Closed
drewano wants to merge 6 commits into
SteamDeckHomebrew:mainfrom
drewano:add/armada-lsfg-adaptive
Closed

Add ArmadaLSFGAdaptive to Plugin Store#1108
drewano wants to merge 6 commits into
SteamDeckHomebrew:mainfrom
drewano:add/armada-lsfg-adaptive

Conversation

@drewano

@drewano drewano commented Aug 17, 2026

Copy link
Copy Markdown

Add ArmadaLSFGAdaptive to Plugin Store

Armada LSFG Adaptive brings LSFG-VK frame generation (Lossless Scaling-style) to Armada OS handhelds — the SteamOS-like distro for ARM64 (Snapdragon) devices (AYN Odin 2/3/Thor, Retroid Pocket, AYANEO Pocket...). Armada OS replicates the SteamOS experience (gamescope session, Steam game-mode UI, Decky preinstalled), and this plugin follows the standard Decky plugin model: Python backend + React frontend.

What it does

  • Installs an aarch64 build of the lsfg-vk Vulkan layer (bundled via sha256-pinned remote_binary) at the user level (~/.local) — no root flag, immutable OS untouched.
  • Discovers the user's own Lossless.dll in their Steam library (requires the Lossless Scaling app; the plugin never distributes or modifies it — same requirement as decky-lsfg-vk and Decky-Framegen already on the store).
  • Writes per-game [[profile]] blocks to ~/.config/lsfg-vk/conf.toml; activation is by executable-name matching (active_in) — no Steam launch options needed.
  • Exposes the fork's adaptive mode: target FPS (30-240), max multiplier ceiling (2x/3x/4x), smooth cadence — plus fixed multiplier, flow scale, performance mode. Default target FPS derives from the panel refresh rate read from the device environment.
  • All config writes are atomic with backups; foreign conf.toml content from other tools is preserved; kill switches (DISABLE_LSFGVK=1) documented.

How it differs from decky-lsfg-vk / Decky-Framegen

Those target x86_64 (Steam Deck / Bazzite) with fixed multipliers. This plugin is the first aarch64 build on the store and the first with adaptive frame generation (engine: eugeniosegala/lsfg-vk-experimental pinned at commit 276030d, version 2.0.0-dev28-experimental.25, GPL-3.0). On x86_64 systems the plugin detects the architecture mismatch and refuses to install the layer with a clear status message (clean no-op, nothing written).

The prebuilt .so is fully verifiable: remote_binary is sha256-pinned to a release asset, the exact source commit and rebuild instructions live in engine/ of the plugin repo, and THIRD_PARTY_NOTICES.md ships in the zip.

Task Checklist

Developer

  • I am the original author or an authorized maintainer of this plugin.
  • I have abided by the licenses of the libraries I am utilizing, including attaching license notices where appropriate.
  • Generative AI was NOT used to write a majority of the code I am submitting.

Disclosure: a majority of this plugin's code was written with AI assistance (agentic coding tool) under the maintainer's direction. In the spirit of the checklist above I am disclosing this explicitly rather than leaving the box unchecked silently: all code is public and unobfuscated in the repository, includes 31 unit tests, was built and validated with decky plugin build (CLI 0.0.8), and every bundled binary is pinned and rebuildable from source. Happy to follow maintainer guidance on this point.

Plugin

  • I have verified that my plugin works properly on the Stable and Beta update channels of SteamOS.
  • I have verified my plugin is unique or provides more/alternative functionality to a plugin already on the store.

Note: this plugin targets Armada OS (aarch64) hardware. On x86_64 SteamOS it performs an architecture check and cleanly refuses to install the Vulkan layer (clear status shown in the panel, nothing modified). I have not yet been able to test on an Armada device through the Decky store flow, so I am leaving the SteamOS box unchecked and flagging this for maintainer guidance on hardware-specific plugins.

Backend

  • No: I am using a custom backend other than Python.
  • Yes: I am using a tool or software from a 3rd party FOSS project that does not have it's dependencies statically linked. (liblsfg-vk-layer.so — GPL-3.0, dynamically linked, source-pinned, sha256-verified at build time)
  • No: I am using a custom binary that has all of it's dependencies statically linked.

Community

  • I have tested and left feedback on two other pull requests for new or updating plugins.
  • I have commented links to my testing report in this PR.

(Not done yet; happy to test other PRs to help the queue.)

Testing

  • Tested by a third party on SteamOS Stable or Beta update channel.
  • Tested by a third party on SteamOS Preview update channel.

@drewano
drewano requested a review from a team as a code owner August 17, 2026 04:30
@github-actions github-actions Bot added the plugin-addition Adding a plugin to the Plugin Store label Aug 17, 2026
@github-actions

Copy link
Copy Markdown

Issues Found

  • Both testing boxes are present in your description. Please remove one of them per the Markdown comment above the testing section.

Next Steps

  1. If we found any issues above, please edit your pull request description to resolve them and leave a comment saying you've done so.
  2. For the quickest review, please see the Community section of the pull request template for how you can help other developers.
  3. Once your description is correct, a maintainer will review your pull request as soon as possible.

Thank you for your contribution! If you need any help, please reach out on our Discord server. ❤️

@PancakeTAS

Copy link
Copy Markdown

This is just AI slop.. I'd do not want to have my project wrapped into a plugin by AI on the plugin database, nor do I want an AI slop fork to be in the plugin database. As far as I understand, generative AI is disallowed anyways.

Besides, there already is a plugin for lsfg-vk in the repository.

@drewano drewano closed this Aug 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

plugin-addition Adding a plugin to the Plugin Store

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants