build(linux): the AppImage's renderer is compiled by the player's build, as with DLSS and FSR 4; no prebuilt renderer #574

Merged
HumanBean merged 1 commit from HumanBean/Longshot:build/no-prebuilt-renderer into main 2026-11-14 21:17:34 +00:00
Owner

Why

Most players build with DLSS or FSR 4, and those builds compile the Vulkan renderer on their own PC anyway, so the Linux AppImage's prebuilt longshot_vk.so reaches few players. It also needed AVX2: a Linux CPU without it was refused outright (the no-AVX2 Xeon crash that nx2/build.py cites as issue 363). With this PR every build compiles the renderer, so there is one build path to test, the play profile (#569) and native CPU builds (#524) reach every Linux player, and CPUs without AVX2 can build and play.

What changed

  • AppImage: scripts/linux/appimage.sh no longer has the "Vulkan back end, built here once" step. That step held the x86-64-v3 RX_VK_ONLY build and the play-profile selection and xz unpack that #569 added. The script also no longer copies $VK into usr/lib/longshot, and the image has no usr/lib/longshot folder. It still carries gpu/vk, gpu/compat, gpu/third_party, imgui/zstd/fonts/fidelityfx/zbic, assets/ (with assets/profiles/) and the work/ loop for developer profiles. The comments now match.
  • builder/linux/AppRun: no LIB= and no export LONGSHOT_VK_PREBUILT=....
  • nx2/build.py: prebuilt_renderer() is gone, and so are the "as built" branch, the prebuilt copy into the game folder and the prebuilt file in the dry run's missing list. build_vk is now a.standalone and <headers>. The missing-headers message no longer suggests LONGSHOT_VK_PREBUILT, and the header, FSR and fonts comments are updated.
  • nx2/make_game.py: check_cpu() and both calls to it are gone (the AVX2 refusal from the no-AVX2 Xeon crash that nx2/build.py cites as issue 363), along with the --fsr "not the prebuilt one" message. check_linux_prerequisites() now always checks the renderer headers (plus FSR's when --fsr) and always needs clang++. A stale comment in ngx_script() is corrected.
  • CI, .forgejo/workflows/build-linux.yml: the AppImage step no longer compiles the renderer, so a new step longshot_vk.so (build check) compiles it the way a player's build does. It picks the play profile the same way make_game.py's vk_profile_for does (the checkout's work/longshot_vk.profdata, else the committed one). It builds into build-linux/vk-work, so the PR object cache works as before, and uses RX_MARCH=x86-64-v3 so cache keys don't depend on the runner's CPU. The FSR 4 check still copies that work folder and now builds with the same RX_VK_PGO, so only vk_fsr4.cpp recompiles. Both checks are gated by RELEASE_CHECKED like other build checks that ship nothing. Header comments are updated, and release.yml has a one-line comment fix.
  • scripts/linux/check_player_build.sh: the plain dry run (no DLSS or FSR) from the extracted image must now print the Vulkan back end: Vulkan ... and must not print FSR 4. The image must not carry usr/lib/longshot/longshot_vk.so. The FSR variant still has to say with AMD FSR 4.
  • Tests:
    • tests/test_appimage_player_build.py: the dry runs no longer use a stub prebuilt. The plain run must compile the back end. A new test_no_prebuilt_renderer checks that nothing in nx2/, scripts/, builder/ or the workflows sets or reads LONGSHOT_VK_PREBUILT, that AppRun names no .so, that appimage.sh builds no renderer and has no usr/lib/longshot, and that it still copies gpu/vk and assets/. A new test_the_image_carries_the_renderer_sources_and_assets checks the packaged tree.
    • tests/test_cpu_target.py: the AppImageCheck class becomes NoCpuRefusal (no check_cpu, no "no AVX2" in make_game.py). The appimage assertion now says the AppImage builds no fixed-level renderer.
    • tests/test_linux_preflight.py: the three prebuilt tests become "every build needs the renderer headers / clang++" tests. A LONGSHOT_VK_PREBUILT left in the shell is ignored. The NGX and FSR tests still expect SPIR-V to be missing. The bundled-FFmpeg test gets headers instead of a prebuilt. check_cpu is dropped from the patched names.
    • tests/test_missing_nup.py: check_cpu dropped from the patched names.
    • tests/test_vk_pgo.py check_release: the AppImage builds no renderer and carries assets/. CI's build check takes the profile the way make_game.py does.
    • tests/test_make_game_ngx.py, tests/test_appimage_licenses.py: the prebuilt_renderer assertions become "always compiled" assertions.
    • tests/test_windows_on_linux.py: the release-checked gated steps now include the new build check.
  • Docs: docs/development.md (prerequisites paragraph, the LONGSHOT_VK_PREBUILT switch row removed, the play-profile paragraph), README.md (AVX2 no longer required, the FSR 4 line), docs/common-issues.md (the AVX2 requirement), docs/releases.md (what the AppImage carries), assets/profiles/README.md.

Flags and settings

Flag What it does Default now Recommendation Helps on Doesn't help on Untested on
LONGSHOT_VK_PREBUILT (removed) Used to name a built longshot_vk.so to use in place of compiling one (the AppImage's) gone: every build compiles the renderer removed, for one build path Linux CPUs without AVX2 (they build and play now); Linux players without DLSS or FSR 4 get the play profile and a native-CPU renderer the first build of a Linux player without DLSS or FSR 4 gets longer (below) everything: not measured

Measurements

Not measured. This PR changes the build, not the renderer, and nothing was built or run here (no build and no tests on this PC). The cost is extra first-build time for Linux players without DLSS or FSR 4, mostly Steam Deck owners, who now compile the renderer: about 35 of Longshot's own files plus Eden, sirit, ImGui and zstd. An estimate, not a measurement: about 3 minutes for one compile job from scratch on a Ryzen 9 7900X, and on a Steam Deck's 4 cores probably 1 to 3 extra minutes on the first build. Later builds reuse the object cache. This needs a measured Steam Deck first build, main vs this PR (request to open).

main: 7ff5256e (2026-11-14)
this PR: build/no-prebuilt-renderer @ ad867049, on main 4e80ea63 (after #569 merged)
Hardware: not measured
Scene: none (build time)
Method: not measured
How to reproduce: on a Steam Deck, a first build from a clean work folder with each AppImage (main's, this PR's), without DLSS or FSR 4, timed from start to "game ready"; at least 2 runs each

main @ 7ff5256e this PR @ 15a016ee
first build, Steam Deck, no DLSS/FSR 4 not measured not measured
not measured

Testing

Tested: Nothing was run here: no tests, no build and no game, by the owner's rule for this PC. CI runs the checks. I read the changed code paths and every check that reads them (grep for LONGSHOT_VK_PREBUILT, prebuilt_renderer, check_cpu, longshot_vk.so across scripts, tests, workflows and docs).

Not tested:

  • A real AppImage build. CI's AppImage job and check_player_build.sh cover that once it runs.
  • A player's build with this AppImage, in the game.
  • First-build time anywhere.

Needs other testers:

  • Linux AppImage build without DLSS or FSR 4 (any GPU): build the game from this PR's AppImage, expecting the log to show the Vulkan back end compiled (the Vulkan back end: Vulkan ...), longshot_vk.so in the game folder and the game starting (request to open)
  • Steam Deck: the first build without DLSS or FSR 4, timed against main's AppImage, expecting it to finish and the game to start, a few minutes longer (request to open)
  • A Linux PC whose CPU has no AVX2: build and play, expecting no "Your processor has no AVX2" stop and the game running, built for x86-64-v2 (request to open)

Screenshots

Nothing on screen

Risk and rollback

  • A Linux build without DLSS or FSR 4 now needs everything the renderer compile needs. tools.lock already provides these (Vulkan, SPIR-V and VMA headers, clang++) and DLSS/FSR 4 builds have used them for a while. A missing one is reported by check_linux_prerequisites() before the game is read.
  • First Linux builds get longer for players without DLSS or FSR 4 (above).
  • Reverting the commit brings the prebuilt renderer back.

Reviewer notes

  • Read nx2/build.py around build_vk, nx2/make_game.py check_linux_prerequisites(), and the new CI step in .forgejo/workflows/build-linux.yml. That step takes over the renderer compile and profile selection that used to live in appimage.sh, so the object cache and the FSR 4 check keep working.
  • Left alone on purpose:
    • appimage.sh's compiler sanity check still compiles a test program with -march=x86-64-v3. It runs on the machine that builds the AppImage, not on players' PCs.
    • The historical Findings text in docs/design.md and the docs/tested-configurations.md rows.

Issues

See the no-AVX2 Xeon crash that nx2/build.py cites as issue 363 (the AVX2 refusal this removes along with its cause)

Checklist

For everyone

  • One topic.
  • The title is a Conventional Commit (type(scope): description).
  • Rebased on current main (4e80ea63, with #569).
  • python -I -B tests/run_all.py run and passing (not run here: left to CI).
  • Tested in the game, or what wasn't is named under Testing.
  • Testing filled in: what was tested, what wasn't, and what needs other testers (with test requests).
  • Measured: main and this PR at named commits, on the same PC, scene and settings, at least 2 interleaved runs each, the median reported. (Not measured: the Steam Deck first-build time needs a test request.)
  • No game files, dumps, build output or generated files.
  • third_party/ untouched (a new folder with a PROVENANCE.md instead).
  • The license is OK: GPL-3.0-or-later, nothing incompatible and nothing decompiled.

If applicable

  • AI assistance recorded with Assisted-by: / Co-Authored-By: trailers.
  • Flags noted, and the switch reference updated (docs/development.md, the README).
  • A check under tests/ that reads changed source updated in this PR, not weakened.
  • Docs updated.

🤖 Generated with Claude Code

## Why Most players build with DLSS or FSR 4, and those builds compile the Vulkan renderer on their own PC anyway, so the Linux AppImage's prebuilt `longshot_vk.so` reaches few players. It also needed AVX2: a Linux CPU without it was refused outright (the no-AVX2 Xeon crash that `nx2/build.py` cites as issue 363). With this PR every build compiles the renderer, so there is one build path to test, the play profile (https://git.magicbean.dev/MagicBeanDev/Longshot/pulls/569) and native CPU builds (https://git.magicbean.dev/MagicBeanDev/Longshot/pulls/524) reach every Linux player, and CPUs without AVX2 can build and play. ## What changed - AppImage: `scripts/linux/appimage.sh` no longer has the "Vulkan back end, built here once" step. That step held the x86-64-v3 `RX_VK_ONLY` build and the play-profile selection and xz unpack that https://git.magicbean.dev/MagicBeanDev/Longshot/pulls/569 added. The script also no longer copies `$VK` into `usr/lib/longshot`, and the image has no `usr/lib/longshot` folder. It still carries `gpu/vk`, `gpu/compat`, `gpu/third_party`, imgui/zstd/fonts/fidelityfx/zbic, `assets/` (with `assets/profiles/`) and the `work/` loop for developer profiles. The comments now match. - `builder/linux/AppRun`: no `LIB=` and no `export LONGSHOT_VK_PREBUILT=...`. - `nx2/build.py`: `prebuilt_renderer()` is gone, and so are the "as built" branch, the prebuilt copy into the game folder and the prebuilt file in the dry run's missing list. `build_vk` is now `a.standalone and <headers>`. The missing-headers message no longer suggests `LONGSHOT_VK_PREBUILT`, and the header, FSR and fonts comments are updated. - `nx2/make_game.py`: `check_cpu()` and both calls to it are gone (the AVX2 refusal from the no-AVX2 Xeon crash that `nx2/build.py` cites as issue 363), along with the `--fsr` "not the prebuilt one" message. `check_linux_prerequisites()` now always checks the renderer headers (plus FSR's when `--fsr`) and always needs `clang++`. A stale comment in `ngx_script()` is corrected. - CI, `.forgejo/workflows/build-linux.yml`: the AppImage step no longer compiles the renderer, so a new step **`longshot_vk.so (build check)`** compiles it the way a player's build does. It picks the play profile the same way `make_game.py`'s `vk_profile_for` does (the checkout's `work/longshot_vk.profdata`, else the committed one). It builds into `build-linux/vk-work`, so the PR object cache works as before, and uses `RX_MARCH=x86-64-v3` so cache keys don't depend on the runner's CPU. The FSR 4 check still copies that work folder and now builds with the same `RX_VK_PGO`, so only `vk_fsr4.cpp` recompiles. Both checks are gated by `RELEASE_CHECKED` like other build checks that ship nothing. Header comments are updated, and `release.yml` has a one-line comment fix. - `scripts/linux/check_player_build.sh`: the plain dry run (no DLSS or FSR) from the extracted image must now print `the Vulkan back end: Vulkan ...` and must not print FSR 4. The image must not carry `usr/lib/longshot/longshot_vk.so`. The FSR variant still has to say `with AMD FSR 4`. - Tests: - `tests/test_appimage_player_build.py`: the dry runs no longer use a stub prebuilt. The plain run must compile the back end. A new `test_no_prebuilt_renderer` checks that nothing in `nx2/`, `scripts/`, `builder/` or the workflows sets or reads `LONGSHOT_VK_PREBUILT`, that AppRun names no `.so`, that `appimage.sh` builds no renderer and has no `usr/lib/longshot`, and that it still copies `gpu/vk` and `assets/`. A new `test_the_image_carries_the_renderer_sources_and_assets` checks the packaged tree. - `tests/test_cpu_target.py`: the `AppImageCheck` class becomes `NoCpuRefusal` (no `check_cpu`, no "no AVX2" in `make_game.py`). The appimage assertion now says the AppImage builds no fixed-level renderer. - `tests/test_linux_preflight.py`: the three prebuilt tests become "every build needs the renderer headers / clang++" tests. A `LONGSHOT_VK_PREBUILT` left in the shell is ignored. The NGX and FSR tests still expect SPIR-V to be missing. The bundled-FFmpeg test gets headers instead of a prebuilt. `check_cpu` is dropped from the patched names. - `tests/test_missing_nup.py`: `check_cpu` dropped from the patched names. - `tests/test_vk_pgo.py` `check_release`: the AppImage builds no renderer and carries `assets/`. CI's build check takes the profile the way `make_game.py` does. - `tests/test_make_game_ngx.py`, `tests/test_appimage_licenses.py`: the `prebuilt_renderer` assertions become "always compiled" assertions. - `tests/test_windows_on_linux.py`: the release-checked gated steps now include the new build check. - Docs: `docs/development.md` (prerequisites paragraph, the `LONGSHOT_VK_PREBUILT` switch row removed, the play-profile paragraph), `README.md` (AVX2 no longer required, the FSR 4 line), `docs/common-issues.md` (the AVX2 requirement), `docs/releases.md` (what the AppImage carries), `assets/profiles/README.md`. ## Flags and settings | Flag | What it does | Default now | Recommendation | Helps on | Doesn't help on | Untested on | |---|---|---|---|---|---|---| | `LONGSHOT_VK_PREBUILT` (removed) | Used to name a built `longshot_vk.so` to use in place of compiling one (the AppImage's) | gone: every build compiles the renderer | removed, for one build path | Linux CPUs without AVX2 (they build and play now); Linux players without DLSS or FSR 4 get the play profile and a native-CPU renderer | the first build of a Linux player without DLSS or FSR 4 gets longer (below) | everything: not measured | ## Measurements Not measured. This PR changes the build, not the renderer, and nothing was built or run here (no build and no tests on this PC). The cost is extra first-build time for Linux players without DLSS or FSR 4, mostly Steam Deck owners, who now compile the renderer: about 35 of Longshot's own files plus Eden, sirit, ImGui and zstd. An estimate, not a measurement: about 3 minutes for one compile job from scratch on a Ryzen 9 7900X, and on a Steam Deck's 4 cores probably 1 to 3 extra minutes on the first build. Later builds reuse the object cache. This needs a measured Steam Deck first build, main vs this PR (request to open). main: 7ff5256e (2026-11-14) this PR: build/no-prebuilt-renderer @ ad867049, on main 4e80ea63 (after https://git.magicbean.dev/MagicBeanDev/Longshot/pulls/569 merged) Hardware: not measured Scene: none (build time) Method: not measured How to reproduce: on a Steam Deck, a first build from a clean work folder with each AppImage (main's, this PR's), without DLSS or FSR 4, timed from start to "game ready"; at least 2 runs each | | main @ 7ff5256e | this PR @ 15a016ee | |---|---|---| | first build, Steam Deck, no DLSS/FSR 4 | not measured | not measured | ``` not measured ``` ## Testing **Tested:** Nothing was run here: no tests, no build and no game, by the owner's rule for this PC. CI runs the checks. I read the changed code paths and every check that reads them (`grep` for `LONGSHOT_VK_PREBUILT`, `prebuilt_renderer`, `check_cpu`, `longshot_vk.so` across scripts, tests, workflows and docs). **Not tested:** - A real AppImage build. CI's AppImage job and `check_player_build.sh` cover that once it runs. - A player's build with this AppImage, in the game. - First-build time anywhere. **Needs other testers:** - Linux AppImage build without DLSS or FSR 4 (any GPU): build the game from this PR's AppImage, expecting the log to show the Vulkan back end compiled (`the Vulkan back end: Vulkan ...`), `longshot_vk.so` in the game folder and the game starting (request to open) - Steam Deck: the first build without DLSS or FSR 4, timed against main's AppImage, expecting it to finish and the game to start, a few minutes longer (request to open) - A Linux PC whose CPU has no AVX2: build and play, expecting no "Your processor has no AVX2" stop and the game running, built for x86-64-v2 (request to open) ## Screenshots Nothing on screen ## Risk and rollback - A Linux build without DLSS or FSR 4 now needs everything the renderer compile needs. tools.lock already provides these (Vulkan, SPIR-V and VMA headers, clang++) and DLSS/FSR 4 builds have used them for a while. A missing one is reported by `check_linux_prerequisites()` before the game is read. - First Linux builds get longer for players without DLSS or FSR 4 (above). - Reverting the commit brings the prebuilt renderer back. ## Reviewer notes - Read `nx2/build.py` around `build_vk`, `nx2/make_game.py` `check_linux_prerequisites()`, and the new CI step in `.forgejo/workflows/build-linux.yml`. That step takes over the renderer compile and profile selection that used to live in `appimage.sh`, so the object cache and the FSR 4 check keep working. - Left alone on purpose: - `appimage.sh`'s compiler sanity check still compiles a test program with `-march=x86-64-v3`. It runs on the machine that builds the AppImage, not on players' PCs. - The historical Findings text in `docs/design.md` and the `docs/tested-configurations.md` rows. ## Issues See the no-AVX2 Xeon crash that `nx2/build.py` cites as issue 363 (the AVX2 refusal this removes along with its cause) ## Checklist ### For everyone - [x] One topic. - [x] The title is a Conventional Commit (`type(scope): description`). - [x] Rebased on current `main` (4e80ea63, with https://git.magicbean.dev/MagicBeanDev/Longshot/pulls/569). - [ ] `python -I -B tests/run_all.py` run and passing (not run here: left to CI). - [x] Tested in the game, or what wasn't is named under Testing. - [x] Testing filled in: what was tested, what wasn't, and what needs other testers (with test requests). - [ ] Measured: main and this PR at named commits, on the same PC, scene and settings, at least 2 interleaved runs each, the median reported. (Not measured: the Steam Deck first-build time needs a test request.) - [x] No game files, dumps, build output or generated files. - [x] `third_party/` untouched (a new folder with a `PROVENANCE.md` instead). - [x] The license is OK: GPL-3.0-or-later, nothing incompatible and nothing decompiled. ### If applicable - [x] AI assistance recorded with `Assisted-by:` / `Co-Authored-By:` trailers. - [x] Flags noted, and the switch reference updated (docs/development.md, the README). - [x] A check under `tests/` that reads changed source updated in this PR, not weakened. - [x] Docs updated. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
perf(vk): the renderer is built with a committed play profile, about 3-5 % less frame time
Some checks failed
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been skipped
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been skipped
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been skipped
Third-party parts / The same as upstream (pull_request) Has been skipped
Website / Website on Cloudflare (pull_request) Has been skipped
CI / Conventional Commit title (pull_request) Successful in 3s
CI / Workflow lint (actionlint) (pull_request) Successful in 5s
Third-party parts / As their notes say (pull_request) Successful in 7s
beanstalk/approval awaiting maintainer approval
PR description / Description follows the template (pull_request_target) Failing after 16s
66328eff50
The Vulkan back end gets profile-guided builds of its own, apart from the hot game code's (RX_PGO), ported from
ProjectReLink (https://github.com/pixl27/ProjectReLink, GPL-3.0-or-later), and a profile committed in
assets/profiles/ that every build compiling the renderer uses: a player's (with DLSS or FSR 4 too), the AppImage's,
a developer's. On an RTX 3090 / Ryzen 9 7900X from the Market save (3 sessions each, median frame): 13.53 / 13.49 /
13.70 ms standing without, 12.96 / 13.37 / 12.94 ms with; 15.89 / 16.13 / 15.73 ms running without, 15.13 / 15.67 /
15.52 ms with.

- nx2/build.py: RX_VK_PGO=gen builds the back end's own files (gpu/vk/*.cpp and suyu's texture decoders; not Eden's
  recompiler, sirit, Dear ImGui or zstd) with -fprofile-instr-generate and links the module's own copy of
  host/pgo_rt.c; RX_VK_PGO=<file> builds them with that profile, its contents in the flags the object keys hash.
- host/pgo_rt.c: the variable that drives a run is PGO_ENV (HOS_PGO for the game module, RX_VK_PGO_FILE for the
  renderer's copy), and Linux: the ELF sections __llvm_prf_cnts/_data/_names by their __start_/__stop_ symbols.
- assets/profiles/longshot_vk.profdata.xz (160 KB) and its note: one Linux recording (Kokiri Forest, the Market) for
  every build for now.
- nx2/make_game.py: the checkout's work/longshot_vk.profdata when there is one, else the committed profile unpacked
  into the work folder, passed as RX_VK_PGO when this compiler reads it (checked on Windows too now), unless
  RX_VK_PGO is set already; RX_VK_PGO and RX_VK_PGO_FILE are out of the lift key.
- scripts/linux/appimage.sh: the AppImage's renderer is built with the same profile.
- scripts/dev_packs.py: a pack of the renderer alone is built with its base's profile.
- docs/development.md (the switches, "The renderer's play profile"), docs/design.md, RELEASING.md (record it again
  before a minor's first candidate when the renderer changed much).
- tests: test_vk_pgo.py, test_shader_stamp_cache.py; test_dlss_sdk_cache.py's namespace has the new name.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
build(linux): the AppImage's renderer is compiled by the player's build, as with DLSS and FSR 4; no prebuilt renderer
Some checks are pending
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been skipped
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been skipped
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been skipped
Third-party parts / The same as upstream (pull_request) Has been skipped
Website / Website on Cloudflare (pull_request) Has been skipped
beanstalk/approval awaiting maintainer approval
PR description / Description follows the template (pull_request_target) Successful in 4s
CI / Conventional Commit title (pull_request) Successful in 4s
CI / Workflow lint (actionlint) (pull_request) Successful in 6s
Third-party parts / As their notes say (pull_request) Successful in 8s
15a016ee3b
Most players build with DLSS or FSR 4, which compile the Vulkan back end on their PC anyway, so the AppImage's
prebuilt longshot_vk.so reached few players; the renderer's play profile (assets/profiles/) and native CPU builds
reach players through their own build. One way to build the renderer is one path to test.

- scripts/linux/appimage.sh builds no renderer and copies none into the image (usr/lib/longshot is gone); it still
  carries gpu/vk, the third-party parts, assets/ (with the play profile) and work/'s developer profiles.
- builder/linux/AppRun no longer sets LONGSHOT_VK_PREBUILT; nx2/build.py has no prebuilt_renderer() and always
  compiles the back end in a standalone build; nx2/make_game.py always checks the renderer headers and clang++.
- make_game.py's check_cpu() (issue 363: the AppImage's x86-64-v3 renderer refused CPUs without AVX2) goes with it:
  a Linux CPU without AVX2 now builds and plays.
- CI: build-linux.yml compiles longshot_vk.so as a build check (with the profile as make_game.py picks it), and the
  FSR 4 check builds on its work folder; check_player_build.sh checks the plain dry run compiles the back end.
- Tests and docs follow.

Cost: Linux players without DLSS or FSR 4 (mostly Steam Deck) now compile the renderer; not measured.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
HumanBean force-pushed build/no-prebuilt-renderer from 15a016ee3b
Some checks are pending
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been skipped
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been skipped
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been skipped
Third-party parts / The same as upstream (pull_request) Has been skipped
Website / Website on Cloudflare (pull_request) Has been skipped
beanstalk/approval awaiting maintainer approval
PR description / Description follows the template (pull_request_target) Successful in 4s
CI / Conventional Commit title (pull_request) Successful in 4s
CI / Workflow lint (actionlint) (pull_request) Successful in 6s
Third-party parts / As their notes say (pull_request) Successful in 8s
to ad867049bd
Some checks failed
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been skipped
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been skipped
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been skipped
Third-party parts / The same as upstream (pull_request) Has been skipped
Website / Website on Cloudflare (pull_request) Has been skipped
beanstalk/approval awaiting maintainer approval
PR description / Description follows the template (pull_request_target) Has been cancelled
CI / Conventional Commit title (pull_request) Has been cancelled
CI / Workflow lint (actionlint) (pull_request) Has been cancelled
Third-party parts / As their notes say (pull_request) Has been cancelled
2026-11-14 20:22:13 +00:00
Compare
Author
Owner

Rebased onto main 4e80ea63 now that #569 is merged: the diff is this PR's own commit only (ad867049, no conflicts). Description: the stacking note removed, the commit lines updated. Nothing run here.

Rebased onto main 4e80ea63 now that https://git.magicbean.dev/MagicBeanDev/Longshot/pulls/569 is merged: the diff is this PR's own commit only (ad867049, no conflicts). Description: the stacking note removed, the commit lines updated. Nothing run here.
HumanBean force-pushed build/no-prebuilt-renderer from ad867049bd
Some checks failed
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been skipped
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been skipped
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been skipped
Third-party parts / The same as upstream (pull_request) Has been skipped
Website / Website on Cloudflare (pull_request) Has been skipped
beanstalk/approval awaiting maintainer approval
PR description / Description follows the template (pull_request_target) Has been cancelled
CI / Conventional Commit title (pull_request) Has been cancelled
CI / Workflow lint (actionlint) (pull_request) Has been cancelled
Third-party parts / As their notes say (pull_request) Has been cancelled
to d2e02d55ed
Some checks are pending
beanstalk/approval awaiting maintainer approval
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been skipped
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been skipped
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been skipped
Third-party parts / The same as upstream (pull_request) Has been skipped
PR description / Description follows the template (pull_request_target) Successful in 15s
CI / Conventional Commit title (pull_request) Successful in 14s
CI / Workflow lint (actionlint) (pull_request) Successful in 20s
Third-party parts / As their notes say (pull_request) Successful in 28s
2026-11-14 20:24:01 +00:00
Compare
Author
Owner

Rebased onto main 414f56e2 (after #569 and #573 merged), no conflicts. Nothing run here.

Rebased onto main 414f56e2 (after https://git.magicbean.dev/MagicBeanDev/Longshot/pulls/569 and https://git.magicbean.dev/MagicBeanDev/Longshot/pulls/573 merged), no conflicts. Nothing run here.
Author
Owner

Rebased onto main b2911d33 (after #572, #372 and #404), no conflicts. Nothing run here.

Rebased onto main b2911d33 (after https://git.magicbean.dev/MagicBeanDev/Longshot/pulls/572, https://git.magicbean.dev/MagicBeanDev/Longshot/pulls/372 and https://git.magicbean.dev/MagicBeanDev/Longshot/pulls/404), no conflicts. Nothing run here.
HumanBean force-pushed build/no-prebuilt-renderer from d2e02d55ed
Some checks are pending
beanstalk/approval awaiting maintainer approval
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been skipped
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been skipped
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been skipped
Third-party parts / The same as upstream (pull_request) Has been skipped
PR description / Description follows the template (pull_request_target) Successful in 15s
CI / Conventional Commit title (pull_request) Successful in 14s
CI / Workflow lint (actionlint) (pull_request) Successful in 20s
Third-party parts / As their notes say (pull_request) Successful in 28s
to 295bf6e6ad
Some checks failed
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been skipped
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been skipped
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been skipped
Third-party parts / The same as upstream (pull_request) Has been skipped
Website / Website on Cloudflare (pull_request) Has been skipped
CI / Conventional Commit title (pull_request) Successful in 12s
CI / Workflow lint (actionlint) (pull_request) Successful in 22s
Third-party parts / As their notes say (pull_request) Successful in 18s
beanstalk/approval awaiting maintainer approval
PR description / Description follows the template (pull_request_target) Failing after 4s
2026-11-14 21:16:45 +00:00
Compare
HumanBean changed title from WIP: build(linux): the AppImage's renderer is compiled by the player's build, as with DLSS and FSR 4; no prebuilt renderer to build(linux): the AppImage's renderer is compiled by the player's build, as with DLSS and FSR 4; no prebuilt renderer 2026-11-14 21:17:16 +00:00
HumanBean deleted branch build/no-prebuilt-renderer 2026-11-14 21:17:35 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
MagicBeanDev/Longshot!574
No description provided.