Repository navigation
fix(agc): sample a cube array over depth surfaces through their depth planes - #12207
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.
|
MarcZX10
left a comment
There was a problem hiding this comment.
The inclusive LAST_ARRAY check accepts only cube face counts divisible by six, and the new fixture covers gathering 12 slices plus rejecting an 8-slice cube. I found no separate defect by static inspection. This branch is 60 commits behind current main; please rebase and rerun agc_driver_depth_plane_guest_layers on current main and the rebased change. As an AGC change, also provide the repository-required paired validation-layer run and confirm the rebased change adds no VUID- errors.
|
Windows + NVIDIA result for head This PR's own tests: Host: Windows 11 26300, Intel i7-12700K, NVIDIA GeForce RTX 2070 SUPER (vendor 0x10de, device 0x1e84; Vulkan loader 1.4.357 from the NVIDIA driver 621.01), Khronos Validation Layers nightly 1.4.366 (b2b44c0d37) through Same focused run on
The tree also carried the open PRs #12298, #12272, #12262, #12256, #12250, #12234, #12228, #12211, #12210, #12209, #12208, all merged cleanly, so the run is a joint one. Not run on a PS5. AI-assisted: yes (Claude Code), the runs and the numbers above are from this machine. |
… planes A cube T# whose last array slice is 6n - 1 is a cube array of n cubes. The depth plane path accepted one cube only (last array 0 or 5) and threw for the rest; it now gathers all 6n slices into the 2D array view, as the texture path already lays cubes out. The refusal message also names the last array slice and the copy format. Uncharted 4's orphanage samples a two-cube D32 shadow array this way. AI-assisted: yes
a63aa90 to
a226b66
Compare
|
Rebased on Rebased on AI-assisted: yes |
|
Checked the |
What
A cube T# whose last array slice is 6n - 1 is a cube array of n cubes. When it lies over a depth surface, the depth plane path (
DepthSurfaceTexture) accepted one cube only (last array slice 0 or 5) and threwsampling the depth planes of depth surface ... is not implementedfor the rest. It now gathers all 6n slices into the 2D array copy, the layout the colour texture path already uses for cube arrays. The refusal message also names the last array slice, whether the view reads depth bits, and the copy format, since the slice count it printed for a cube was always 6.PPSA05684 (Uncharted: Legacy of Thieves Collection) samples a two-cube D32 shadow array this way (last array slice 11) right after Uncharted 4's orphanage chapter loads.
Tested
Arch Linux 7.2.11-zen, GCC 16.2.1, Ninja, Release, on
main3ca715e:agc_driver_depth_plane_guest_layersgainsRunCubeArrayGather: two cubes of depth surfaces over 12 slices, sampled through one cube array T#, each slice read back. WithDepthSurface.cppfrommainit fails with the title's error (... dimension 3, 6 slices, levels 0-0, base slice 0 is not implemented).ctest -j8(this branch together with my five other branches of today, on the samemain): 2619 of 2620 pass;agc_driver_mesh_barycentric_emulationfails the same way onmainon this GPU (the pixel shader did not emulate barycentrics).tools/check_conventions.py --base origin/mainpasses, with onedebt-lengthwarning on the depth plane copies entry this edits (already 2005 characters onmain).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)