docs(tested): RX_VK_WB_MAX_KB=1024 and RX_VK_RECORDER_OWN=1 measured on an RX 9070 XT with a Ryzen 9 7900X #753
No reviewers
Labels
No labels
area/accessibility
area/audio
area/input
area/install
area/menu
area/renderer
area/saves
area/tooling
area/upscaling
beanstalk: approved @ 1697603
beanstalk: approved @ 2c5a62e
beanstalk: approved @ 4fd82b7
beanstalk: approved @ 64d6d09
beanstalk: approved @ 6f91fae
beanstalk: approved @ 70a78f9
beanstalk: approved @ 8015c9a
beanstalk: approved @ 8d361dc
beanstalk: approved @ 9d8356e
beanstalk: approved @ abf2227
beanstalk: approved @ d82f202
beanstalk: approved @ e5f1e40
beanstalk: approved @ ee8ab5f
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
status
blocked
status
confirmed
status
duplicate
status
invalid
status
needs-info
status
wontfix
testing wanted
ci: approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Longshot!753
Loading…
Reference in a new issue
No description provided.
Delete branch "Yeetbot90/Longshot:docs/tested-wb-own-rx9070xt"
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: docs · Risk: low · Tested on: Windows 11, RX 9070 XT · Needs: none
Why
RX_VK_WB_MAX_KBandRX_VK_RECORDER_OWNare both off by default until they show a gain on more machines, and results from other hardware are asked for. This adds one machine with a fast GPU and a 12-core CPU: on an RX 9070 XT with a Ryzen 9 7900X in Kokiri Forest, neither switch changes the frame rate, because the scene is CPU-bound there (GPU 7.6 ms of an 11.9 ms frame). Each still does what it says:RX_VK_WB_MAX_KB=1024writes back 16 MB a frame instead of 68 (GPU time 0.3 ms lower), andRX_VK_RECORDER_OWN=1removes about 40% of the replay's waits for the recorder thread.What changed
Two run files under
docs/tested/, one per switch, each with every run of both arms. No code, and no README change (#547 is rewriting theRX_VK_WB_MAX_KBparagraph).docs/tested/2026-11-15-wb-max-yeetbot90-run01.mddocs/tested/2026-11-15-recorder-own-yeetbot90-run01.mdMeasurements
Verdict: no fps or CPU difference beyond the run-to-run spread for either switch on this machine. The write-back switch takes 0.3 ms off the GPU's frame and 52 MB a frame off the write-back; the recorder switch takes about 43 ms in 10 s off the replay's waits for the recorder.
Hardware: Windows 11 (26200), RX 9070 XT 16 GB, AMD 26.10.1 (LLPC, Vulkan driver 0x8001a0), Ryzen 9 7900X (12 cores, 24 threads), 32 GB
Build: longshot nightly-182-5274fb72 (source d09e5b6e), its renderer built from source at
5274fb72with the shipped profile; same DLL for every run, the switches set by environmentScene: Kokiri Forest outside Link's house (an early save). Headless (
HOS_HEADLESS=1: offscreen presents 1920x1080, output 2560x1440), Auto settings, frame rate unlocked (HOS_FPS_MAX=1000), Threaded rendering Auto (the recorder thread is on: 24 threads)Method: scripted input loads the save (A presses at 20-36 s), walks 2.5 s, then turns the camera for 40 s. Measured over a fixed 30 s window 62-92 s after the start: fps and frame times from
RX_VK_FRAME_LOG, CPU from the process's CPU time over the window; GPU time, written-back MB and the recorder's waits from the log's last lines of the run (median). Arms alternated in each round, order rotated between rounds.How to reproduce: the switches in
longshot_env.txt, load a save in Kokiri Forest, turn the camera with the frame rate unlocked, and read the log'svk: a frame: mirrors,vk: GPU timeandvk: recorder:lines.Baseline: the same renderer (main @
5274fb72) with the switch unset, measured in the same series as the switch. Main against this PR was not the comparison because both are opt-in switches of code already on main; the PR adds no code.Medians (the write-back series: 3 runs an arm; the recorder series: pairs 2-4, 3 runs an arm):
5274fb725274fb725274fb725274fb72Every run,
RX_VK_WB_MAX_KB=1024, 3 alternating pairs:Every run,
RX_VK_RECORDER_OWN=1, 4 alternating pairs; pair 1 is left out of the medians because both of its runs were disturbed (1% low 29.5 and 31.0 fps against about 50 in every other run), and is shown:Also tried, not proposed: the recorder spends about 3 s in 10 s spinning idle against 1.1 s of work, so I tried letting it spin only while a thread holds
replay_muand sleep at once between replays (the unlock already waits for it to finish). Spin idle fell only from 2.87 to 2.6 s, while its sleeps tripled (most under 200 µs) and the replay's waits for it rose from about 105 to 137 ms in 10 s. Replays come almost back to back here, so nearly all the spin is inside them. One pair only, then dropped; noted so nobody repeats it.Flags and settings
None changed. Results for two existing opt-in switches:
RX_VK_WB_MAX_KB=1024RX_VK_RECORDER_OWN=1Testing
Tested: 14 game runs as above, headless with scripted input on this PC.
python -I -B tests/test_tested_configurations.py: the two new files validate; its one failure (test_cli_ascii_pipe_emits_the_arrow_containing_source_as_utf8, CRLF against LF) fails the same way with the two files taken out, on this Windows checkout.python -I -B tests/run_all.py: 530 passed, 21 failed, 42 skipped. The failures are this PC's (Windows, llvm-mingw, no Linux tools); none readsdocs/tested/excepttest_tested_configurations.pyabove, so none depends on this PR.Not tested: with a window (all runs headless); other areas; with the frame rate capped; Linux.
Must be tested: None (docs only).
Risks
What could break: nothing; two documentation files.
Turning it off: revert the commit.
Compatibility: Nothing changes.
Checklist
Everyone
type(scope): description) of the status line's type.main.python -I -B tests/run_all.pypasses (any failure that also fails onmainis named): 21 failures of this Windows PC, none touching these files (Testing).third_party/untouched (a new folder with aPROVENANCE.mdinstead).When it applies
Assisted-by:/Co-Authored-By:trailers.docs/tested/for each new measured run (format indocs/tested-configurations.md).View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.