Skip to content

v2.2.9-linux.3 — Update from inside the app

Choose a tag to compare

@Nicholasvoador Nicholasvoador released this 06 Oct 21:16
· 3 commits to main since this release

v2.2.9-linux.3 — Update from inside the app

The app can now update itself and its RenoDX add-ons, from About → Updates. This release also ships the newer multipass build.

What's new

  • Updates panel (About page). It lists this copy, the original DLSS 5 Swapper it follows, the RenoDX add-ons and the other components, each with what's newer. The sidebar's "update available" lines now open the panel. Nothing happens until you press a button and confirm.
    • Updating the app. The app downloads the next release of this fork and checks it against GitHub's published SHA-256 and the release's SHA256SUMS.txt. Both must agree, and at least one must exist. It then installs the update the way you installed the app, and restarts.
      • An AppImage replaces itself.
      • An rpm goes through pkexec dnf install, and a deb through pkexec apt-get install, so your desktop asks for your password.
    • Updating the RenoDX add-ons (DLSS5 consumer and multipass). The app finds the newest build on the project's own release feed. It downloads it, checks it against GitHub's SHA-256, and requires a 64-bit Windows DLL. Then it lays the build into the payload, each file replaced whole. Back to returns to the build this release ships.
  • Multipass add-on SF 26.0928.0205 → SF 26.1003.2350. Zip 34ef92d6…, add-on 1310119c….

Fixed

  • New fork releases were never announced. The version check read only the first three numbers, so 2.2.9-linux.3 looked the same as 2.2.9-linux.2.
  • The sidebar kept announcing an add-on update after an app update. The cached add-on check (kept for 6 hours) still held the old version's add-ons. What this build ships is now measured every time.
  • The sidebar's add-on line stayed up after the add-on was updated.

Verified

  • Tests: npm test gives 370 tests, 368 pass, 0 fail, 2 skipped. 18 of them are new, for the updater. The suite no longer reaches the network.
  • On the RTX 5070 box, with a build labelled 2.2.9-linux.1, in an isolated config folder:
    • Add-on update: multipass SF 26.1003.2350 downloaded and checked. The installed file matches the release byte for byte (checked separately with curl and 7z). Back to SF 26.0928.0205 restored the shipped file.
    • App update: the published 2.2.9-linux.2 AppImage downloaded and was checked against GitHub and SHA256SUMS.txt. It replaced the running AppImage, and the app restarted into 2.2.9-linux.2. The old AppImage mount was released, and no file descriptors leaked into the new process.
  • This release's AppImage fetched SF 26.1003.2350 by itself on first start and reports everything up to date.

Good to know

  • 2.2.9-linux.2 has no updater, so moving to this release is a one-time manual install. From here on, the app updates itself.
  • The rpm/deb update path is tested with the system calls stubbed. The full flow (download, verify, replace, restart) ran for real with the AppImage, and the rpm and deb path is the same apart from the final step. The first real dnf upgrade through the app will be 2.2.9-linux.3 → the next release.
  • Feeder, DLSS5VKLayer and OptiScaler are installed as several files each, so they still move with app releases. The panel shows their status and links to them.
  • The checks are anonymous. GitHub allows 60 anonymous API requests an hour. Opening the panel uses two; launching the app uses one, plus the add-on check every 6 hours.
File SHA-256
DLSS5-Swapper-Linux-2.2.9-linux.3-x86_64.AppImage a16641f313027ca83b045e2c415e3ec30ff22e2fc9c79e3b379f877b86a1ef0c
DLSS5-Swapper-Linux-2.2.9-linux.3-amd64.deb 4e7ecb1cc946ab0e5b2d250f4853160fba3f91b8603b9bd7f60ec56a4e4b1d05
DLSS5-Swapper-Linux-2.2.9-linux.3-x86_64.rpm 7f4da114c14b8a69db416aecaa341b2bfdbb7902866de268ed8ca2bf831e4200