WIP: perf(build): optimize shared A64 helpers independently of cold chunks #756
No reviewers
Labels
No labels
area/accessibility
area/audio
area/input
area/install
area/menu
area/renderer
area/saves
area/tooling
area/upscaling
ci: approved
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/macos
platform/steam-deck
platform/windows
preview
priority
critical
priority
high
priority
low
regression
risk
high
risk
low
risk
medium
status
blocked
status
confirmed
status
duplicate
status
invalid
status
needs-info
status
wontfix
testing wanted
ci: approved
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Longshot!756
Loading…
Reference in a new issue
No description provided.
Delete branch "siantm/Longshot:perf/shared-a64-helpers-o2"
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?
Type: perf · Risk: medium · Tested on: Windows 11 Pro 26300, game-free planning only · Needs: current-main build/gameplay A/B and full suite
Why
Shared instruction helpers can receive stronger optimization without imposing that compile cost on giant cold game chunks. This proposal changes only the two shared helpers, not hot-list coverage, runtime PGO, register localization or renderer settings.
What changed
nx2/build.pyselects O2 fora64_rt.canda64_suyu.c, preserving every other semantic flag. Cold chunks remain O1;RX_A64_RT_O2=0restores the prior helper level.nx2/make_game.py: classify the existing rollback knob as compile-only, so it does not invalidate translation.Measurements
Verdict: compiler-job and cache isolation are proven game-free; actual performance benefit against current main is not measured. Keep WIP.
Hardware: Windows 11 Pro 26300, Intel Core i7-9700, 31.8 GiB usable RAM, Python 3.14.7; no GPU used.
Method: identical authored planning fixture against main and this staged branch. No compiler/game is launched by that fixture.
9e6f231da9269637ecObserved: patched planner
Ran 3 tests ... OK; build hash cache 9 tests, build times 19 tests, and kept translation 7 tests pass; lift-cache driver passes. Existing upstream file reads emit resource warnings. Older integrated-local FPS observations are not measurements of this branch and are not used to claim a current-main speedup.Flags and settings
RX_A64_RT_O2: previous helpers O1; this proposal defaults to O2,0restores O1. Recommendation is provisional until isolated A/B validates the proposed default; do not mark ready without that evidence. No runtime quality/preferences change.Testing
Tested: real build.main/plan_jobs/object-key consumer, rollback/flag isolation, lift-cache/hash-cache/build-times/kept-translation checks; catalogue renderer accepts the new record.
Not tested: full build, executable size, current-main FPS/frame times, Linux, or full suite. An existing game was running; it was not stopped or modified for benchmarking. Catalogue unit driver has a Windows CRLF-vs-LF fixture failure.
Must be tested: author or Test Farm builds main and this isolated branch, then performs at least two interleaved same-scene pairs with identical save/settings, reporting median FPS, 1% low, median/p99 frame time, executable size and compile timing. Complete game-free suite on Windows/Linux before readiness.
Risks
What could break: optimizer-sensitive helper behavior, larger code, compile cost, or no real performance gain.
Turning it off:
RX_A64_RT_O2=0.Compatibility: only helper compile keys should change. No intended save/settings/shader-cache-format, renderer ABI or required-tool changes.
Checklist
Everyone
perf(build): optimize shared A64 helpers independently of cold chunks.9e6f231d.When it applies
Assisted-by: OpenAI Codex.a9269637ec16ea5060ccView command line instructions
Checkout
From your project repository, check out a new branch and test the changes.