Repository navigation
Conversation
|
Rebased cleanly onto current main e9a3343; published head 5f48913. Please dispatch the maintainer full Linux/Windows Build workflow for this head. The full local build passes, as do the nine focused RADV checks and all 14 memory/loader/voice checks. The broader suite remains 626 pass, three skip, and the independently reported Mesa tessellation SIGSEGV (#5444). Current reports are linked in Tested; the earlier matrix and title integrations retain their exact historical source limits. |
|
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.
|
e8fabf0 to
5f48913
Compare
jotitadev
left a comment
There was a problem hiding this comment.
A run of the mesh execution test on NVIDIA. lavapipe skips it, and the description covers RADV.
Machine: Ubuntu 26.04, i7-8700, GCC 15.2, Release, BUILD_TESTING=ON. NVIDIA GeForce RTX 3070 (driver 595.99.02) and lavapipe (Mesa 26.0.3, LLVM 21.1.8) on the same host. Head 5f4891387 merged onto main 47a266cf9 (clean). ANYPS5_NO_SHADER_CACHE=1, -j1 --timeout 30.
| Run | RTX 3070 | lavapipe |
|---|---|---|
| `agc_driver_layered_volume_(draw | submit | mesh |
agc_driver_layered_volume_mesh, layer limit in Draw.cpp capped at 8 |
pass 3/3 | not run |
same cap, and window.meshLayerBase = 0u |
fails 3/3: mesh draw: slice 9 texel (0, 0) channel 0 is 255, expected 64 (another layer's band) |
not run |
^agc (650 tests) |
650/650 (main: 649/649) |
650/650 (main: 649/649) |
The 3070 reports maxMeshOutputLayers = 2048, so the unchanged test draws all 33 layers in one pass there. The window path is not used, and the pass on NVIDIA only shows that a large limit still works. To run the windows, I capped the limit at 8 in a local copy of Draw.cpp. With that cap the 33 layers are drawn in windows, and the test passes 3/3 on the 3070. With the cap and the window base forced to 0, it fails at slice 9, the same place as your production-only negative on RADV.
So the regression covers the window path only on drivers whose limit is below 33, such as RADV. lavapipe reports 9, but it skips mesh execution.
Not run: Windows, AMD, Intel, any title.
GPUs tested: NVIDIA GeForce RTX 3070 (595.99.02) and lavapipe (Mesa 26.0.3), Ubuntu 26.04
Written with AI assistance (Claude Code). I ran the builds and tests above on my machine.
5f48913 to
be5c05b
Compare
be5c05b to
b88367c
Compare
b88367c to
2bfd54a
Compare
2bfd54a to
739cad5
Compare
8237 and 8238 are taken by MeshLayerBase and MeshLayerCount in boykopovar#6959 and 8240 by DepthRemapBase in another open PR, so buildSpecializedModule would read a mesh module's IDs as workgroup offsets once both land.
|
Data point from the same GPU class, on a second title: The Smurfs - Dreams (PPSA21607, Unreal Engine). RX 6650 XT ( Like Override 2, Smurfs builds its 32-layer colour-grading LUT with a single mesh draw, so on
The washed-out look in the second row is a separate bug (a 1x1 readback image that isn't stored before a label), fixed by #6948. With both PRs Smurfs looks right on this GPU, with no other patches. Both merged cleanly onto AI-assisted (Claude Code). |
|
Additional title validation: Crimson Spires (PPSA03568), RX 6650 XT / RADV NAVI23 ( The title renders a 32×32×32 color-grading volume through a layered mesh draw. Before this change, compact image readbacks contained writes only in slices 0–7; the opening driving scene had a black sky and very dark road. With the six commits through A separate compact readback run on that integration plus #6948 ( This is a partial visual correction: the opening remains darker and less orange than the PS5 recording. No performance gain or complete graphics correctness is claimed. The standalone older PR base could not reach this scene without Crimson's integration prerequisites, so this is integration validation rather than a clean current-main comparison. |
|
An AMD Windows run, since the runs so far are RADV, NVIDIA and lavapipe. RX 6700 XT (gfx1031, RDNA 2), AMD's Windows driver 32.0.21045.5002, Windows 11 26200, WinLibs GCC 15.2.0 r7, Release,
So on this driver the layer windows need the block form, or a layer output that #6379 doesn't drop. I haven't run a title. |
What
Override 2 (PPSA01907, #6933) renders its color-grading LUT through a 32-layer mesh draw. The RX 6650 XT reports
maxMeshOutputLayers = 8; native readback found only slices 0–7 populated. Vulkan defines Layer output at or above this limit as undefined.Render supported layered mesh color draws through attachment windows within the device limit. Rebase the mesh Layer output, cull primitives outside each window, and restore the original layer number for fragment ancillary input. Keep the late specialization values through shader preparation and distinguish them in both monolithic and graphics pipeline library caches. Persist the replay proof and window state in their cache/journal formats.
Replay excludes guest writes/atomics, clocks, GDS and unproven side effects. Read-only address loads are allowed: ResourceTracker sets
usesDmafor those too;bdaWritesand operation metadata distinguish writes. Empty direct draws preserve their no-op behavior. Existing refusals for layered depth and 2D array views remain. Wider framebuffer support and non-replayable shaders need a separate mesh-output capture path.Depends on #6934, included as the first commit. The remaining five commits are this topic; the branch is linear on main
b39d90bf14a43809e47c2c82b649467a64182afb. Published head739cad5365da6743a7b546978afc12cdc94615dc. The production branch excludes the native readback instrumentation and the unrelated API fixes described below.Overlap review: the required tool and shared changes were inspected. Debt appends and shader-cache version bumps are independent coordination. #6639 changes State/journal size/version constants; retain both codecs and recalculate the combined size/version after either merges. #5500’s physical view base is independent of this host window offset. #6379 strips unused layer interfaces; exported layer windows must retain theirs. #6683 changes SampleID in the shared builtin block; retain both branches. #6924 persists specialized modules; its disk codec must preserve this PR’s retained specialization vector when combining them. These are not implementations of device-limit layer windows and are not build prerequisites. Review details.
Tested
Latest refresh: six commits rebased linearly onto main
b39d90bf14a43809e47c2c82b649467a64182afb; head739cad5365da6743a7b546978afc12cdc94615dc. Retained the expanded upstream guest-load debt entry and this PR’s separate NGG entry. Main now uses shader-cache format 37, so this PR advances it to 38 for the additional serialized layer-replay proof; the pipeline-journal codec remains version 4 versus main’s 3. Release driver/recompiler and ten focused executables build. All 14 focused RADV checks pass, zero skips, 8.50 s, with Vulkan required, core validation and shader cache disabled: zero validation-error/VUID lines. Conventions and whitespace pass. No fresh title, full-suite, Windows or performance result is claimed. Pinned report, focused checks.Previous refresh on main 5229: rebased all six commits linearly onto main
5229b5b829881ab3cef400aa351db197aec032c3; head2bfd54a18c0a9728050873279cd61c244603157b. The conflict was limited to independent additions indocs/dev/debt/shader.md; both entries are retained and production patches are unchanged. Release driver/recompiler and ten focused test executables build. All 14 focused RADV checks pass with Vulkan required, core validation and shader cache disabled: zero skips and zero validation-error/VUID lines. Conventions and whitespace pass. No fresh title, full-suite, Windows or performance result is claimed. Pinned report, focused checks.Previous refresh on main bd585: head
b88367cad364a6b55b9fb641ecd186fd534ca87dis rebased onto mainbd5856170891c2a148a384eb79b90fe8e9385bb6without merge commits. The same #6934 prerequisite remains included; production patches are unchanged. The upstream thick-volume regression and both additive debt entries are retained. Release driver/recompiler and ten focused executables build. All 14 focused checks pass on RX 6650 XT / RADV Mesa 26.2.4-arch1.1 with core validation and Vulkan required, shader cache disabled: zero skips, zero validation errors/VUIDs, 10.38 s. These cover replay safety, disk cache, graphics, mesh, array layers, layered-volume draw/submit and explicit mesh/vertex execution, stencil replay, both journals and replay requests. Conventions and whitespace pass. No fresh title, full-suite, Windows or performance result is claimed. Pinned report, focused checks.Arch Linux x86-64, GCC Release, Ryzen 9 7950X; AMD Radeon RX 6650 XT, RADV Mesa 26.2.4-arch1.1. Main’s published dependency pins.
Earlier refresh on main e9a: rebased without merge commits onto
e9a3343a2, retaining the included #6934 prerequisite. The full default build passes. RADV: 626/630 pass, three skip, and onlyagc_driver_tessellationsegfaults (the previously reproduced base failure, related #5444). The nine focused checks pass with core validation, no skips (7.42 s); all 14 memory/loader/voice checks pass, including the recent main changes. Conventions and whitespace pass. Current-head report, graphics/shader run, focused run, memory/loader run.The detailed matrix, negative, lavapipe and native results below are from the earlier source revisions explicitly identified in their reports.
libsand the selected test executables build. Final CTest: 9/9 pass, zero skips, 7.39 s: replay safety, shader disk cache, graphics, mesh, array-layer control, volume vertex/compile control, explicit volume mesh execution, and both pipeline journal checks.agc_driver_layered_volume_meshfails at physical slice 9 / guest layer 8, retaining initial 64 instead of expected 255. The executable SHA-256 remains652a5433d1cd3d6ab9302a96df2455638ea8506997e416d92135bec8eb0c144a. Restore/rebuild: final matrix and nine checks pass.Production report, final tests, negative control.
Native integration:
d26ec82000b567763b3cee09905d8c27846273acon main2fab88d10, with #6934, #6913, peer #862 (lvmino97) and #6781 (XairRrR), plus diagnostic readbacks. The first candidate refused read-only address access and exited 134; the correction above is included here. All 181 captured title shader requests then recompile with the corrected classification. This is shader coverage for one title, not 181 title tests.Two corrected runs finish with ordinary close / exit 0: full-volume diagnostic 182.08 s, normal rendering 93.58 s. The diagnostic LUT fills 8/16/24/32 slices and preserves earlier windows’ bytes. The normal menu shows the colored robot, signs, lamps and floor reflections. Both runs have zero core-validation errors/VUIDs and restore the temporary kernel limit. No native process remains.
The title integration contains the separately listed fixes; it is not unmodified main plus only this PR. The earlier screenshot uses a different base and animation phase. No gameplay, audio-quality, console comparison or FPS-gain claim. Native report, bring-up #6933.
Additional historical regression audit on head
e8fabf090: the full default build passes. The broader RADV graphics/shader run selects 630 tests: 626 pass, 3 skip, 1 segfaults (agc_driver_tessellation). Rebuilding the unchanged main basebc3c0fc13reproduces that segfault with the identical fixture and environment; its cause is not established by this comparison. Presentation tests andagc_driver_lds_atomics64were excluded. After restoring the production head, the full build and the nine focused checks pass again (9/9, no skips, 7.66 s). The candidate backtrace enterslibvulkan_radeon.soduring GPL linking; related Mesa report: #5444. The installed driver has not been patched in this audit. This is not a claim that the entire suite is green. Machine-readable audit, broad run, unchanged-main control, restored focused checks.Earlier main-e9 native repeat: clean integration
9a294a6bcone9a3343a2adds the same #6913/#862/#6781 prerequisites, without readback instrumentation. Eleven integration checks pass. A new empty AnyPS5 shader cache run shows the corrected menu and reaches Select Mech through controller input. Planned close: exit 0 at 303.55 s; zero core-validation errors/VUIDs; kernel limit restored and process gone. Gameplay/Training remain unverified, and the title is slow (observed title-bar samples 2.29–4.30 FPS, not a matched trace). No performance-gain claim. Current native evidence and limits; screens and current bring-up status.Independent NVIDIA coverage: jotitadev reports tests of published head
5f4891387merged onto main47a266cf9, on Ubuntu 26.04 with GeForce RTX 3070 driver 595.99.02. The 650-test AGC run passes; the unmodified 33-layer fixture fits the reported 2048-layer limit and therefore does not exercise multiple windows on this GPU. With the production limit locally capped at 8, mesh execution passes 3/3; additionally forcing the window base to zero fails 3/3 at slice 9. This is reviewer-provided cross-vendor evidence, not a run performed on our machine. Their lavapipe run skips mesh execution; no NVIDIA title or Windows run is claimed. The existing fixture exercises multiple windows on the tested RADV limit of 8; automatic coverage on devices with larger limits remains a test limitation.Independent second-title coverage: Pacuka reports The Smurfs - Dreams (PPSA21607) on RX 6650 XT (
maxMeshOutputLayers = 8), RADV Mesa 26.2.4, CachyOS, Release, with a fresh save each run. Maine5f18ea99has a black 3D menu background and an almost-black village. Main plus this PR head739cad536restores the menu clouds and removes the black village areas, but leaves washed-out colours; adding #6948 (56d7ebe41) gives the reported correct colours with no other patches. The commenter attributes that separate correction to storing a 1×1 readback image before a label. Both PRs applied cleanly and the game closed without a crash. Light ground-shadow flicker remains reported; its cause and relationship to performance are not established. This is contributor-provided title evidence, not our local run or a new performance claim. Their report is AI-assisted (Claude Code).AMD Windows compatibility: thuanquang reports that the published
739cad536head merged onto main05171bc66crashes inamdvlk64.dllduringagc_driver_layered_volume_meshon RX 6700 XT / Windows 11 / driver 32.0.21045.5002. #7674 keeps Layer output through a per-primitive Block struct and fixes that driver crash in their combined tests (3/3). It is a platform dependency for this PR, not included in this branch. Composition must retain this PR’s window-relativeselectedLayer store through #7674’s member-0 access chain inEmitMeshEntryPoint. #6379’s removal of Layer output cannot replace this dependency because it discards the layer routing required by the windows. No Windows title result is claimed.Local composition check: RX 6650 XT / RADV, published #6959 head
739cad536plus #7674a9cd39045and the already-merged #7374 commit8f03282f5(needed because this older base refuses last-provoking-vertex geometry): all seven focused tests pass three consecutive runs each, 21 executions, zero skips or core-validation errors/VUIDs, 5.92 s. Checks: mesh, array-layer target, volume draw/vertex/mesh, mesh provoking layer and mesh provoking vertex. Temporary combined headcf3579829d; this is compatibility evidence on the declared integration, not a rebase onto latest main or a Windows execution. The source branch published by this PR is unchanged.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)