fix(vk): capture switches follow the on/off rule #2651
No reviewers
Labels
No labels
accessibility
autorelease: pending
autorelease: tagged
bug
dependencies
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
invalid
question
testing wanted
wontfix
No milestone
No assignees
1 participant
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Hookshot!2651
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/capture-switch-values"
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?
What this is for: make the two capture-buffer switches follow the documented on/off rule, and restore the existing switch check (current main CI). What is measured: the affected game-free check before and after, with GCC 16.2.1 and Clang 23.1.3 selected, plus one strict full-suite run, as recorded below. Not measured: a game run or Windows execution.
Cause
#2437 added two presence-only reads of
RX_VK_CAPTURE_KEEP_OLDand one ofRX_VK_CAP_BLOCKSingpu/vk/vk_memory.cpp; setting them to0therefore enabled the alternatives, contrary tohookshot_env.hand the existingtest_env_on.pyrule.The relevant failure in main's CI log is:
What changed
Use the existing
env_onhelper at those three sites and document the switches indocs/development.md; defaults, enabled behavior, allocation policy and the test remain unchanged.How it was tested
Recorded on 2026-11-11, Linux kernel
7.2.15-1-omarchy, basede866017, head8d7f7d47(version and test records).a016b7a6: the affected check fails independently in both compiler environments with the diagnostic above; the branch passes independently in both (python -I -B tests/run_all.py --strict --jobs 1 tests/test_env_on.pyrecords).0,false,offandno(standalone records).python -I -B tests/run_all.py --strict:456 passed, 14 failed, 20 skipped in 139 s (linux, 32 at once), load 17.65 → 26.92 (complete suite output).test_wayland_libdecor_hint.py,test_display_startup_failure.py,test_texel_buffer_ownership.py,test_audio_aux.py,test_audio_biquad.py,test_dlss_checks.py,test_framegen_preset.py,test_hdr_encode.py,test_linux_docker_packages.py,test_menu_i18n.py,test_mods_size_table.py,test_mouse_native.py,test_readback_part.py,test_rumble_menu.py(complete suite output). The companion fixture, PPA-parser, camera-handover and hint-catalog branches address their separate causes; #2614 owns the HDR check and is not duplicated here.Not tested / risks
The deliberate behavior change is for values that explicitly mean off; no Vulkan allocation or game run was performed, so allocation timing and hardware behavior are not measured.
Overlaps
The inspected same-file code changes merge cleanly; #2338 and #2618 add different documentation rows at the same insertion point, so those rows and this one must be retained together (recorded overlap hunks).
Assisted-by: GPT-6 Astra
Co-Authored-By: GPT-6 Astra [email protected]
Looks good. I checked all three reads against
hookshot_env.h:RX_VK_CAPTURE_KEEP_OLD(both reads,cap_buf_freeandcap_buf_size) andRX_VK_CAP_BLOCKS(cap_spare_make) now go throughenv_on.env_onisgetenvnon-null and notenv_value_off, so unset, empty,0,false,offandno(any case, spaces ignored) are off, and anything else is on.!env_on("RX_VK_CAP_BLOCKS")is still true when unset, so dedicated memory stays the default. Only values that explicitly mean off change, which is the point of the fix.RX_VK_CAP_BLOCKSat the other call site (thecreate_buffer_cachedcall further down) already usedenv_on, so the two sites now agree.hookshot_env.his already included invk_memory.cpp, so nothing new to include. Thestatic const boolreads are once-only, as before.test_env_onflagged on main, so it should pass again; I didn't run it. The docs row matches the code.CI: the Python source checks were still pending when I looked. The failures you list from the full run are the known main ones (
test_menu_i18n,test_hdr_encode,test_linux_docker_packages,test_mouse_native, with the others covered by sibling PRs), not from this change.github-sync referenced this pull request2026-11-12 06:22:54 +00:00