Repository navigation
Conversation
Retain descriptor layouts, allocation counts and buffer patch positions per shader variant. Resolve live addresses on each resource build and preserve independent resource lifetimes. Bound plan retention and bypass unknown variant identities. Cover changing addresses, array bindings, push offsets, eviction and plan lifetime. Supply the sampled-image metadata required by the resource-build benchmark. Fedora 44 Release driver, graphics and PM4 tests pass. RX 6600 validation passes; llvmpipe reports an upstream write-after-write warning. The isolated resource-build benchmark does not establish a clear gain. AI-assisted: yes.
47e2a47 to
71d4800
Compare
|
Rebased on Fedora 44 Release, GCC 16, Ryzen 5 5600 pinned to CPU 3, RX 6600 with host RADV. Eight runs per variant in ABBA order. Each run had one warmup and nine timed batches of 1,024 resource builds. The fixture uses eight buffers, rotates the first buffer address, and disables host and DMA-BUF imports. Validation was disabled during timing. Times in microseconds per resource build; medians of the eight run medians:
Checksums match. The ranges overlap, so this fixture does not establish a clear isolated performance gain. The earlier combined-fork figures are not a substitute for that evidence. Title frame time was not measured. Driver, graphics and PM4 tests pass. Resource, snapshot and live-input checks pass on RX 6600 with core and synchronization validation. On llvmpipe, both upstream and this PR report the same |
|
#639 rewrote |
Adapt upstream PRs boykopovar#1315, boykopovar#2791 and boykopovar#2792 to the current descriptor ABI and synchronization paths. Bound immutable binding plans to 1024 entries while retaining live resource addresses and specialization identity. Keep real CPU writebacks and fault completion active. Capture generation baselines only over settled guest bytes. Add focused cache, texture baseline and copy synchronization regressions.
adriadam10
left a comment
There was a problem hiding this comment.
Thanks for the rebase and the A/B fixture. Two blockers:
- Conflicts with
main: #639 rewrotebuildPrepare/buildComplete(compact bindings, runtime image metadata). The PR now conflicts inShaderResources.cpp,ShaderResources.hpp,libSceAgcDriver/CMakeLists.txt,tests/Graphics.cppandtests/Recorder.cpp. Please rebase and rerun the PR's tests on top of the new preparation path. - No measured gain: your own numbers overlap (515.5 → 510.1 µs and 574.7 → 572.5 µs, ranges overlapping), and @oneandonlydean's profile shows the bindings phase at 19 ms on
mainvs 21-22 ms with this PR per 6,000 builds. A perf PR needs before/after numbers that show a gain. Please answer his question: which title does it speed up, and by how much (frame time or the bindings phase in that title)?
If the rebased version still shows no gain, please close it; a 500-line change to resource binding without a measured benefit is not worth the maintenance. #1318 is stacked on this one and will need the same rebase.
|
Review-pass update: Current The existing measurements remain negative or inconclusive: our A/B ranges overlap, and the review profile was 19 ms on main versus 21–22 ms with the PR per 6,000 builds. I do not have a title/scene that this change demonstrably speeds up. In the new main + experimental NGS Skyrim loading sample, bindings took 2 ms across 257 resource builds while guest upload took about 10.6 seconds. That sample is not a controlled frame-time comparison and does not justify this cache. The body now treats earlier fixture numbers as historical, not evidence of a current gain. No speculative 500-line port or merge-ready claim. I have updated the PR description to match this status. The PR remains open; the outstanding review requirements are not being marked resolved. AI-assisted audit. |
|
Closing for now: no title or measured gain is shown, as the author noted. With the queue this large we're closing stalled perf PRs that don't show a gain in a title; reopen it with before/after numbers from a title scene (the summary lines from the performance report form) if you pick it up again. |
Status after review
Awaiting a measured title benefit.
Current
buildPrepare/buildCompleteuses compact bindings and runtime image metadata. The old retained plan must be redesigned around that split; its old structures cannot simply be rebased into the new path.The existing measurements remain negative or inconclusive: our A/B ranges overlap, and the review profile was 19 ms on main versus 21–22 ms with the PR per 6,000 builds. I do not have a title/scene that this change demonstrably speeds up. In the new main + experimental NGS Skyrim loading sample, bindings took 2 ms across 257 resource builds while guest upload took about 10.6 seconds. That sample is not a controlled frame-time comparison and does not justify this cache. The body now treats earlier fixture numbers as historical, not evidence of a current gain. No speculative 500-line port or merge-ready claim.
What
Retain descriptor layouts, allocation counts, and buffer patch positions per shader variant. Each draw still resolves live resource addresses and owns its resource lifetime.
Tested
Earlier branch-specific tests and measurements remain in the discussion. They have not been rerun on a redesigned current-main version of this PR. The review audit and shared NGS-assisted title exploration do not establish that this head is merge-ready. No full Linux/Windows platform CI was dispatched in this pass.
Checklist