test(vk): execute startup pool placement and fallback checks #50
No reviewers
Labels
No labels
accessibility
autorelease: pending
autorelease: tagged
bug
dependencies
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
invalid
needs measurements
question
testing wanted
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Longshot!50
Loading…
Reference in a new issue
No description provided.
Delete branch "mooki/Longshot:test/vk-start-blocks-constructors"
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
The startup-pool regression check inspected constructor wiring as text but did not execute allocation refusal. This test-only follow-up executes the production constructors, so misplaced initial blocks or a broken empty-pool retry cannot pass unnoticed. It changes no renderer behavior.
What changed
--sourceto test a named historical production tree with the same new fixture.Flags and settings
No runtime default changes. The new control is test-only; the existing renderer switches below are documented or exercised by the new cases, not newly enabled.
--source--cxxg++; the suite supplies its default compilerRX_VK_IMAGE_PREALLOCRX_VK_COMPACTRX_VK_TEST_ALLOWED_MBMeasurements
Branch state: on main
5eaaf7fb9c548782a3dfabcf89ad37363ee76b1e; head6b9748a4a890f9b6a87d572c85e554c2c3a42e65; whole game-free suite on this head:510 passed, 0 failed, 19 skipped(main5eaaf7fb9c548782a3dfabcf89ad37363ee76b1e:510 passed, 0 failed, 19 skipped); the commits are unchanged by rebases apart from the results table. The updater test that failed locally on older mains left main together with the in-game updater.main:
d4a69456c9(2026-11-12)Baseline: main @
d4a69456this PR: test/vk-start-blocks-constructors @
8179355aaeOriginal handover record: this branch @
1652ef660014b40c475643723b83bc65e7d11b59; executable test content tested at8179355aaeff65e2163279b42466f88fdd352d50, followed only by the evidence-documentation commit.The later main changes add PR-description tooling and a separate DLSS model-settle fix, neither of which changes the pool constructors or this fixture. The measured commits and original observations therefore stay as named; the table conflict preserves both sides' rows, and no game evidence is relabelled.
Hardware: Core i9-13900K, 94 GiB RAM, Arch Linux kernel 7.2.15-1-omarchy; Clang 23.1.3, Python 3.12.16. No GPU used by these checks.
Scene: game-free constructor/policy fixtures and the whole source suite; no save, window or game.
Method: one unmeasured fixture warm-up, then before/after/before/after with fresh HOME directories on the same PC. Report medians of executed-case counts, not speed. Separately run historical-parent/current-source/historical-parent/current-source with the new test's
--sourceoption. The whole suite uses--jobs 6 --strictand the repository's default compiler. The base suite was run once for all moved pull requests of this day, on this commit; the branch suite was run once. Those suite receipts are not a two-pair performance comparison.How to reproduce: run
python -I -B tests/test_blocks_at_start.py --cxx clang++on the named main and branch trees, alternating twice after a warm-up. Run the same new driver with--sourceselectingb157c3e8and then the pinned main tree, twice each, to repeat the historical control. The whole suite usespython -I -B tests/run_all.py --jobs 6 --strict.d4a694568179355aActual focused output (identical in both repetitions):
Why the negative control is older than Longshot: main already contains the fix from Hookshot pull request 2711, commit
1c0cd9803d5951889535edbfadfb2be89d56e432. Its actual parent,b157c3e817666cf8848a85fa993311495a64f885, exists in Longshot's ancestry but predates the rename. The new fixture was run today with--sourceselecting that parent's production tree; it was not a game build, a current-main failure, or a synthetic source mutation. It compiles and then fails four behavior assertions. The same new fixture passes against current main's source.Baseline: Hookshot parent @
b157c3e8for the historical control below; main already contains the fix, so that comparison must use its historical parent.b157c3e8d4a69456Actual parent output (both runs):
Whole-suite output:
Both suites fail
tests/test_updater_asset_digest.pybecause this PC lacks the local .NET reference pack. Exact diagnostic, with its temporary path omitted:The shared main run also failed two timing-dependent assertions in
tests/test_appimage_package_retry.pyduring heavy load: the enrollment retry sequence and124 != 0. Its separately recorded isolated follow-up passed all nine cases; the full-suite failure is retained, not erased. This branch's whole suite passes that file. The 20 skips are declared platform/game/GPU exclusions, not missing dependencies hidden by non-strict mode. These elapsed times are receipts under shared load, not a speed claim.Both Windows-target C++ translation units compile with warnings as errors; they were not run on Windows for this move. The fixture substitutes
getenvwithtest_getenvbefore every extracted constructor, so no C runtimegetenvis called; no warning flags or assertions were relaxed. Historical Hookshot fork run 43268735876, on185a460bon 2026-11-12, executed this test on Ubuntu and Windows; that is earlier evidence, not a new Longshot Windows run.Testing
Tested: the paired constructor and historical-parent checks on Arch Linux with Clang, the whole game-free suite on the exact head in Branch state, and both Windows-target translation units. The byte-identical test driver also executed successfully in the original GitHub head's Ubuntu and Windows checks. The historical picture was inspected; no performance measurement is inferred from it.
Not tested: No new Longshot game build/run: this PR changes only tests and documentation. No fresh Windows execution of either C++ translation unit; local cross-compilation is syntax only. No AMD, Steam Deck, physical 8-GB-card behavior, OS paging, long-session or frame-time claim. The historical ordinary Market runs were not repeated after the rename.
Needs other testers:
None for this unchanged test/docs-only scope: the driver is byte-identical to the GitHub head that passed both Windows and Ubuntu source checks, and it adds no hardware-dependent runtime behavior.
Screenshots
Nothing on screen changes in this PR. This inspected historical picture is context for the retained Hookshot results, not proof of a new Longshot game run or continuous flicker behavior.
Risk and rollback
The source-slicing fixture can fail when production constructors are reshaped, and an inaccurate test stand-in could miss a future allocation-policy regression. It does not ship in the game; reverting this test/documentation change rolls it back without changing saves, renderer behavior or defaults.
Reviewer notes
Start with
compile_pools()andPOOL_FIXTUREintests/test_blocks_at_start.py: the production constructors are executed, every original assertion remains, and the historical negative control fails behavior assertions after compilation. Windows-target compilation is not fresh Windows execution evidence.Issues
Original report: https://github.com/NotRexed/Hookshot/issues/2690. Original merged fix: https://github.com/NotRexed/Hookshot/issues/2711. This moves the test follow-up https://github.com/NotRexed/Hookshot/issues/2877. No corresponding issue was present in the forge's public all-issues listing checked on 2026-11-12; no old number is used as a forge closing reference.
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.tests/that reads changed source updated in this PR, not weakened.Moved from NotRexed/Hookshot#2877.
Assisted-by: GPT-6 Astra
Co-Authored-By: GPT-6 Astra [email protected]
Discussion carried over from NotRexed/Hookshot#2877
Every comment that was readable on the original thread when it was copied on 2026-11-12, in order, unchanged except that issue and pull request numbers are written as links to the old repository and names carry no @. Comments by an account that has since been closed there could no longer be read and are missing; where a reply quotes them, the quote remains.
mooki000, 2026-11-12 18:42 UTC (comment, original):
Rebased onto main
3c2d80cf(77691c2a): the only conflict was the shared results table, where both sides' rows are kept; the test commit is unchanged (range-diff shows only moved context in the docs), andtests/test_blocks_at_start.pypasses again locally.test(vk): execute startup pool placement and fallback checksto WIP: test(vk): execute startup pool placement and fallback checksBack to work in progress, for its description only. This was opened shortly before #48 merged and follows the earlier template, so it does not pass the new description check (no Flags and settings and no Risk and rollback section, table columns named Before and After). The code and the measurements are unchanged: the whole suite passes on this exact commit apart from one local .NET failure that also fails on main. The description is being moved to the new template and the branch rebased onto
d725b363; it comes back throughpr readyonce the check passes.Updated the description to the current template, including settings, Testing and rollback, and kept the uploaded picture and the historical measurement record. Rebased onto main
f41db065ckeeping both sides' rows of the results table; the test code is unchanged. Whole suite on the new head5921a0d2a: 509 passed, 0 failed, 19 skipped. Ready for review.WIP: test(vk): execute startup pool placement and fallback checksto test(vk): execute startup pool placement and fallback checks1652ef6600to5921a0d2a5Rebased onto main
5eaaf7fb9after its pull request 77 added a switch row next to this one's rows in docs/development.md: both kept, this pull request's changes are otherwise identical. Whole suite on the new head6b9748a4a: 510 passed, 0 failed, 19 skipped. The description follows the newest template (only the boxes that apply, the flags table's new columns).5921a0d2a56b9748a4a8View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.