Repository navigation
Conversation
Complete the publication checklist and series cross-links for boykopovar#7466. No source or test changes.
|
Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.
|
|
This pull request is labeled |
|
Intel and AMD Windows data: with this PR the 56 tests built from Windows 11 Pro 26300, WinLibs GCC 15.2.0 r7, Release, every execution test built,
This is a correctness check only; I measured no speed. I also ran full CTest with this PR and the 13 other open AGC and shader PRs I tested in the same batch merged together (#7668, #7659, #7504, #7432, #7426, #7413, #7480, #7465, #7464, #7449, #7489, #7673, #7560). Neither GPU showed a failure beyond AI-assisted: yes (Claude Code) |
What
This PR is part of a series of graphics and memory-management performance improvements for AnyPS5, with SuperTuxKart as the main profiling workload. This is item 03/10; the UI Lab startup/cache fix follows as a separate eleventh PR. Each topic's measurements are distinguished from the combined result.
Validate an existing single-range host import through its registered owner after an unrelated registry mutation. Keep full reconciliation for replaced owners, aliases, joined imports and adjacent ranges that can extend an import run.
Tested
Pinned benchmark base:
6447ed1ed7fd11c7eef60df336e8d66fac271188. Tested topic snapshot:a32fe0a42ca02bd0a77ecf03827324e6e633e866. Windows 11 Pro build 26300, Ryzen 7 5800H, RTX 3070 Laptop, NVIDIA 617.42. Frozen runtime module hashes and raw traces were verified. No opt-in optimization flags are required.4/4 real Vulkan cases passed on main and this topic: import windows, unmap, retirement/readback and a second direct-memory mapping. Serial identity is checked immediately after unrelated registration, owner replacement and creation of an alias, before the next fill can repair a stale entry.
SuperTuxKart tutorial/menu, 1920x1080, warm caches, seconds 20-28:
Observed difference: -1.10% in one capture per configuration; this does not establish a repeatable isolated gain.
Trace summary lines
{"commit":"6447ed1ed7fd","dirty":false,"env":{"APS5_TRACE_SECONDS":"20:8"},"gpu":"NVIDIA GeForce RTX 3070 Laptop GPU","driver":"NVIDIA 617.42","os":"Windows 10.0.26300","resolution":"1920x1080","window":{"spec":"seconds 20:8","first_present":44,"ms":8097.757},"presents":77,"frame_ms":{"p50":104.114,"p90":110.231,"p99":113.153,"max":113.153},"gpu_busy_ms_per_present":5.352,"worker_busy_pct":{"queue worker 0x0":3.181},"top_phases_ms_per_frame":{"Driver.Packet":3.294,"Driver.Packet.draw":2.701,"Driver.Draw":2.646,"Driver.Draw.shader_compile_and_link":1.561,"Shader.DrawStage":0.838,"Driver.Present":0.824,"Driver.Present.queue_present":0.584,"Vulkan.QueuePresent":0.583},"trace_dropped":false,"trace":"aps5-trace-6447ed1ed7fd-20276.json.gz"} {"commit":"6447ed1ed7fd","dirty":true,"env":{"APS5_TRACE_SECONDS":"20:8"},"gpu":"NVIDIA GeForce RTX 3070 Laptop GPU","driver":"NVIDIA 617.42","os":"Windows 10.0.26300","resolution":"1920x1080","window":{"spec":"seconds 20:8","first_present":57,"ms":8081.418},"presents":76,"frame_ms":{"p50":103.048,"p90":113.51,"p99":131.862,"max":131.862},"gpu_busy_ms_per_present":5.214,"worker_busy_pct":{"queue worker 0x0":3.193},"top_phases_ms_per_frame":{"Driver.Packet":3.34,"Driver.Packet.draw":2.727,"Driver.Draw":2.661,"Driver.Draw.shader_compile_and_link":1.57,"Driver.Present":0.862,"Shader.DrawStage":0.862,"Driver.Present.queue_present":0.612,"Vulkan.QueuePresent":0.61},"trace_dropped":false,"trace":"aps5-trace-6447ed1ed7fd-37108.json.gz"}Raw trace names and SHA-256 values are recorded in the series evidence index. The common evidence link below contains those files.
Other homebrew checks
UI Lab: the 21 default concepts were rendered and visually reviewed in a navigation cycle for this topic. Artwork was present; this covers default navigation, not all themes or every widget interaction.
Known baseline rendering issue: vkQuake still has intermittent flickering and an intermittently black floor on main and the tested performance branches. These changes do not fix it. Yamagi Quake II gameplay stops at unsupported last-provoking-vertex flat interpolation, and UZDoom at unsupported clip/cull-distance handling on the baseline; neither supplies a valid gameplay FPS comparison.
Dependencies, series and overlap
#6917 retains registry lease snapshots; #6951 memoizes run bounds per lease; #7261 reconciles resource-set proofs after registry changes. This topic checks the registered owner of an individual import before full reconciliation. They optimize related paths and are not claimed as new work here.
The project overlap scan compared the local topics against 785 open PRs and checked merges into main
e5c2b3c325e485ba7fd417c47c46f48aa2c89115. This topic merges cleanly in that snapshot. Some other PRs already conflict with main, so the tool cannot compare all their shared-file hunks; the full report is retained with the common series evidence package. No exact duplicate was identified in the inspected implementations. This is not a certification that every conflicting foreign branch is composition-tested.Conventions and whitespace checks passed for the tested topic range. The benchmark base remains pinned for comparability; this is not a fresh-current-main build/test claim. Measurements and focused tests refer to the pinned source revisions above; no full-suite CI run is claimed.
Combined series result
Same pinned main, machine, 1920x1080 SuperTuxKart tutorial/menu scene, warm caches, maximized window and muted audio. APS5_TRACE_SECONDS=20:8 only; no application-output redirection. FPS is presents divided by the recorded capture interval; frame quantiles are computed independently. Rows are sorted by increasing FPS. Each row is one capture.
The corrected combination is 3.40x the pinned-main throughput, with p50 reduced by 70.3%. This is a combined result, not the gain of each PR. The earlier 32.646-FPS combination is superseded because item 10 needed its resident-import correctness repair. Screen-counter peaks near 35 FPS are not an average.
The combination includes #6658 (local integration
6baa697b2f6d6154fe7f144a77eb0af1ce37f173) and #6678 at tested revision5f822a50086fd880d6b4346709b70f8901431f43. #6658 is open. #6678 merged on 2026-10-18 with later headfd301c78a5d625d6eba8b8a32e5746a044fc235e; that newer revision and current main were not benchmarked here. Their implementations and gains are credited separately. Related earlier SuperTuxKart work #6718 and Windows tracking work #6701 are separate PRs and are not relabeled as items in this series.Checklist
6447ed1ed7fd; clean merge checked against maine5c2b3c325e4; related overlaps and duplicate-review limits are listed aboveNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository (attach them to this PR)The published head adds publication metadata only; its complete source tree is identical to the tested snapshot above.
Series index
These are the ten performance topics from the same profiling effort, followed by a separate UI Lab cache-preservation fix. Membership in the series does not imply a dependency.
Reproduction evidence
Series traces, summary lines, module hashes, focused-test logs and UI contact sheets. Game measurements use the pinned base and source revisions described above; assets contain no game binaries.