Repository navigation
fix(agc): publish a written native multisample D32S8 owner without HTILE to its depth and stencil planes - #15688
hugodearaujo wants to merge 3 commits into
Conversation
…ILE to its depth and stencil planes
…ication # Conflicts: # docs/dev/debt/libSceAgcDriver.md
✅ NVIDIA GPU test: passedPR head
Unstable on main (3, these also failed in recent main runs on this machine; not counted against this PR)Failing on main too (3, not counted against this PR)Validation IDs already present on main (13 IDs in 547 tests)Skipped (49)ReproduceAutomated build and test on a contributor's NVIDIA machine; it does not replace upstream CI. A new comment is posted for each new push. Full logs. |
✅ NVIDIA GPU test: passedPR head
Unstable on main (1, these also failed in recent main runs on this machine; not counted against this PR)Failing on main too (3, not counted against this PR)Validation IDs already present on main (13 IDs in 543 tests)Skipped (49)ReproduceAutomated build and test on a contributor's NVIDIA machine; it does not replace upstream CI. A new comment is posted for each new push. Full logs. |
… stay unimplemented
✅ NVIDIA GPU test: passedPR head
Unstable on main (3, these also failed in recent main runs on this machine; not counted against this PR)Failing on main too (3, not counted against this PR)Validation IDs already present on main (13 IDs in 543 tests)Skipped (49)ReproduceAutomated build and test on a contributor's NVIDIA machine; it does not replace upstream CI. A new comment is posted for each new push. Full logs. |
✅ AMD GPU test: passedPR head
Unstable on main (1, these also failed in recent main runs on this machine; not counted against this PR)Failing on main too (7, not counted against this PR)Passed on retry (1, failed in the parallel run, passed when re-run with a 360 s timeout; not counted against this PR)Validation IDs already present on main (8 IDs in 543 tests)Skipped (60)ReproduceAutomated build and test on a contributor's AMD machine; it does not replace upstream CI. A new comment is posted for each new push. Full logs. |
|
Windows and NVIDIA Blackwell run, for head
The failure, The new PPSA13960 was not run. Edited after posting: added the validation row and AI-assisted: yes. Claude Code ran the builds and tests and drafted this comment; the numbers are from the runs on this machine. |
Superseabas
left a comment
There was a problem hiding this comment.
Head fa590e435a merged onto current main b11c7bf84f (clean merge, local only): code read, red/green check and a run on AMD's Windows driver, with an NVIDIA Blackwell run alongside. I reviewed it as the base of #15690 and #15707.
Windows 11 Home 10.0.26200, WinLibs GCC 16.2.0 (x86_64-ucrt-posix-seh, r3), Release, BUILD_TESTING=ON. ANYPS5_REQUIRE_VULKAN=1 ANYPS5_NO_SHADER_CACHE=1 VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation, ctest -R '^agc_driver_native_(depth|multisample_depth).*$', ANYPS5_GPU selecting the device (confirmed by Selected GPU):
| GPU | Driver | main |
merged |
|---|---|---|---|
NVIDIA GeForce RTX 5070 Ti (10de:2c05) |
621.01 | 16 + 1 skip | 18 + 1 skip |
AMD Radeon Graphics, Ryzen 7 7700X iGPU (1002:164e) |
AMD 26.10.2 | 16 + 1 skip | 18 + 1 skip |
- The skip is
agc_driver_native_depth_driver_queued_fill, as onmain. There are noVUID-lines and no missing-layer line in any run. - Red check: the merged tree with this PR's
DepthSurface.cppchange reversed fails the newagc_driver_native_depth_publication_without_htileon both GPUs. It fails withsample-preserving guest publication of native multisample depth is not implemented for this owner. check_conventions.py --base mainpasses on the merge.
Read through the change: PublishToGuest now accepts a no-HTILE (uniformPlaneTarget) D32S8 owner with two publication entries. The stencil plane is the last entry (publication.size() - 1), and the HTILE expansion into result[1] runs only when the owner has HTILE. The other requirements are unchanged. These are the format, an empty sampling refusal, proven stencil and no pending clears. I found nothing to change.
AI-assisted: yes (Claude Code)
What
#13021 publishes a written native multisample D32S8 owner to its guest planes, but only an owner with three planes (depth, HTILE, stencil). #14005 imports a D32S8 target without HTILE whose depth and separate stencil planes each hold one value; once the host draws into it, a guest read of its planes throws
sample-preserving guest publication of native multisample depth is not implemented for this owner. As discussed on #13021, this is the follow-up for that two-plane owner.PublishToGuestnow also accepts the owner of auniformPlaneTarget(D32S8, separate stencil plane, no HTILE) when it holds two publication planes. The depth and stencil samples are read back and retiled exactly as for the three-plane owner; the stencil plane is plane 1 instead of plane 2, and there is no HTILE to expand. Everything else is #13021's publication: the same snapshot, live-range, racing-write, allocation-lease and commit checks, and the owner stays resident afterwards. Owners with HTILE still need three planes, and D16/D32-only owners still throw.Tested
Linux 7.2.11, AMD Radeon RX 9070 XT, RADV (Mesa 26.2.6), Release with tests.
agc_driver_native_depth_publication_without_htile(--publication-without-htile): a uniform-plane D32S8 owner without HTILE, drawn with per-sample depth and stencil, then read by the guest.guest writes raced native multisample depth publication, and the owner stays resident (the depth plane is already committed in the second case).mainwith only the test added, it fails withsample-preserving guest publication of native multisample depth is not implemented for this owner.VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation,ANYPS5_NO_SHADER_CACHE=1,ANYPS5_REQUIRE_VULKAN=1), the 15 tests ofagc_driver_native_multisample_depth_tests(agc_driver_native_multisample_depthandagc_driver_native_depth_*), onmainacf7ac2: withDepthSurface.cppfrommainand the new test, 14 of 15 pass (the new test fails as above); with this change, 15 of 15. Neither log has aVUID-line or "was not found but was requested". The same pair onmain1c8c0ef gave the same result.tools/check_conventions.py: passes.main1c8c0ef + fix(agc): store storage results pending under a multisampled color target before it takes the memory #13963 (fc1dfc0, needed for an earlier stop):compute shader 0x10b4c89700: AGC graphics: sample-preserving guest publication of native multisample depth is not implemented for this owner. The owner is a 4-sample 1920x1080 D32S8 target without HTILE (depth and stencil planes, imported through fix(agc): import a native multisample D32S8 target without HTILE whose planes each hold one value #14005).a native multisample depth attachment over the planes of a host-written owner of another identity is not implemented. That stop is the title binding the same planes at 1872x1056 (dynamic resolution), which a separate PR handles.Checklist
main; no other open PR implements the same functions (feat(agc): publish a written native multisample D32 depth surface to its guest planes on access #9950 and fix(agc): reclaim published native depth owners safely #10469 change the samepublication.size()check for D32 owners without stencil, so whichever lands second has a one-line conflict there)NotImplemented_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)