WIP: chore(restore): Hookshot's tools, checks, docs and tested-configuration rows merged after Longshot branched #284
No reviewers
Labels
No labels
area/accessibility
area/audio
area/input
area/install
area/menu
area/renderer
area/saves
area/upscaling
good first issue
gpu/amd
gpu/igpu
gpu/intel
gpu/nvidia
help wanted
kind
bug
kind
chore
kind
docs
kind
feature
kind
performance
kind
question
needs measurements
platform/linux
platform/steam-deck
platform/windows
preview
priority
critical
priority
high
priority
low
status
blocked
status
confirmed
status
duplicate
status
invalid
status
needs-info
status
wontfix
testing wanted
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Longshot!284
Loading…
Reference in a new issue
No description provided.
Delete branch "TrashPanda/Longshot:restore/tools-checks-docs"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
Longshot lost the tools, checks, docs and tested-configuration rows Hookshot merged after Longshot branched. This brings
back the ones that do not touch the game, so they can merge on game-free checks alone. Split out of #209.
What changed
Split out of #209 as its reviewer asked (review on #209, point 4, group a). Each commit is the merged Hookshot pull request under its original author, carried through Longshot's rename; a
Restored-from:trailer names it, and the bare Hookshot numbers in the messages and the restored text are now full URLs.Credit to the authors of the restored work: jarynclouatre, jabbaxipil, Mooki, Jiro131, nullifyshot, Mark Roberts, Wagner Junior, Waryxxful, VineeSouzaa, Dukenheimer, Jordan Ella, RoblesLeo.
tests/srccut.py, one source cutter, with 80 checks moved to it (a missing or repeated marker now fails);run_all.py --changedruns the checks that read what changed; the startup pool placement and fallback checks nowexecute
.forgejo/workflows/ci.ymlruns the authored Vulkan fixtures on lavapipe, started by hand like the other full checkshookshot_bench.py, a repeatable benchmark route through the control bridge; a mistyped date in a claim nolonger stops the test-request replay (
scripts/test_requests.py)work/ffx-sdkhad a form feed in place of/f; 11 tested-configuration rows;RX_VK_IMAGE_PREALLOCand
RX_VK_TEST_ALLOWED_MBdocumentedSplit siblings: test-request pinning #285, rc.4 player fixes #286, renderer fixes #287, new defaults and speed-ups #288.
Commits, in order:
9e566b8cfix(agents): a mistyped date in a claim does not stop the test request replay (Hookshot 2949, by jarynclouatre)cc5adb88docs: tested configurations: RX 7900 XTX, RADV Mesa 26.2.6, Ubuntu 24.04 GNOME X11 (v2.1.0) (Hookshot 2616, by jabbaxipil)415f8a5cdocs(tested): record paired Linux RTX 4090 rolling results (Hookshot 2778, by Mooki)3dbeb31ddocs: add tested-configurations rows for DLSS Frame Generation on an RTX 4090 (Windows) (Hookshot 2771, by Jiro131)fad3f216docs(tested): RTX 5080 on Windows, Hookshot PR 2306's native float add against the loop (Hookshot 2844, by nullifyshot)4719600adocs: add the tested-configurations row for Hookshot PR 2748's game run (Hookshot 2757, by Jiro131)84d4afd7docs: add tested-configurations rows for the recorder thread on an RTX 4090 (Windows) (Hookshot 2912, by Jiro131)92ebb364docs(tested): RX 7700 XT on CachyOS, v2.2.0-rc.1 in Kokiri Forest (Hookshot 3014, by Mark Roberts)785f565cdocs: tested configurations: RX 5500 XT 8 GB (RDNA1, no mesh shaders), Windows 11, v2.2.0-rc.1-6 (Hookshot 3028, by Wagner Junior)b16b31e8docs: tested configurations: RX 5600 XT 6 GB (RDNA1, no mesh shaders), Windows 11, mainde866017(Hookshot 2715, by Waryxxful)eea4379fdocs: add RTX 5050 Laptop 8 GB runs with and without RX_VK_COMPACT=1 on v2.1.0 (Hookshot 2889, by VineeSouzaa)482379b2docs(tested): RTX 5090 on Windows, Kokiri Forest: main against v2.1.0,49f75dc8and the last main before Hookshot PR 2602 (Hookshot 2840, by Dukenheimer)440009b3test(vk): execute startup pool placement and fallback checks (Hookshot 2877, by Mooki)a71a26effeat(tests): run_all.py --changed runs the checks that read what changed (Hookshot 2887, by Jordan Ella)0155452dfix: readme's work/ffx-sdk, and the build log names an FSR 4 tick without AMD's license (Hookshot 2553, by RoblesLeo)417c5dd9build(release): the RTX 5090 fork list's note says what its build changed (a follow-up to Hookshot PR 2143) (Hookshot 2703, by Dukenheimer)9ee58f7afeat(scripts): hookshot_bench.py, a repeatable benchmark route through the control bridge (Hookshot 2714, by Waryxxful)9817a531ci: execute authored Vulkan fixtures on lavapipe (Hookshot 2866, by Mooki)065cb1aetest: one source cutter for the checks (tests/srccut.py), 80 checks moved to it (Hookshot 2914, by Jordan Ella)63584e06docs: the restored Hookshot references as full URLs (mine)Flags and settings
run_all.py --changedRX_VK_IMAGE_PREALLOC=<blocks>RX_VK_TEST_ALLOWED_MB=<MiB>Measurements
No game change: the measurement is the game-free checks, main and this PR on the same PC.
main:
d9648863(2026-11-13)this PR: restore/tools-checks-docs @ 28c64f55 (the runs; now
63584e06, after the docs-only rebase onto main's514591a3)Hardware: RTX 4070 Ti (driver 595.99.02), Ryzen 7 9800X3D, Ubuntu 26.04.1
Scene: none (game-free checks)
Method:
python3 -I -B tests/run_all.py --jobs 6, once on eachHow to reproduce: the same command on each commit, with
LONGSHOT_VULKAN_HEADERSandLONGSHOT_SPIRV_HEADERSsetd9648863run_all.py: passed / failed / skippedThe numbers still hold on
514591a3: main's #274 changed a Discord link in 11 docs files and nothing these checks or builds compile; the checks that read those docs were run again on this head.Testing
Tested:
python3 -I -B tests/run_all.py --jobs 6on Linux (Ubuntu 26.04.1, Python 3.14, Vulkan and SPIR-V headers found): this PR @28c64f55: 517 passed, 2 failed, 18 skipped (test_lift_cache.py, test_menu_i18n.py); main @d9648863on the same PC: 513 passed, 2 failed, 18 skipped (test_lift_cache.py, test_menu_i18n.py).test_lift_cachefails on main the same way (the lift's scripts do not import here), andtest_menu_i18nfails on that main too. Main then gained514591a3(#274, a Discord link in 11 docs files only); after the rebase onto it, the checks that read those docs passed again at63584e06.Not tested: the lavapipe job has not run on Longshot's Forgejo runners: it starts by hand, so a maintainer's
hand-started CI run is its first (expecting the Vulkan fixtures job to find one lavapipe ICD and pass).
hookshot_bench.pyneeds a running game, and I did not run it.Needs other testers: None
Screenshots
Nothing on screen
Risk and rollback
None in the game. A check that
srccut.pynow cuts could fail where its marker is missing or repeated, which is thepoint; each commit reverts on its own.
Reviewer notes
Please merge with rebase, not squash, so that each author keeps their commit.
Issues
See #209
Checklist
For everyone
type(scope): description).main.python -I -B tests/run_all.pyrun and passing (any failure that also fails onmainis named above).third_party/untouched (a new folder with aPROVENANCE.mdinstead).If applicable
Assisted-by:/Co-Authored-By:trailers.docs/tested-configurations.mdfor each measured run. (The 11 restored rows, from their authors' runs.)tests/that reads changed source updated in this PR, not weakened.de866017b16b31e89649f75dc8and the last main before Hookshot PR 2602 482379b228123 checks carry their own copy of a brace counter (`def block`) to cut a function out of a source file. The copies count braces inside strings, character literals and comments too, and when a function is renamed or reshaped they stop with a bare `ValueError` or `IndexError` that doesn't say which source or marker: the trap AGENTS.md warns about ("Tests read the source"). This gives the checks one cutter and moves 80 of them to it, each shown to cut exactly what it cut before. The dev-loop proposal's D2 (https://github.com/NotRexed/Hookshot/pull/2636). ## Change - **`tests/srccut.py` (new, standard library):** - `block(text, marker)`: from the marker to the brace that closes the first `{` after it, counting braces outside string and character literals (raw strings too, and C++14 digit separators), comments and preprocessor lines; - `between(text, start, end)`; - a marker that is missing, or that appears twice, stops the check with one message naming the source and the marker (`unique=False` takes the first on purpose); - `SRCCUT_CHECK_NAIVE=1` also cuts each block the old way and stops if the two differ: what a migration runs to show it changed nothing. - **80 checks import it** in place of their copy, one commit per source file they read (`vk_menu.cpp`, `vk_draw.cpp`, `vk_memory.cpp`, `vk_texture.cpp`, `hookshot_env.h`, `hos_main.c`, ...). Only exact copies of the plain counter moved. - **Not moved:** - three checks whose `block` isn't the plain counter (a start offset; positions returned): restored as they were; - 13 checks whose marker appears more than once in the source (a declaration before the definition, for example). The old counter took the first one silently, so each needs a look rather than `unique=False`; - 51 checks with other cutters (`function`, `body`, `between`, ...): later, by source file. ## Testing - **Every moved check, against today's `main`:** each run as `main` has it and as moved with `SRCCUT_CHECK_NAIVE=1`, with its declared tools (the Builder's clang, the Vulkan headers): **80 of 80 pass both ways**, no cut differs. - **`tests/test_srccut.py` (new):** braces in strings, character literals, raw strings, comments and preprocessor lines; a fixture the old counter cut wrongly; a missing marker and a repeated one name the source; `between`; an unclosed block; the comparison with the old counter. - A follow-up after https://github.com/NotRexed/Hookshot/pull/2887: `run_all.py --changed` runs a test helper's importers (srccut's) rather than every check. See https://github.com/NotRexed/Hookshot/issues/2636 (D2). 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]> Co-authored-by: NotRexed <[email protected]> Ported to Longshot: test_builder_update_back.py and test_linux_update_skip.py are left out (Longshot removed them with the Builder window, #181). Restored-from: https://github.com/NotRexed/Hookshot/pull/2914View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.