Repository navigation
Conversation
|
Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.
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.
|
JJenkx
force-pushed
the
fix/lazy-pipeline-abi
branch
3 times, most recently
from
October 16, 2026 12:07
4cc4931 to
3bac469
Compare
This was referenced Oct 16, 2026
Contributor
Author
|
Temporarily closing this draft to free one of my 20 open-PR slots for a reproduced cache-header arithmetic correction following #6296. This first-use pipeline work remains on fix/lazy-pipeline-abi at 3bac469, and its prior testing integrations are preserved. It still needs an isolated main-versus-change title performance comparison before becoming ready. Reopen when a slot is available; no branch deletion. |
11 tasks done
JJenkx
force-pushed
the
fix/lazy-pipeline-abi
branch
from
October 19, 2026 02:24
3bac469 to
d5ec29e
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Draft: matched-title performance validation and the review requirements below remain outstanding.
With
APS5_LAZY_SHADER_PREPARE=1, registration is deferred but a title can still compile its unused PSO cache through the three pipeline ABI resolvers. Keep host shader and rectangle artifacts lazy there too, after registered-header and device validation. Guest metadata calculations are unchanged. Draws, dispatches and rectangle pairs still prepare missing artifacts at first use, and unsupported code still fails there. Default eager behavior is unchanged.This follows merged #5872. The branch now contains only this follow-up commit on main
40393b0f959c; the former dependency commits have been removed.Tested
Latest refresh: rebased as one linear commit onto main
40393b0f959c7a9522d65ee869f12a0f53693beb; new headd5ec29e08e. All seven selected test executables rebuilt. 28/28 selected checks pass on RADV and 28/28 on lavapipe, with Vulkan required and no skips, including main's eight new deferred ABI cases, lazy/synchronous-lazy modes, eager/prebuild variants, publication, exports, unregistered graphics and draw-cache relocation. Conventions and whitespace pass. Main's newer failed-registration handling and deferred-state regression are preserved. This is a source/test refresh; no new native title or matched-scene performance result is claimed. Earlier measurements below retain their original revision labels.Earlier refresh onto main
eb901bcf4e17after #5872 and #6784 merged, new head3bac469646f3. Only one follow-up commit remains, with no merge commits. Fulllibsand all seven selected test executables rebuilt; 20/20 checks pass on RX 6650 XT/RADV without skips, including eager/prebuild variants, lazy/synchronous-lazy modes, publication, unregistered graphics and draw-cache relocation. The same 20 checks also pass on lavapipe Mesa 26.2.4 / LLVM 23.1.1 with Vulkan required, without skips (4.32 seconds). Conventions and whitespace pass. An initial run accidentally used an old unregistered-graphics executable; rebuilding it resolved the ABI mismatch before this final result. The compositor repeat below tests the earlier332b0b1b7base and exactbc8e7275f2f9head; the latest rebased head has no native title run yet.Arch Linux 7.2.9, GCC 16.2.1, Ryzen 9 7950X, Radeon RX 6650 XT 8 GiB, RADV 26.2.4-arch1.1:
5d9dcc42dplus perf(agc): allow shader preparation on first use #5872 plus this change (35a3326639ab): fulllibsbuild and 17 preparation checks pass, including default/prebuild variants, lazy/synchronous-lazy modes and prepared-state publication. Conventions and whitespace checks pass.ShaderRegistry.cppwith parent main-plus-perf(agc): allow shader preparation on first use #5872 code makes this regression fail at eager pipeline preparation; restoring the change passes.Exact source, native summaries, screenshots and limitations. Game bring-up.
Draft: broader title validation and repeatable complete-load timing remain pending. The controlled fixed-window startup traces below distinguish main, the dependency and this follow-up. These observations do not establish a gameplay, FPS, percentage speedup or complete-load claim. Windows/macOS runtime builds have not been run for this change.
Compositor repeat on current main
This repeat addresses the X11 capture limitation below. Both arms use current main
332b0b1b7, identical initial save hashes, separate initially empty AnyPS5/Mesa caches, 3840x2160 rendering, no scripted input or debugger, and XComposite for all eight screenshots. Only the officialAPS5_TRACE_SECONDS=0:120switch and event capacity are set; game output stays on the terminal. Both traces report no dropped events.c6bb5fc8b1f2bc8e7275f2f9This establishes startup UI progress over the parent in this observation window. It does not establish gameplay, complete-load timing, a warmed scene gain or an FPS improvement; rendered content differs. It does not retest unmodified main. The OS file cache was not reset. Earlier X11-only controls remain inconclusive, independently of this repeat.
Both exact-head traces, digests, report and matching compositor captures (
compositor-startup-main332-public.json).Compositor repeat summary lines (parent, change; startup content differs)
{"commit":"c6bb5fc8b1f2","dirty":false,"env":{"APS5_DRAW_CACHE_ENTRIES":"4096","APS5_HOST_IMPORT_MIB":"16384","APS5_LAZY_SHADER_PREPARE":"1","APS5_PAD_INPUT_FILE":"<path>","APS5_PIPELINED_DRAWS":"1","APS5_TRACE_EVENTS":"1048576","APS5_TRACE_SECONDS":"0:120"},"gpu":"AMD Radeon RX 6650 XT (RADV NAVI23)","driver":"radv Mesa 26.2.4-arch1.1","os":"Linux 7.2.9-arch1-1","resolution":"3840x2160","window":{"spec":"seconds 0:120","first_present":0,"ms":120015.597},"presents":7188,"frame_ms":{"p50":16.683,"p90":16.695,"p99":16.758,"max":77.432},"gpu_busy_ms_per_present":0.563,"worker_busy_pct":{"queue worker 0x0":92.149,"queue worker 0x38":0.426},"top_phases_ms_per_frame":{"VideoOut.Flip":16.639,"VideoOut.Flip.vblank_wait":15.538,"Driver.Packet":15.384,"Driver.Packet.rendering_wait":14.637,"Vulkan.GraphicsPipelinePrebuild":10.862,"Vulkan.GraphicsPipeline":10.861,"Vulkan.GraphicsPipelineLibrary":10.848,"Driver.Present":1.04},"trace_dropped":false,"trace":"aps5-trace-c6bb5fc8b1f2-3849841.json.gz"} {"commit":"bc8e7275f2f9","dirty":false,"env":{"APS5_DRAW_CACHE_ENTRIES":"4096","APS5_HOST_IMPORT_MIB":"16384","APS5_LAZY_SHADER_PREPARE":"1","APS5_PAD_INPUT_FILE":"<path>","APS5_PIPELINED_DRAWS":"1","APS5_TRACE_EVENTS":"1048576","APS5_TRACE_SECONDS":"0:120"},"gpu":"AMD Radeon RX 6650 XT (RADV NAVI23)","driver":"radv Mesa 26.2.4-arch1.1","os":"Linux 7.2.9-arch1-1","resolution":"3840x2160","window":{"spec":"seconds 0:120","first_present":0,"ms":120071.495},"presents":826,"frame_ms":{"p50":119.073,"p90":142.018,"p99":300.918,"max":14838.718},"gpu_busy_ms_per_present":59.559,"worker_busy_pct":{"queue worker 0x0":94.644,"queue worker 0x38":45.742,"queue worker 0x20":22.087,"queue worker 0x28":81.299},"top_phases_ms_per_frame":{"Driver.Packet":351.652,"Driver.Packet.memory_wait":158.901,"Driver.Packet.dispatch":113.285,"Driver.Dispatch":112.851,"Vulkan.Dispatch":73.666,"Vulkan.Dispatch.shader_resources":73.277,"Driver.Packet.draw":57.519,"Driver.Draw":57.488},"trace_dropped":false,"trace":"aps5-trace-bc8e7275f2f9-3912401.json.gz"}Controlled startup captures
Capture correction: a later same-window check found black X11 snapshots while XComposite showed readable UI. The main/parent controls below used X11 only. Their black images therefore do not prove the game rendered black, and the visual comparison is inconclusive pending XComposite controls. Numeric traces/cache totals remain attached; no speedup is claimed.
Same machine/session, identical initial save hashes and rendering/window settings, separate initially empty AnyPS5 and Mesa caches for each run. No scripted input, debugger, extra profiling flag or redirected game log. All three runs close normally at about 183 seconds. The 120-second traces have no dropped events.
5d9dcc42dcc621fc7435a332663File counts include shader/resource-plan artifacts, pipeline cache and metadata; they are not unique shader counts. This defers unused work; it does not eliminate all compilation. The OS file cache was not reset. This is a fixed-window startup comparison, not a completed cold load or the performance form's warmed-cache scene comparison. Rendered content differs, so the summary frame times do not support an FPS speedup claim. Broader titles and repeatable complete-load timing remain pending.
Three traces, digests, numeric report and matching final captures.
Official summary lines (main, parent, change; startup content differs)
{"commit":"5d9dcc42d2ec","dirty":false,"env":{"APS5_DRAW_CACHE_ENTRIES":"4096","APS5_HOST_IMPORT_MIB":"16384","APS5_LAZY_SHADER_PREPARE":"1","APS5_PAD_INPUT_FILE":"<path>","APS5_PIPELINED_DRAWS":"1","APS5_TRACE_EVENTS":"1048576","APS5_TRACE_SECONDS":"0:120"},"gpu":"AMD Radeon RX 6650 XT (RADV NAVI23)","driver":"radv Mesa 26.2.4-arch1.1","os":"Linux 7.2.9-arch1-1","resolution":"3840x2160","window":{"spec":"seconds 0:120","first_present":0,"ms":120001.577},"presents":3413,"frame_ms":{"p50":16.684,"p90":16.698,"p99":742.288,"max":4215.071},"gpu_busy_ms_per_present":0.737,"worker_busy_pct":{"queue worker 0x0":39.8,"queue worker 0x38":0.21},"top_phases_ms_per_frame":{"Shader.PrepareArtifact":52.965,"Vulkan.GraphicsPipelinePrebuild":34.991,"Vulkan.GraphicsPipeline":34.988,"Vulkan.GraphicsPipelineLibrary":34.963,"VideoOut.Flip":16.006,"VideoOut.Flip.vblank_wait":14.888,"Driver.Packet":13.992,"Driver.Packet.rendering_wait":13.178},"trace_dropped":false,"trace":"aps5-trace-5d9dcc42d2ec-3111965.json.gz"} {"commit":"cc621fc74cb7","dirty":false,"env":{"APS5_DRAW_CACHE_ENTRIES":"4096","APS5_HOST_IMPORT_MIB":"16384","APS5_LAZY_SHADER_PREPARE":"1","APS5_PAD_INPUT_FILE":"<path>","APS5_PIPELINED_DRAWS":"1","APS5_TRACE_EVENTS":"1048576","APS5_TRACE_SECONDS":"0:120"},"gpu":"AMD Radeon RX 6650 XT (RADV NAVI23)","driver":"radv Mesa 26.2.4-arch1.1","os":"Linux 7.2.9-arch1-1","resolution":"3840x2160","window":{"spec":"seconds 0:120","first_present":0,"ms":120012.451},"presents":7189,"frame_ms":{"p50":16.683,"p90":16.695,"p99":16.754,"max":62.882},"gpu_busy_ms_per_present":0.562,"worker_busy_pct":{"queue worker 0x0":92.256,"queue worker 0x38":0.394},"top_phases_ms_per_frame":{"VideoOut.Flip":16.639,"VideoOut.Flip.vblank_wait":15.549,"Driver.Packet":15.399,"Driver.Packet.rendering_wait":14.69,"Vulkan.GraphicsPipelinePrebuild":10.747,"Vulkan.GraphicsPipeline":10.745,"Vulkan.GraphicsPipelineLibrary":10.733,"VideoOut.Flip.present":1.028},"trace_dropped":false,"trace":"aps5-trace-cc621fc74cb7-2978458.json.gz"} {"commit":"35a3326639ab","dirty":false,"env":{"APS5_DRAW_CACHE_ENTRIES":"4096","APS5_HOST_IMPORT_MIB":"16384","APS5_LAZY_SHADER_PREPARE":"1","APS5_PAD_INPUT_FILE":"<path>","APS5_PIPELINED_DRAWS":"1","APS5_TRACE_EVENTS":"1048576","APS5_TRACE_SECONDS":"0:120"},"gpu":"AMD Radeon RX 6650 XT (RADV NAVI23)","driver":"radv Mesa 26.2.4-arch1.1","os":"Linux 7.2.9-arch1-1","resolution":"3840x2160","window":{"spec":"seconds 0:120","first_present":0,"ms":120003.176},"presents":866,"frame_ms":{"p50":115.899,"p90":134.66,"p99":305.938,"max":13694.997},"gpu_busy_ms_per_present":60.291,"worker_busy_pct":{"queue worker 0x0":93.885,"queue worker 0x38":48.018,"queue worker 0x20":23.446,"queue worker 0x28":80.181},"top_phases_ms_per_frame":{"Driver.Packet":337.238,"Driver.Packet.memory_wait":156.185,"Driver.Packet.dispatch":108.905,"Driver.Dispatch":108.494,"Vulkan.Dispatch":69.828,"Vulkan.Dispatch.shader_resources":69.468,"Driver.Packet.draw":54.578,"Driver.Draw":54.547},"trace_dropped":false,"trace":"aps5-trace-35a3326639ab-3041730.json.gz"}Beyond the startup notice
An observed-input follow-up on this isolated branch confirms the autosave dialog and selects No at the VR prompt, then exits134 with
AGC graphics: the depth target's sample count differs from the rasterizer's. A clean integration of all three #5907 commits passes five selected graphics checks but still reaches that error. A diagnostic-only follow-up records raster2/depth1,AA_CONFIG=0x00108001,MODE_CNTL_0=3,MODE_CNTL_1=0,DEPTH_CONTROL=0x007007e7,Z_INFO=0x20000183, andINPUT_ENA=INPUT_ADDR=0x2301.The active inputs include ANCILLARY and position X/Y, which #5907 deliberately rejects to avoid changing fragment-coordinate semantics. Thus #5907's documented Village case does not establish support for this draw. No sample-count bypass was applied. A later diagnostic on main
332b0b1b7captures the rejected312word pixel program; offline folded resource IR retains SampleId and both FragCoord components. Full materialization is not established because descriptor memory was not captured. All three progression runs are terminal with temporary settings restored. Register evidence, exact test branches and limits (village-mixed-samples-public.json). These are diagnostic progression tests, not performance captures; gameplay and a rendered title menu remain unverified.Overlap
#5872 and #6366 are merged into main. This rebase retains #6366's failed-registration handling and all new deferred ABI tests alongside the opt-in lazy returns. No open dependency remains.
The additional overlap warning was reviewed against #6188
95ddd71bd8e8, #645422f8c1480189and #67183fc42c0a221e. The first two conflict at the public declarations beside #5872'sRegisteredShaders()(draw-ahead/cache APIs in #6188 andQueryPendingSpanin #6454); retain both declarations. #6718 adds an independent CPU texture-array test block beside the preparation test environment block; retain both registrations. None implements lazy ABI artifact deferral or is a code dependency. Local merge-tree checks confirm these mechanical conflicts; full combined builds for these three peers have not been run. Comparisons the bot could not complete are not claimed clean.Checklist
main; no other open PR implements the same follow-up.mdfiles or images added to the repository