Name the four checks this branch added in docs/building.md's "Checks".

The review found that astc_trim_check, evo_peek_check, heap_lazy_copy_check and gen_wrap_check were in neither the
pass's test matrix nor the docs, so a later change to the code they cover would not know to run them. Each now has a
sentence in the "A change to X passes python tests\Y.py" form: vk_astc.c's scratch trim with vk_defer_buffer_try,
vk_evo_peek.h with vk_exec.c vk_exec_held_ready, memory.c mem_copy_readable with the lazy heap, and vk_memory.c's page
write generations.

Docs only. Checks that passed: check_content --staged; the four checks pass with system Python.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
chrg6
2026-11-13 17:47:20 -05:00
parent c4140a3f01
commit 301445b314

View File

@@ -703,6 +703,26 @@ A change to which entry of the upscaler stand-in's scratch images serves a new s
and checks that a match is a hit, a ninth size takes a free entry or the one used longest ago instead of being
refused, and two images of one frame never evict each other. No GPU, no game files.
A change to the ASTC decoder's scratch trim (`runtime/vk_astc.c` `vk_astc_scratch_trim`, with the upload lock it only
tries, `runtime/vk_memory.c` `vk_defer_buffer_try`) passes `python tests\astc_trim_check.py`, which builds `vk_astc.c`
with the platform layer's recursive lock and the rest of the runtime stubbed: the trim gives way while another thread
holds the upload lock, goes through once it is free, and never deadlocks with an upload that asks for the scratch
meanwhile. No GPU, no game files.
A change to the copy of each event-ordered queue's first held wait (`runtime/vk_evo_peek.h`, `runtime/vk_exec.c`
`vk_exec_held_ready`) passes `python tests\evo_peek_check.py`, which builds the header alone: one writer republishes
while three readers copy, no copy mixes two publishes, and no reader waits for the writer. No GPU, no game files.
A change to how `runtime/memory.c` `mem_copy_readable` reads the lazy heap (`NX2NAVI_HEAP_LAZY=1`) passes
`python tests\heap_lazy_copy_check.py`, which builds `memory.c` with the Windows platform layer and its fault handler:
every copy returns, a heap page nothing touched yet reads zero and stays reserved, and pages past the heap's end are
left out. Windows only, no game files.
A change to the page write generations (`runtime/vk_memory.c`, from its "page write generations" banner to its "dirty
census" banner: `gen_next`, `gen_mark`) passes `python tests\gen_wrap_check.py`, which builds that part of the file
alone: the lines logged as the 32-bit generations near their wrap, and the four comparisons known to answer wrong across
it. No GPU, no game files.
A change to which frames FSR 3.1 frame generation is told are camera cuts (`runtime/vk_fg_reset.h`, `runtime/vk_fg.cpp`
`generate` and `vk_fg_frame`) passes `python tests\fg_reset_check.py`, which builds the header alone and checks that each
frame id gets its own frame's cut, that an id never noted or no longer held counts as a cut, and that a slot rewritten