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.
|
|
I ran this on Linux with the official SPIRV-Tools pin and the full test suite, the two things your Tested section lists as not covered. Setup: head The one failure, With SPIRV-Tools OFF (the CMake default), full I did not test Windows. Written with AI assistance (Claude Code). I ran the builds and tests above on my machine. |
6cd8b72 to
563bdee
Compare
563bdee to
1fd833c
Compare
1fd833c to
3018bc6
Compare
|
@JJenkx independently validated exact head Regression and failure control
Neighboring coverage and diagnosticsOn both the candidate and parent-source control, repeated the same five GPU cases three times per physical device: draw-cache reuse in default/GPL-off/verification/inline modes, and pipelined predication read. 30 verified GPU executions on each source configuration: 15 NVIDIA RTX5080 (610.62 /32.0.16.1062), 15 AMD Radeon(TM) Graphics (32.0.21036.18). Loader output confirms the actual selected devices. Five other cases ran three times each as 15 CPU-only passes per configuration: draw-write ranges, pipelined DMA, predicated label order, and committer tracing enabled/disabled. They created no Vulkan device and are excluded from GPU counts. Thus the candidate has 30 GPU +24 CPU-only passes, the parent control 30 GPU +15 CPU-only passes +6 expected regression failures, and the restored run adds 9 CPU-only passes. GPU runs used verbose CTest, 30s timeout, required Vulkan, disabled shader cache/pipeline journal, and loaded Khronos validation1.4.363.0. The queued regression uses Conventions passes. Cppcheck/clang-tidy analysis remains recorded as findings: one Cppcheck finding and three Clang advisories in existing registry/timer code reproduce on the parent; the new fixture has no selected Clang findings. The unchanged rethrow helper's Cppcheck Scope: exact PR head plus a one-file parent fault control, not an unmodified current-main build, current-main merge composition, full default build, full suite, title or performance result. Tested2026-10-20. AI-assisted: yes (Codex); author responsible. |
What
A raw shader read behind a queued write to the same code can return the old program. Queue-0 draw commits now run through
DrawPipeline, butReadRawShaderonly flushes work already recorded by the GPU recorder. A pending pipeline commit is not yet visible to that flush. Both a cached-code comparison and a first-time code read can therefore get ahead of the write.Drain overlapping queued writes before comparing a cached raw snapshot and before reading each new code span. The drain runs outside the raw-shader cache mutex. Reads outside the queue-0 pipeline, and reads with no overlapping pending write, retain the existing path. No shader instruction semantics, registration policy, or cache format changes.
The CPU-only
agc_driver_queued_raw_shaderregression exercises cached and fresh reads through the real pipeline committer and guest-memory write path. The queued writer waits until the read returns or its bounded delay expires; the read must observe the replacement program. The cases also run separately asagc_driver_queued_raw_shader_tests cachedand... fresh. No PS5 assets or GPU are required by this regression.This is independent of #6188 and needs no commits from it. #5751 changes registration/range bookkeeping in the same source file; this PR changes ordering of code reads and does not replace that work.
Tested
Rebased as one topic commit
3018bc659f4a126b4b379079456df6004e2b6aedon current main7b12450b8ffe58cee26bee6cbf63740c6188c6b2. Resolved the additive CMake conflict by keeping main’s draw-pipeline trace settings and disabled-tracing case alongside the queued raw shader settings. Production and regression-test code are unchanged by the rebase. Linux x86-64 GCC Release, SPIRV-Tools ON at the unchanged official pin7f2d9ee926f98fc77a3ed1e1e0f113b8c9c49458: full runtime libraries and seven focused test executables build. All 11 selected CTest cases pass on both Radeon RX 6650 XT / RADV (1.44 seconds) and lavapipe (1.62 seconds), zero skips: queued raw shader; draw-cache reuse in default, GPL-off, verification and inline modes; draw-write ranges; pipelined DMA; predicated label order; predication read; and main’s draw-pipeline tracing enabled/disabled cases. All seven execution fixtures were explicitly selected. Conventions and whitespace checks pass. The overlap check reports this PR itself; the 54 unavailable shared-file comparisons were inspected from fetched peer branches, with no added queued-raw-shader fixture or changes to this read-ordering path found. The complete suite and Windows were not rerun for this rebase.Earlier local validation on main
341613ab62b979e429daa1be5ac2fe524a737df6, public head6cd8b7240: Linux x86-64 GCC Release, renderer SPIRV-Tools enabled: full runtime libraries and all selected executables build. All 10 selected CTest cases pass without skips on both Radeon RX 6650 XT / RADV Mesa 26.2.4 and lavapipe (6.47 s / 6.58 s). Besides the new CPU regression, these cover draw-cache reuse with GPL on/off, validation and inline modes, draw-write ranges, pipelined DMA/fills and predication. Conventions and whitespace pass.Earlier negative controls replace only
ShaderRegistry.cppwith main's version. Both selectors exit 1 withcached raw shader read ignored a queued write to its code/fresh raw shader read ignored a queued write to its code. The executable SHA-256 stays4f87301733885662f3e6422eb053b95aab8d53372269a63dcb1c18a6f4189bbdthrough these controls and the restored-source build. The fix is restored and the full libraries rebuilt before the final passing tests.That earlier local validation tree differs from its public head only by a private SPIRV-Tools teardown-repair gitlink, excluded from this PR. Those earlier local results do not independently validate the official dependency pin; the refreshed focused checks above do. Contributor-reported official-pin and full-suite results are recorded below; Independent Windows validation of the refreshed exact head is reported below. No title unblock or FPS improvement is claimed.
Contributor-reported validation by Dextroid17: head
6cd8b7240cleanly merged onto main84b0d2f24, CachyOS Linux 7.2.9, GCC 16.2.1, Release, lavapipe,ANYPS5_REQUIRE_VULKAN=1,ctest -j16.7f2d9ee92, cached and fresh selectors each pass 25/25 with this fix and fail 25/25 with onlyShaderRegistry.cpprestored from main; restoring the fix and rebuilding passes another 25/25 each.agc_compute_pipeline_replayfails withreplay did not export a pipeline cache header; the contributor reproduces that failure with main'sShaderRegistry.cppas well. These are not all-green full-suite results.ShaderRegistry.cpp. Conventions pass on the merged tree.These results were reported by the contributor, whose testing was AI-assisted with Claude Code; they were not reproduced locally. That earlier contributor report did not include Windows testing.
Independent Windows validation reported by Amoenus covers exact head
3018bc659f4a126b4b379079456df6004e2b6aed, Windows 11 Enterprise 26200, WinLibs GCC 15.2r7 Release, SPIRV-Tools ON at the official pin, and clean submodules. Full runtime libraries plus seven selected execution fixtures build. The queued regression passes 3/3, and cached/fresh selectors each pass 3/3; replacing onlyShaderRegistry.cppwith its parent makes both selectors fail 3/3, and restoring the fix restores all nine passes. The regression executable hash stays unchanged. Neighboring coverage reports 30 GPU executions on each source configuration (15 NVIDIA RTX 5080 and 15 AMD Radeon Graphics) with required Vulkan, disabled caches, and Khronos validation: zero errors/VUIDs and matching 60 shader-output warnings. Additional selected CPU cases pass. Existing analyzer findings reproduce on the parent. These are contributor-reported focused results, not locally reproduced Windows tests, an unmodified current-main comparison, full-suite results, or a title/performance claim. Testing was AI-assisted.Checklist
main; no other open PR implements the same functionsNotImplemented_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)