test(vk): execute startup pool placement and fallback checks #2877

Open
github-sync wants to merge 2 commits from github/pr/2877 into main
Owner

@mooki000 opened this pull request on GitHub · 2026-11-12 18:13 UTC · original

What this is for: execute the real pool constructors behind hckrman101's merged #2711, rather than checking their wiring only as source text. What is measured: GCC/Clang behavior checks, Windows-target compilation, and execution of the test on Ubuntu and Windows in the fork. Not measured: new gameplay, AMD or physical 8-GB-card behavior; no renderer behavior changes here.

Refs #2711

New coverage

A refused first allocation must retry with zero initial blocks, report zero kept bytes, and return null if the retry fails. The fixture compiles the production constructors against a refusing allocator and also checks default placement, compaction off, explicit/zero counts and cached reuse. Every original numeric/wiring assertion stays; --source enables the negative comparison. The merged test checked the fallback assignments as strings but did not execute the refusal.

Checks

Arch Linux 7.2.15-1-omarchy, GCC 16.2.1 and Clang 23.1.3. Rebased head 8bf7817f1 on main 4cf785a0b; the test commit is identical to the fork-tested version (605cf9ec7 = 4788c8a77 in the range-diff). Only independent documentation rows conflicted; both sets are retained, with our rows together.

Production source GCC Clang
Merged fix 1c0cd9803 Six constructor cases and original checks pass Same
Its parent b157c3e8 Four constructor cases fail; compaction-off and preallocation-off pass Same
Rebased head 8bf7817f1 Six constructor cases and original checks pass again Same

The negative checks compile and fail behavior assertions, not missing-string checks.
Fork run 43268735876 on 185a460b: tests/test_blocks_at_start.py passes on Ubuntu (0.8 s) and Windows (13.8 s).
The run's other failures were test_readme_menu_rows.py and, on Windows, test_wb_shadow_remake.py (main failures tracked by #2857 and #2868), plus test_release_scripts.py (the nightly race fixed since by #2822). The whole workflow was not green; none of those failures is this test.
Local Windows-target compilation passed both C++ units with -std=c++20 -Wall -Wextra -Werror. Earlier full suite: 476 passed, 0 failed, 20 skipped; not repeated for this documentation-only rebase. The plain PR gate passes.

Historical rows, not new timing evidence

Four pre-merge Market runs retain their exact commits (51da0464, fix 234f72a3, combined 3972579c) in the tested-configurations table: Arch/RTX 4090, NVIDIA 615.78.08, 2560×1440, default DLSS model K at DLAA/100%, ordinary shared-card runs. They are not relabelled as this head's gameplay evidence.
Under the 7000-MiB/9-block model, utility blocks fell from nine to one for the same 102 MiB of images; final budget snapshots were 835 versus 1771 MiB. No fatal/device/driver fault; no speed or real-card paging claim. No new game run was made for this test follow-up.

Assisted-by: GPT-6 Astra
Co-Authored-By: GPT-6 Astra [email protected]

> [@mooki000](https://github.com/mooki000) opened this pull request on GitHub · 2026-11-12 18:13 UTC · [original](https://github.com/NotRexed/Hookshot/pull/2877) **What this is for:** execute the real pool constructors behind [hckrman101's merged #2711](https://git.magicbean.dev/MagicBeanDev/Hookshot/pulls/2711), rather than checking their wiring only as source text. **What is measured:** GCC/Clang behavior checks, Windows-target compilation, and execution of the test on Ubuntu and Windows in the fork. **Not measured:** new gameplay, AMD or physical 8-GB-card behavior; no renderer behavior changes here. Refs #2711 ## New coverage A refused first allocation must retry with zero initial blocks, report zero kept bytes, and return null if the retry fails. The fixture compiles the production constructors against a refusing allocator and also checks default placement, compaction off, explicit/zero counts and cached reuse. Every original numeric/wiring assertion stays; `--source` enables the negative comparison. The merged test checked the fallback assignments as strings but did not execute the refusal. ## Checks Arch Linux 7.2.15-1-omarchy, GCC 16.2.1 and Clang 23.1.3. Rebased head `8bf7817f1` on main `4cf785a0b`; the test commit is identical to the fork-tested version (`605cf9ec7 = 4788c8a77` in the range-diff). Only independent documentation rows conflicted; both sets are retained, with our rows together. | Production source | GCC | Clang | |---|---|---| | Merged fix `1c0cd9803` | Six constructor cases and original checks pass | Same | | Its parent `b157c3e8` | Four constructor cases fail; compaction-off and preallocation-off pass | Same | | Rebased head `8bf7817f1` | Six constructor cases and original checks pass again | Same | The negative checks compile and fail behavior assertions, not missing-string checks. [Fork run 43268735876](https://github.com/mooki000/Hookshot/actions/runs/43268735876) on `185a460b`: `tests/test_blocks_at_start.py` passes on Ubuntu (0.8 s) and Windows (13.8 s). The run's other failures were `test_readme_menu_rows.py` and, on Windows, `test_wb_shadow_remake.py` (main failures tracked by #2857 and #2868), plus `test_release_scripts.py` (the nightly race fixed since by #2822). The whole workflow was not green; none of those failures is this test. Local Windows-target compilation passed both C++ units with `-std=c++20 -Wall -Wextra -Werror`. Earlier full suite: **476 passed, 0 failed, 20 skipped**; not repeated for this documentation-only rebase. The plain PR gate passes. ## Historical rows, not new timing evidence Four pre-merge Market runs retain their exact commits (`51da0464`, fix `234f72a3`, combined `3972579c`) in the tested-configurations table: Arch/RTX 4090, NVIDIA 615.78.08, 2560×1440, default DLSS model K at DLAA/100%, ordinary shared-card runs. They are not relabelled as this head's gameplay evidence. Under the 7000-MiB/9-block model, utility blocks fell from nine to one for the same 102 MiB of images; final budget snapshots were 835 versus 1771 MiB. No fatal/device/driver fault; no speed or real-card paging claim. No new game run was made for this test follow-up. Assisted-by: GPT-6 Astra Co-Authored-By: GPT-6 Astra <[email protected]> <!-- github-sync:item:2877 -->
Keep the numeric and wiring checks from hckrman101. Run the real pool constructors against a refusing allocator, covering compaction off, overrides, no preallocation, retry without blocks and total failure. Keep both translation units reachable before execution for Windows-target preflight. Document the kept-block policy and the limits of the small-card model.

Assisted-by: GPT-6 Astra
Co-Authored-By: GPT-6 Astra <[email protected]>
Record the four ordinary Market memory and picture checks at their actual DLAA K render size. Distinguish these shared-card runs from timing evidence and retain both model limits and the explicit mirror limit.

Assisted-by: GPT-6 Astra
Co-Authored-By: GPT-6 Astra <[email protected]>
Author
Owner

@mooki000 commented on GitHub · 2026-11-12 18:42 UTC · 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), and tests/test_blocks_at_start.py passes again locally.

> [@mooki000](https://github.com/mooki000) commented on GitHub · 2026-11-12 18:42 UTC · [original](https://github.com/NotRexed/Hookshot/pull/2877#issuecomment-6832667254) 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), and `tests/test_blocks_at_start.py` passes again locally. <!-- github-sync:c:6832667254 -->
Commenting is not possible because the repository is archived.
No description provided.