Repository navigation
feat(agc): capture selected live storage images without writeback - #11363
oneandonlydean merged 2 commits into
Conversation
MarcZX10
left a comment
There was a problem hiding this comment.
Reviewed exact head a208275b3adf292654c1e4f96a29ed26ed381740.
The direct capture path is opt-in behind APS5_DUMP_STORAGE_GATE; the existing writeback dump remains the no-gate path. I found no blocking issue in the gate, live-image selection, copy/barrier sequence, or layered-volume regression wiring on this inspection. The conventions failure on the initial head was fixed by documenting APS5_TEST_DIRECT_READBACK; I independently ran python3 -I tools/check_conventions.py --base b27cc8416f820e40ce187f165d34138e24373dd7 --head a208275b3adf292654c1e4f96a29ed26ed381740 and it passes.
The author reports baseline/change Vulkan runs of 9/9 and 12/12 across three repetitions, with the validation layer loaded and no VUIDs. I did not independently execute those GPU tests. On the latest head, eligibility, conventions, labels and report checks pass; relinker and product test jobs are skipped by path policy.
|
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.
|
|
A Windows/NVIDIA run, to go with the Linux/RADV one. Windows 11 Pro 26200, Intel Core i5-14600K, NVIDIA GeForce RTX 5070 Ti (driver 610.88), WinLibs GCC 15.2.0 r7, Release. Head
Full |
What
APS5_DUMP_STORAGEcurrently relies on guest writeback, so a clean cached image can remain unavailable for inspection. Add opt-inAPS5_DUMP_STORAGE_GATE=<path>: after the path exists, capture matching live images directly to host memory without changing guest bytes or dirty tracking. Preserve the existing dump behaviour when no gate is configured.Capture is limited to eight addresses per process and 8 MiB of linear storage per image. Files retain the existing pitch/height/VkFormat header followed by first-mip pixels across layers. This is a debugging facility; GPU waits deliberately perturb timing, so captures are not performance evidence.
Tested
Based on main
b27cc8416f8; tested implementation61ba654e904; follow-upa208275b3adonly documents the test switch (no source/test changes). Built the graphics and layered-volume execution test targets in separate Release trees on the same Linux machine.Ran
agc_driver_graphics,agc_driver_layered_volume_draw,agc_driver_layered_volume_vertex_no_gplandagc_driver_volume_direct_readbackindividually withctest -V, three times per arm, withANYPS5_REQUIRE_VULKAN=1 ANYPS5_NO_SHADER_CACHE=1 VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation. Main plus only the new test fixture/registration: existing checks 9/9 pass; new regression fails 3/3 withclean volume image was not exported by direct readback. Change: 12/12 pass. Eighteen actual Khronos layer insertions across both arms, no missing-layer messages, skips orVUID-errors.The regression removes stale output, verifies the closed gate produces no file, then checks the exact header/payload length and every valid texel of a clean 48×16×4 image after opening the gate. Conventions and whitespace checks pass.
pr_overlap.pyreports no direct conflict; local composition with #6959 and #7310 is clean. Reviewed stale shared-file PR patches for changes to the dump selector/capture paths; none duplicate this facility. Windows and other GPUs not tested.Paired logs, build receipts, test-only control patch and reproduction scripts. SHA-256:
983d12d4daecd548f4cc670954b9d771391e86b07fc32b97b28cd88d0ee7ff1a. No title data is included.Independent Windows/NVIDIA validation (SeaSunPT): reported here for exact head
a208275b3integrated ontomaincbaacd2910. Windows 11 Pro 26200, RTX 5070 Ti/610.88, GCC 15.2 Release, Khronos Vulkan SDK 1.4.363: candidate four focused tests and main three existing tests each passed three times, with no skips, missing-layer warnings or VUIDs. The contributor also reports 2451/2453 full-suite passes;agc_host_import_cut_lifetime(#10746) andagc_driver_depth_plane_partial_store(#10664) fail on main too. This is the contributor's run, not a new run on our paused Windows machine.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)