Repository navigation
Conversation
|
Rebased on Fedora 44 Release: Shader-memory, disk-cache and binding-materialization also pass with SPIRV-Tools disabled. |
7fbacba to
122e0f2
Compare
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.
Prepare binding reflection with each compiled variant, share its access flags across materialized results, and populate only live descriptor and push data. Persist the reflection in versioned shader-cache entries. Add ordering, filtering, lifetime, and cache round-trip coverage. Written with AI assistance.
Adapt the corrected binding-plan benchmark to immutable descriptor usage metadata. AI-assisted: yes.
Use the transfer barrier already present in the retained-buffer fixture between two direct RefreshData calls. AI-assisted: yes.
122e0f2 to
63763c6
Compare
adriadam10
left a comment
There was a problem hiding this comment.
Thanks for the work here. Not mergeable as it stands:
- This is stacked on #1315, which still conflicts with
mainand has an open question from @oneandonlydean (no measurable gain in the fixture or in a profiled run, 19 ms vs 21-22 ms per 6,000 builds). This PR needs that answered first. - Against current
mainit conflicts in 13 files (ShaderResources.{hpp,cpp},DescriptorBindingBuilder.{hpp,cpp},Recompiler.{hpp,cpp},ShaderDiskCache.{hpp,cpp},libSceAgcDriver/CMakeLists.txtand the Graphics/Recorder/ShaderDiskCache/ShaderMemory tests). #639 rewrotebuildPrepare/buildCompletewith compact bindings and runtime image metadata, so this is a redesign on the new structures rather than a mechanical rebase. The description says the change doesn't replace #639's ABI work; please show what is still left to share after it. - Please post before/after numbers on a rebased tree (same fixture or a real title, several runs), including the shader-cache
FormatVersionbump, which also collides with other open PRs touching it.
Once #1315 is settled and this is rebased with numbers, happy to look again.
|
Review-pass update: Audited today's types: The serialized cache is now 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: the author marked it blocked pending a redesign after #639. 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
Blocked on binding-plan benefit and metadata redesign.
Audited today's types:
CompiledShaderArtifactalready holds compiled/static shader data, whileShaderInvocationholds specialization, live descriptor bindings, push constants and vertex attributes. The remaining candidate is immutable descriptor-access vectors; live values still have to be materialized per invocation. This is narrower than treating the old complete binding object as shareable.The serialized cache is now
FormatVersion = 27; replaying this branch's old version edit would be incorrect. A replacement needs a new version chosen against its landing base and round-trip/invalidation checks. #1315 still has no demonstrated title benefit, and this stacked head has no isolated modern comparison. No code push or claim that the prior 448 → 160-byte layout result establishes runtime benefit on the new structures.What
Prepare descriptor access metadata once per compiled shader variant. Share it across draw results. Materialize current descriptors, sampler coordinates, and push data on each use. Save the prepared metadata in versioned shader-cache entries.
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