Skip to content

test(agc): support draw profiling in the graphics fixture - #11566

Merged
oneandonlydean merged 4 commits into
boykopovar:mainfrom
B-Howell:codex/submit-graphics-profile-fixture
Nov 5, 2026
Merged

oneandonlydean merged 4 commits into
boykopovar:mainfrom
B-Howell:codex/submit-graphics-profile-fixture

Conversation

@B-Howell

@B-Howell B-Howell commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

What

Extend the mocked Vulkan timestamp-query lifecycle in the AGC graphics test fixture and register agc_graphics_profile_draw so the fixture exercises draw profiling.

Tested

Current-main integration verification: merge commit c6cbfa693601609cb2209fda8b1b5b1fc65c56d4 (tree 5e019e0213794591df8d0e2869aaf7dfd5087796) preserves published ancestry and merges frozen origin/main fdd1753204a4732e1011539cc9d3bb69f70b27a6. The contribution against that main remains only the two test-related files, with 45 additions and 2 deletions. Candidate and baseline production source both use that exact main commit and recursive submodule pins. For a fair paired fixture check, the baseline received a byte-identical test-only overlay of the same two files (SHA-256 values recorded); this does not create a production-code difference or a negative-control result.

Both focused Release builds passed with WinLibs GCC 15.2.0, the same Release/testing options and FFmpeg dependency pin. The baseline and candidate each built agc_driver_graphics_tests and agc_driver_recorder_tests with parallelism 2; no install-rule skip was used.

  • Candidate: agc_driver_graphics passes 1/1 (8.712s) and agc_graphics_profile_draw passes 1/1 (8.781s). These run the enlarged graphics fixture with mocked Vulkan, respectively without and with APS5_PROFILE_DRAW=1; they exercise query-pool lifecycle and profiling plumbing.
  • Pinned-main fixture overlay: the same agc_driver_graphics passes 1/1 (9.496s) and agc_graphics_profile_draw passes 1/1 (9.401s). This is a paired fixture compatibility check on main production source with the test-only overlay, not evidence that unmodified main registers the profile test.
  • Real-device recorder checks pass 2/2 on each arm: agc_gpu_timing_complete and agc_gpu_timing_incomplete. All six invocations ran serially under one exclusive GPU-lock acquisition; no test was skipped, and every individual test ran under 30 seconds.
  • Both real recorder arms selected the same NVIDIA GeForce RTX 4080 SUPER, driver 617.42, PCI bus 0000:01:00.0, on Windows 11 Pro 10.0.26300. They used ANYPS5_REQUIRE_VULKAN=1, ANYPS5_NO_SHADER_CACHE=1, APS5_NO_PIPELINE_JOURNAL=1, VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation, the same pinned local validation-layer package and verbose CTest. Each real recorder arm shows two Khronos instance insertions and two device insertions; neither log has a VUID- message or the requested-layer-missing diagnostic.
  • The two arms show the same loader-warning categories: four notices that VK_INSTANCE_LAYERS adds Khronos validation and two informational lookups where the installed AMD implicit layer lacks vkGetDeviceProcAddr. Mock fixture runs are not used as evidence of real Vulkan layer insertion.
  • Exact source, recursive submodule pins, executables/runtime libraries/shader archives/dependency hashes, registration counts, full logs and JUnit XML were checked and retained in the private qualification receipt. This verifies only the focused fixture and recorder cases; it makes no title, performance, full-suite, combined-other-PR, hosted-CI or upstream-landing claim. Existing approvals remain attributed to their recorded published heads.

Historical published-head b1d/319621 qualification (retained verbatim):

Current-main integration verification: commit b1d83958a3e225477f61fc2ac812a6eb71923398 (verified source tree bdfba15fe64927bf7c3ea8c35a062c166f9f8509), preserving published ancestry and merging pinned main 319621ba2e578bd053b0baba2877fe70520e0737. Both focused Release builds passed with WinLibs GCC 15.2.0, using the same compiler, Release/testing options and FFmpeg dependency pin. The contribution against that main remains only the two test-related files, with 45 additions and 2 deletions.

  • Candidate: agc_driver_graphics and agc_graphics_profile_draw each pass 1/1. These run the full enlarged graphics fixture with mocked Vulkan, respectively without and with APS5_PROFILE_DRAW=1; they verify mock query lifecycle and profiling plumbing. Separately, real-device agc_gpu_timing_complete and agc_gpu_timing_incomplete pass 2/2.
  • Pinned main: default agc_driver_graphics passes 1/1, and the two real-device recorder timing checks pass 2/2. Running main's default graphics fixture with APS5_PROFILE_DRAW=1 fails with the exact control diagnostic AGC graphics: missing Vulkan function: vkCreateQueryPool (CTest exit 8). Main has no agc_graphics_profile_draw registration; the control selects agc_driver_graphics explicitly.
  • All six CTest invocations ran serially on the same machine under one exclusive GPU-lock acquisition; both real-device recorder arms selected the same RTX 4080 SUPER, using ANYPS5_REQUIRE_VULKAN=1, ANYPS5_NO_SHADER_CACHE=1, APS5_NO_PIPELINE_JOURNAL=1, VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation, the same local validation-layer package and verbose CTest. Each real recorder arm proves two actual Khronos instance insertions and two device insertions, with zero VUID- messages, no missing requested validation layer and zero skips. The mock fixture runs do not establish actual validation-layer insertion. Both recorder arms retain the same four environment-layer warnings and two implicit AMD-layer vkGetDeviceProcAddr lookup diagnostics.
  • Exact source, EXE/runtime-library/shader-archive/dependency hashes, registration counts and complete logs/XML were retained and checked before/after collection. This qualification applies to the pinned main and source tree above. It establishes focused fixture behavior, with no title, performance, full-suite, combined-other-PR, hosted-CI or upstream-landing claim; existing approvals remain attributed to their recorded published heads.

Earlier published-head evidence (historical pins and qualifications retained):

Windows 11 Pro 10.0.26300; MSYS2 UCRT64 GCC; NVIDIA GeForce RTX 4080 SUPER, driver 617.42. The retained baseline receipt is b9c30ee; its build and both GPU timing tests passed. Final candidate 1e38ada is based on main da1d222. The only intervening AGC-file change is PCH wiring for execution-test targets, outside these focused graphics/recorder targets, so the baseline was not rebuilt. Baseline agc_driver_graphics passed; with APS5_PROFILE_DRAW=1, it failed as expected on missing mock vkCreateQueryPool. On the candidate, agc_graphics_profile_draw, agc_driver_graphics, agc_gpu_timing_complete, and agc_gpu_timing_incomplete passed. The Vulkan validation layer loaded from VkLayer_khronos_validation.dll; validation reported 0 VUIDs and no requested-layer-missing warning. Builds used CMake's CMAKE_SKIP_INSTALL_RULES=ON to skip unused install/export generation without changing compile, runtime, ABI, or unwind settings. Mock timestamps verify query lifecycle and profiling plumbing only; they are not real GPU performance evidence.

Checklist

  • Based on current main; no other open PR implements the same functions
  • One topic per PR; follow-ups go in a new PR
  • No comments in code except technical debt
  • Unimplemented paths throw (NotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file
  • No notes, investigation .md files or images added to the repository (attach them to this PR)
  • New third-party code is a submodule built from source
  • Generic behaviour, not specific to one title
  • Depends on: none
  • Fixes: none
  • Unblocks: none
  • GPUs tested: NVIDIA GeForce RTX 4080 SUPER, driver 617.42, Windows 11 Pro 10.0.26300
  • AI-assisted: yes

2026-10-31 test-registration split follow-through

Candidate 9d7892e7f91aca9a29790f401bd7638e77e9d01f (tree 27573dbc13fa89a250bee1c2690baa9d753e7a1a) is an ordinary merge of published c6cbfa693601609cb2209fda8b1b5b1fc65c56d4 with frozen main 613f9b8edf056318b14ff96fe3aceda59a419323, which contains the landed #12862 registration split. The only resolution moves this PR's profile-test registration and properties into tests/cmake/agc_driver_graphics_tests.cmake; the mock timestamp source is retained. Against that main, the contribution remains two test-related files, 45 additions and 2 deletions. This is a frozen-main qualification, not a claim that the remote tip cannot advance.

Windows Release/Ninja with WinLibs GCC 15.2.0 r7: both focused graphics-target builds passed, with at most two compiler jobs. The same cache/options, recursive dependency pins and existing FFmpeg package at pin 9ac4cfd195f1 were used for both arms. Generated CTest metadata preserves all 3,200 baseline registrations and adds exactly one agc_graphics_profile_draw, including its profiling/no-shader-cache environment, skip code 77, 60-second timeout, source working directory and Windows runtime-library path.

  • Frozen main: default agc_driver_graphics passed 1/1 (14.31s). With APS5_PROFILE_DRAW=1, that same registered test failed with the specific control diagnostic AGC graphics: missing Vulkan function: vkCreateQueryPool (CTest exit 8, 0.94s). Main does not register the new profile test.
  • Candidate: agc_driver_graphics passed 1/1 (13.69s), and agc_graphics_profile_draw passed 1/1 (14.13s). All four executions were serial, with no skips; these are mocked Vulkan fixture checks, not real-device timing or performance measurements.

The preceding real-recorder/GPU results remain historical at their stated source/binary pins, including c6cbfa versus fdd175; they are not retargeted to this candidate. No new GPU, title, Linux, full-suite, hosted-CI or upstream-landing result is claimed. Compiler warnings are retained, not described as resolved. The initial configure's FFmpeg certificate-download failure was retained; configuration used the repository-supported existing same-pin package instead of disabling TLS verification. No source workaround or dependency change was made.

@github-actions

github-actions Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

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.

Pull request Shared files not compared
PR 1395 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 4040 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 5925 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 6194 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 6235 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 6280 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 6481 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 6804 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 6808 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 7085 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_graphics_tests.cmake
PR 7256 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 7410 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 7642 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_graphics_tests.cmake
PR 8246 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 9020 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 9335 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 9356 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 9387 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 9675 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 9748 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 9897 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_graphics_tests.cmake
PR 9915 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 10049 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 10193 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_graphics_tests.cmake
PR 13486 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 13928 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_graphics_tests.cmake
PR 13929 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_graphics_tests.cmake
PR 14032 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_graphics_tests.cmake
PR 14944 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_graphics_tests.cmake
PR 15548 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 15570 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 15840 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp

@oneandonlydean oneandonlydean self-assigned this Oct 26, 2026

@MarcZX10 MarcZX10 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed exact head 1e38ada86ffa741c36f817c1c92102875fb66f22; no actionable findings. The mock query-pool implementation bounds-checks reset/read indices, returns VK_NOT_READY until all requested timestamp queries are populated, and writes 64-bit results using the requested stride. The new test registration opts into profiling and disables the shader cache; the report correctly distinguishes mocked lifecycle coverage from real GPU performance evidence. The author reports the focused Windows GPU and validation-layer runs passed with no VUIDs; hosted eligibility, conventions, intake, labels and relinker checks pass, while unrelated product jobs are skipped. I did not rerun the Windows GPU test locally.

@MarcZX10

Copy link
Copy Markdown
Contributor

Correction to my review summary: the hosted relinker and ASan jobs were skipped, not passed. Eligibility, conventions, intake, labels and progress-report checks passed; product jobs were also skipped. My approval is based on the diff review and the author-reported Windows focused run, not hosted relinker results.

@github-actions github-actions Bot added build agc libSceAgc* labels Oct 27, 2026
@B-Howell

Copy link
Copy Markdown
Contributor Author

Additional local verification at unchanged head 1e38ada86ffa741c36f817c1c92102875fb66f22:

  • WSL Ubuntu GCC 11.4 relinker-only build completed; the four focused relinker/input-magic tests passed.
  • A separate Debug build with ANYPS5_ENABLE_ASAN=ON passed those same four focused tests.
  • Windows MinGW-w64 GCC 15.2 built the graphics and recorder test targets. agc_graphics_profile_draw passed. This fixture uses mock Vulkan, so that result is not evidence of a real validation-layer run.
  • The separate real-Vulkan agc_gpu_timing_complete and agc_gpu_timing_incomplete tests passed on an RTX 4080 SUPER. These are additional focused checks, not a replacement for the PR's existing paired graphics evidence or a complete test-suite run.

The hosted relinker and ASan jobs remain skipped; these local results do not change that status. No source change, game-performance claim or new push accompanies this update.

AI-assisted: Codex (Luna execution, independent evidence review).

@B-Howell

B-Howell commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor Author

Manual follow-up to the overlap warning in #issuecomment-6427054960, for this PR at 1e38ada86ffa741c36f817c1c92102875fb66f22.

I had posted test results without completing this requested review. I have now inspected the complete patches for both shared files in all 66 listed open PRs. Candidate heads were rechecked after review and were unchanged.

Exact reviewed candidate heads and dispositions:

PR Head Shared-file assessment
#1368 42d1193c467f Separate recorder executable and its test/property list. No timestamp-mock or profile-test duplication.
#1395 cedec6e1d576 Different graphics-state test functions and recorder build target; no shared mock query functions. Its default-main tests will also run under the profile CTest, so it can add work to that suite.
#2434 aae40a8d2def Independent test target/link dependency.
#4040 366c6e4148c0 Different function and behavior; profile CTest's no-argument invocation will include this default-suite test.
#4449 1f7640bad241 Separate targets/source lists.
#5021 151294f979ab Broad build/platform configuration edits, but no change to the profile CTest declaration, its property list, or mock fixture. Build-configuration interaction is possible if combined; no duplicated behavior identified.
#5371 273e2695e4df Separate image-sampling test and environment.
#5925 3339ddd3af77 Related test infrastructure, but no same mock query-pool function or timestamp state. Its configure-time agcRegisteredTests environment append would also apply APS5_NO_PIPELINE_JOURNAL=1 to the new profile CTest; this is compatible but means the profile run inherits that setting. Pipeline mock behavior is a fixture-level interaction, not a duplicate implementation.
#6182 f3311422d82d Different recorder test/property list.
#6185 1dea194b7a09 Separate shader and recorder tests/property lists.
#6186 13d09412b4ac Separate shader and recorder tests/property lists. No profile mock overlap.
#6187 a049317f3e4d Separate recorder tests/property list.
#6188 aa699de9126d Pipeline source and explicit lookahead tests; no shared mock methods in this patch. Same general graphics test target for one CLI test, but no duplicate profile implementation.
#6192 2d030407eb8f Separate recorder tests/property list.
#6194 8bb130068023 Independent storage-budget logic. It is part of the default graphics test suite and therefore runs under the profile CTest.
#6209 b00f936b31fe Separate recorder tests/property list.
#6235 911920f04450 Different export-state tests and functions; default-suite additions will run under profile CTest.
#6280 0e1f2ab53b59 Same graphics-test executable and default suite, but a separate test source/function; no mock query-pool overlap. It adds work to the profile CTest.
#6300 c11074be82d8 Separate agc_driver_native_multisample_depth_tests property list; not the profile CTest list.
#6412 c050c17557af Separate shader-memory test/property list.
#6481 1be24da14e8a Same graphics-test executable/default suite, but a distinct validation test and dispatch. It will execute in the profile CTest's no-argument run; no duplicate mock timing code.
#6548 89fb35adf1cf Closest structural overlap: both patches add separate members/behavior to MockVulkan and extend its mock function table/test use. Candidate changes host-memory import bit selection; #11566 changes timestamp-pool storage and timestamp functions. No duplicate field or function. Same-struct insertion could require manual merge placement; semantic implementations are independent.
#6743 b3ce8e1bd9ef Separate CTest property on a different test.
#6804 705f916e7a16 Separate state-decoding test; included in the profile CTest's default suite.
#6808 734edb5c279d Different native test list and multisample calculation; no mock timing overlap. The Graphics.cpp addition is part of the default suite.
#6970 438978e2a4dc Independent test type correction; no timestamp or MockVulkan overlap.
#7048 730c721773cd Separate recorder test/property list.
#7256 5589752147fe Separate state-decoding functions; included in the default profile suite but no shared mock calls or behavior.
#7275 2934c1bf9587 Production source-list addition, independent of the test CMake hunk and mock.
#7457 bef945671ea8 Separate recorder tests/property list.
#7464 b30eec4e8508 Separate label-wait executable and property list.
#7514 61a91de9bb6f Separate range-index target/test.
#7604 0e5269cceea6 Separate recorder/storage tests and property lists.
#7642 67c1aea6b83e Device-image-table/heap CMake source generators and heap test variants; Graphics adds pooledBufferAddressTests and an argv-only main branch. Same MockVulkan instance is reset in that new test, but no struct/query/timestamp/mockProc implementation is edited. No dependency on profile-draw implementation established.
#8395 f4a27403bfb7 ShaderStageTests changes fast-launch primitive-type acceptance and refusal wording. Existing default graphics checks change, but timestamp/query mocks and profile registration are untouched.
#8484 b57c5be9da28 Adds four agc_gpu_single_upload recorder test modes and their Windows PATH setup. Distinct recorder test registrations, not agc_driver_graphics_tests/profile-draw.
#8542 cb2ba9969359 Adds zstd include path and Linux --exclude-libs to libSceAgcDriver. No graphics mock/query or profile-test registration change.
#8592 16dab33e389a Adds Windows-only shader-signal-deferral executable/test at CMake end. Separate executable; no profile fixture replacement.
#9020 5f7287406a06 float11_11_10TargetTests replaces unsupported blend/partial-write expectations with merge/serialization/cache-key/SPIR-V checks; adds GLSL header and packed-float target include setup. Default fixture coverage changes, not timestamp infrastructure.
#9335 976fc9c3e53e unorm4_4_4_4TargetTests adds late-test split assertions; carries float11_11_10TargetTests changes also seen in 9020; adds two distinct late-test counting registrations. Cross-candidate shared ancestry is not duplication of 11566.
#9356 f49a25ae9f03 meshArgumentTests enables meshShader in its mock context and adds compute-fallback/layer-limit/subgroup refusal cases. No mock query dispatch changes.
#9387 73641399d35d Graphics patch is the same meshArgumentTests payload as 9356, carried with mesh fallback work. Candidate-to-candidate shared payload; no 11566 implementation duplication.
#9489 7a5dd181fd76 DepthBoundsBiasTests validates wideLines feature, line ranges/granularity and zero width. Default validation assertions change, no timestamp mocks.
#9508 6275369b6ccc Descriptor-heap CMake source generators/test variants and pooledBufferAddressTests argv branch. Same unrelated pooled-buffer helper as heap candidates, not timestamp support.
#9675 f6f04e92a879 Adds gcnColorSliceTests plus its default main call and decoder header. Profile-draw executes this added PS4 slice validation after integration. No query/mockProc replacement.
#9700 802f23b93024 Adds eqaaColorTargetTests/default main call, adjusts multisampledDepthTests refusal, and eqaa target includes. Fixture coverage expands; timestamp mocking remains independent.
#9712 4e93e34d8e09 Adds snapshotMemoryTests/default main call and separate recorder input-memory registration/PATH list member. Fixture exercises memory-property selection, not query-pool implementation.
#9748 16a82db7af80 unorm10_11_11TargetTests gains blend/write-mask checks; carries float11_11_10TargetTests/GLSL header changes from 9020 and packed-blend include setup. No timestamp implementation overlap.
#9852 e13cd744802c Adds atomic-pass-split recorder execution variant and its own properties. No graphics profile test registration change.
#9892 545e2b5b3f83 Adds separate GcnColorTarget executable/test and link/include/PATH configuration. No shared graphics unit fixture implementation change.
#9897 7ecf14ef1240 Adds vertexRangeBindingTests (default main and argv), its ShaderMemory extent registration, and Windows test-list member. New test creates Recorder against mockContext, resets mock and Syncs; important combined APS5_PROFILE_DRAW coverage interaction, but no timestamp/query/mockProc duplication.
#9898 0a08a3b019cc Adds recorder stored-bytes test and expands recorder Windows PATH test list. This is not the command-batch/profile graphics-test property list touched by 11566.
#10049 6d3bc5e2a134 ResourceContentKeyTests adds imageRead flag to packed-flag mutation checks. Default fixture assertions change, no timestamp infrastructure.
#10193 7880ded9daac Carries device-image-table/heap CMake blocks plus pointer/runtime-address column tests and pooledBufferAddressTests argv branch. Repeated heap ancestry across candidates; no 11566 duplicate.
#10194 f2deb238a43e Adds MemoryAccounting production source, buffer-pool/deferred accounting tests and memory-accounting execution test environment. Separate targets/tests; not profile-draw test.
#10233 a463aacbc5da Replaces native-FMASK single registration with samples=2/8 loop and corresponding Windows setup. Separate execution target.
#10333 e3e47a939c27 Adds repeated-neighbour-stores recorder test/Windows setup. No profile fixture/mocks touched.
#10359 41c4ec81a314 Adds indirect-instance-input late-fallback/verify/fallback-key/uncached test loop. Distinct executable and names.
#10435 cedf987d5ba4 DepthStencilTests adds GCN HTILE sizes/fill coverage and decoder include. Default fixture coverage changes; no timestamp/mock changes.
#10442 77fe6e4d65af Links same-queue-label test with libkernel and registers cpu-label-wake. Separate executable, no profile fixture.
#10757 bdca440d390c Adds unmasked/unrecycled ShaderMemory snapshot-reuse variants and expands their PATH list. Different list from graphics command-batch/profile list.
#10920 e04a7ecf48b0 Sets VK_ENABLE_BETA_EXTENSIONS on BdaDevice/PerformanceOverlay/PresentationPass/Recorder and specified execution sources. Does not name tests/Graphics.cpp and does not register profile-draw. Platform enabling may aid separate real-Vulkan tests but no required dependency shown.
#11351 022565f9f060 Adds Float16ConversionProbe source and separate SPIR-V verification test. No graphics query mocks/profile registration change.
#11554 91382605720d Adds VK_ENABLE_BETA_EXTENSIONS specifically to Execution/src/VulkanDevice.cpp. Platform runtime-loader work is not a replacement for the mock profile fixture; no dependency proven here.
#11557 42eadf59df79 Adds PackedMerge shader generator/StagedMerge source; unorm4_4_4_4TargetTests switches partial multisample semantics to staged target and tests guest-rate inputs. Default fixture assertions change, not timestamp/query infrastructure.
#12051 f5cf0db16c28 Adds six ShaderMemory table-column memo diagnostic/profile variants. Some use APS5_PROFILE_DRAW but run agc_shader_memory_tests, not the graphics mock fixture; distinct test names.

AI-assisted: Codex (manual comparison by Luna and independent review, consolidated evidence check).

Bounded October29 new-overlap supplement

This supplements the historical66-row manual review. Bot6427054960 is frozen at2026-10-29 22:28:02Z:74 current rows equal66 historical IDs minus17 removed plus25 added. Removed rows remain historical; changed retained heads have not all been refreshed. This review concerns the existing #11566 timestamp mock/profile fixture contribution, without retargeting old approval or test evidence.

I read complete listed shared-file patches for the25 new candidates below. #12862 omitted its large CMake API patch; I reconstructed it from immutable merge-base ba5b5330b37724bca4b99f30faab504653635a04 and head contents. Git diff additions/deletions exactly match GitHub145/3571; the added graphics fragment was also inspected.

New candidate Reviewed head
#6905 f41aa959863fd49eb84c33f3e34131ac67bc032c
#6987 e898f5debd557ab50a319fa384917423b4e6b3b7
#6989 847dca32a950240f2a38f674a765324b1e91b06e
#6995 094991161c8a8602abe45114920c6c223a2500e4
#7002 94e63a0857a3689aa5d1c33fb86039f340b128ea
#7689 717eabfe5a3c9a0a37d3917b0352b43ccd43abf3
#8014 d00d8ba52e1256457df24567bbfafddcfce94ee4
#8246 db12f5d6fb25bd009d2cabd3a9f0741fa8b7db66
#9533 6eb141ce5fc9624833a5e05aa42f9f1a2e5fa4d0
#9717 defd4107611653abe91988a8a6aa9cf1eca33a16
#9742 f8af4b2173eb7f02ccf91c0d5505be5826e8ef8b
#9899 9b4e692d70b7726a207ee78b778b6b4f604e4eb3
#9915 1749190ad04bebffa6e6af7e2e1a87e7cd55b555
#10026 8b14bde3ca1c256413582b8ec2d7d88889d560cd
#10472 fb8c3ee7ad49cda6dded674627b6dddcfddbe8f5
#11444 fc5679f3ea7eca5216289cc4d6199570c1a89f0e
#11551 5a15547d3950be8f804f0d973edaf1a7b8ab491f
#12070 3b3cd7377fa40e6d98828bfcbf877feca04fe96a
#12120 badf4cd6df76c8b7a39d8facac0274780b791e7a
#12348 da44162ea676998268403fc44083e97c105a0278
#12567 79d7617af20f9d8c0c93e46489d481b5a21ce733
#12568 c184a964810dd619272d60ca33cc29828d062ff7
#12828 cd4d01c4429b7939dd4aabedced22e37b6766857
#12862 b137f38f80c71956e33d298676b3aef551ff6997
#12904 c9c8a50e0c3af92aa14e6432a1b00bf5b3806c9b

Concrete integration findings:

This is complete new-row shared-file source review, not a clean pairwise merge, combined build/test, author-order agreement or all-current-rows clearance. Retained-head drift and pre-existing manual obligations remain pending. Marc's approval body still names historical 1e38ada; a retargeted REST commit field does not make it current-head approval. No game, rendered output, performance or new GPU result follows.

AI-assisted: yes (Codex).

Bounded later bot-row update

The bot's later snapshot at 2026-10-29 22:59:53Z lists 70 candidates. Compared with the previously reviewed 22:28 snapshot, #12702 entered and #9533, #9717, #9742, #12567 and #12568 left. Compared with the historical 66-ID table, the current table has 21 newly added rows and 17 removed historical rows. The earlier 25-row source supplement remains bounded to its reviewed heads; a row leaving the warning does not erase that review or prove integration.

The complete shared CMake patch for #12702 at 4378b67efda2d2b0af5483bc803905541521ee0c adds 32 lines and removes 2. It adds PadStatusOverlay.cpp to the driver sources, a separate agc_pad_status_overlay_tests executable and four agc_pad_status_overlay cases, with their own ANYPS5_PAD_STATUS values, timeout and Windows runtime PATH. These hunks do not replace agc_graphics_profile_draw or the timestamp mocks. Preserve both registration and property sets when composing the shared CMake file; this patch has no duplicate profile-query implementation.

The refreshed #12904 head is 21d35f06c34d8d60f3e1ef2cb712bf372f5afe85. Its complete shared CMake patch is identical to the reviewed head c9c8a50e0c3af92aa14e6432a1b00bf5b3806c9b after normalizing only the hunk offset from 4273 to 4299. The same 17-line sampler_parameter_bounds executable/test registration, 20-second timeout and Windows libc PATH remain; no profile registration is removed. This refresh covers that shared hunk only, not whole-PR source or runtime acceptance.

This is bounded shared-file source review against #11566 c6cbfa693601609cb2209fda8b1b5b1fc65c56d4, not a pairwise merge/build or runtime result for #12702. Retained candidate-head drift and existing integration/author obligations remain pending. No all-current-table clearance or new author agreement is claimed.

AI-assisted: yes (Codex).

October 30 — additional skipped shared-source review

This addendum pins #11566 at c6cbfa693601609cb2209fda8b1b5b1fc65c56d4. The 02:27:58 UTC capture of bot comment6427054960 lists 84 skipped candidates and 100 shared-file pairs. Relative to the earlier 70-row snapshot, membership changed by 15 additions and one removal. Comparison with the published review union identified the twelve additional candidate/shared-file scopes below; older reviews retain their original pins.

Here Graphics.cpp means core/libs/prx/libSceAgcDriver/tests/Graphics.cpp, and CMakeLists.txt means core/libs/prx/libSceAgcDriver/CMakeLists.txt.

Graphics and fixture scopes

  • fix(agc): render layered mesh targets within device limits #6959 at 72e86ff5d3259c19500cb4650d7863104f0abc1d: complete shared CMake patch +11/-2 (2 hunks) adds agc_driver_layered_volume_mesh with the existing vertex cases’ no-cache/skip77/timeout30/Windows PATH properties, and a separate agc_shader_layer_specialization_release shader-memory selector with its own no-cache/timeout60/PATH. Complete Graphics.cpp patch +25/-11 (2 hunks) extends pipeline-journal recipe/key checks for mesh base/count plus partial-write masks, and rejects both older journal formats10/2. It does not edit our four timestamp resolver entries, timestamp storage/reset implementation, or agc_graphics_profile_draw registration/profile environment. Preserve those additions together with both journal changes and the candidate-specific test properties; do not broaden the profiling environment to unrelated cases. These are distinct shared-fixture changes at test(agc): support draw profiling in the graphics fixture #11566 c6cbfa693601609cb2209fda8b1b5b1fc65c56d4, not a pairwise merge/build/runtime result or approval of fix(agc): render layered mesh targets within device limits #6959’s production behavior. Retained rows/heads and author-order obligations remain outside this row.
Candidate / frozen head Shared-source findings and preservation requirements
#7844 89d6a7caf7ce9aad1d3e5f3d6e33a008e0fab083 Graphics.cpp: +4/-2, 1 complete hunk in hostImportBudgetTests. Changes the 16/32-GiB host-heap expectations to reserve 4 GiB and adds the 15911-MiB case; no timestamp resolver or profile-registration change. The default fixture calls this function, so retain these assertions alongside #11566's timestamp-pool lifecycle, bounds/readiness checks and four resolver entries. Keep the profile CTest's no-argument command/environment; do not bypass the default budget assertions in profiling mode. Its production budget implementation is outside this shared-file scope; no composed runtime result or dependency/order conclusion.
#8874 9f226879bc5e9bd488022746b47dbaf714ec05d5 CMakeLists.txt: +22/-0, 3 complete hunks; Graphics.cpp: +21/-0, 1 complete hunk. Adds ReferenceStorage to AGC sources, its separate CPU target/registration and the agc_heap_mirror_reference_size selector registration. The new --heap-mirror-reference-size branch resets the mock, checks reference-buffer behavior and requires zero live objects; it only returns early for that exact argument and does not replace the default no-argument fixture. Preserve its source/target/selector/Windows runtime-path wiring and #11566's distinct profile registration plus four timestamp resolver entries. Keep mock reset/query ownership coherent; these patches do not alter those owned timestamp functions. Production recorder/reference-buffer behavior is outside this scoped review, and neither clean integration nor mock/real-recorder runtime compatibility is established.

Nine build-file scopes

Nine additional CMake-only scopes, pinned against #11566 c6cbfa693601609cb2209fda8b1b5b1fc65c56d4. All nine remain open; primary before/after heads and bases match. Complete core/libs/prx/libSceAgcDriver/CMakeLists.txt patches validate 126 additions / 3 deletions across 13 hunks. These rows are source preservation dispositions, not whole-PR, runtime, merge-order or dependency clearance. The captured84-row bot report remains the wider context; this batch covers only these nine shared paths.

Keep all four #11566 selections: default agc_driver_graphics; agc_graphics_profile_draw with cache-off + APS5_PROFILE_DRAW=1, skip77/timeout60/source workdir; and recorder --gpu-timing-complete-only / --gpu-timing-incomplete-only with APS5_PROFILE_GPU=1, skip77/timeout15. Retain each Windows libc PATH modification, the generic default registration and existing graphics/recorder target-source/link/unwind/testing wiring. No selected patch removes these selector contracts; #9884 adds another case on the same recorder executable, whose non-CMake implementation is outside this review.

Candidate / frozen head Complete CMake +/- (hunks) Concrete preservation action
#1896 2850af2c926ed735fd85a94ab30b150bc17367d2 +8/-0 (1) Adds eight indirect _items variants. Retain all eight command/target pairs, cache-off + PIPELINED_DRAWS=1/PIPELINE_INDIRECT=1, skip77/timeout60 and Windows libc PATH; keep our profile/timing env separate.
#9884 52a861028e91031a5ed68e844a763a085ee01e90 +6/-1 (1) Adds recorder agc_snapshot_read_into_staging plus its Windows group entry and seven test-local environment unsets. Union the Windows recorder property list; retain --snapshot-read-into-staging-only, skip77/timeout30 and APPEND unsets only for the new case. Keep both GPU-timing commands/PROFILE_GPU=1/timeout15 and profile-draw registration.
#10043 51655586c53136a42524e17af0ef83771ee72def +24/-0 (3) Adds Easu/Rcas glslang/embed header commands, PresentationUpscaler.cpp production source and an FSR presentation test. Preserve generated-header list/dependencies (two FSR headers + glslang target), new production source and --fsr test/cache-off/skip77/timeout30/workdir/Windows PATH. Retain our graphics/recorder library links and separate profile registration; this changes build inputs, not a proven runtime compatibility result.
#10064 e15613356dac12fabf548fc53be05e2c5722a9b2 +8/-0 (1) Adds an 18-case committed-volume/array registration loop. Retain hyphen→underscore test naming, exact --${agcCommittedCase} arguments, cache-off/NO_SAMPLED_FROM_STORAGE=1, skip77/timeout60/workdir/Windows PATH. Do not transfer these per-test settings onto our four cases.
#10492 1e89154aca7c63626c5a5b67805eed62a0762fde +7/-1 (1) Adds three native-depth publication variants and extends the retirement Windows PATH group. Keep three named commands and per-case PIPELINE_DISPATCH/DRAW_PIPELINE APPEND env, skip77/timeout30/workdir. Preserve old retirement entry. If also composing10497, unify the three shared names once rather than duplicate add_test calls; no author-order claim.
#10497 8a0dcd5af978ee26df6f53cb6ae30ee8eec0fddb +10/-1 (1) Adds those same three publication variants plus two attachment/sampled feedback variants. Preserve all five commands and Windows PATH recipients; feedback and publication timeout30/cache-off/skip/workdir, item dispatch and cached-draw APPEND env. Dedupe shared10492 names if both are composed; retain the two additional feedback cases.
#10846 0a2cf640287055ca9760488d3e880be4956ecd1c +33/-0 (3) Adds spanned-wave target/policy+guard, 11 image-table cases, and guarded image-table SPIRV-Tools definition/linking. Keep new target include dirs, shader_recompiler/libc links, unwind/testing participation, exact case args and refusal APS5_SPANNED_WAVE=yes/cache-off; retain per-test timeout30/workdir/Windows PATH and conditional SPIRV-Tools-static wiring. This is ONLY33 CMake additions; no12250/cache-codec or other-path review is reused.
#11442 39c8af55c0f4b3051a08e99a1fefe746aa494b45 +1/-0 (1) Sets queued-shader-calls cache-off/pipelined-draws8/timeout30 properties. Keep that existing queued-shader case’s targeted property override; do not broaden it to default graphics/profile/timing cases or replace their environment.
#12324 7a8da113db96ef882b362d52af10e10ee08a9773 +29/-0 (1) Adds two shader-recompiler/libc-linked targets and three bitwise/single-lane tests. Retain both targets/unwind/CXX_EXTENSIONS/testing inclusion, default and OFF variants with APS5_NO_SINGLE_LANE_RULE=1 only on OFF, cache-off on both single-lane cases, and Windows PATH. Keep our own target links/registration/settings; no runtime or test-duration claim.

No source/cache/build/ref/public changes or new tests were made. No new implementation prerequisite or author agreement is inferred from these CMake changes. Actual future compositions still require their own source/build/runtime review where relevant. #10492/#10497’s duplicate registration names are a concrete merge-preservation detail, not an invented order requirement. #10043’s generated shader/library sources must remain in the build graph; their external implementation/dependency compliance was not reviewed here. #10846 receives no clearance for codecs, shader/resource semantics or any other path from the unrelated #12250 work. No claim is made about all84 rows.

The removed #12904 entry is not evidence of landing or compatibility. This addendum does not refresh every retained candidate head or clear the whole 84-row table. It records shared-source preservation requirements only: no combined build, GPU/runtime, performance, console, author-order or implementation-dependency approval is inferred. Existing #11566 runtime results retain their tested commits and environments.

AI-assisted: yes (Codex).

Five moved-head shared-source follow-ups

Following the twelve-row supplement, I checked the five moved heads identified in the retained-row metadata pass against #11566 c6cbfa693601609cb2209fda8b1b5b1fc65c56d4. All eight current shared patches have complete addition/deletion and hunk-span proofs. Each candidate head and our head stayed unchanged on the post-read primary metadata check. This is a fresh bounded source comparison, not a retargeting of historical tests or approvals.

Candidate / current head Actual scoped delta and preservation action
#7642 ba06ceb133dbf98786d7d5ed0d8b9e9f7e1fbb81 CMake +204/-7 in19 hunks; Graphics +44/-0 in2. Against reviewed 67c1aea6b83e15cf83c9c3a39879044a7e33c7c8, the pooled-buffer helper/argv-selector additions are unchanged, but CMake additionally wires heap-walk memo, DescriptorHeapObjects into the allocation-failure target, heap-view coverage and related runtime-path/registration lists. Preserve these alongside addressed shader generation and existing heap variants. The helper resets the mock, reuses a pooled allocation and checks its device address/lifetime; it runs only for --pooled-buffer-address, not the no-argument profile run. Keep our timestamp ownership/reset/four resolver entries and separate profile registration. Preserve the generic default-graphics registration and per-variant heap environments; the added heap-variant lists do not include the graphics/profile test. Retain the global journal-disable append, including its separate GPU-heap journal exclusion, without spreading heap/profile environments between cases.
#9700 1c1de36955cdc7b114dba1b44d80ab78da3c5d87 CMake +2/-0 in1 hunk; Graphics +84/-1 in3. Versus reviewed 802f23b930245103e3e9b410c266886055367456, current source drops the older four-line case that set `context[0x31c]
#10049 3974b129210dba38f03ef58315afe3fea9cb1aab Graphics +2/-2 in2 hunks. The scoped changed lines match reviewed 6d3bc5e2a134633b85c0469efc4a2b3078bed476: seed imageRead in the image flag vectors, then flip its last packed flag to require a different resource-content key and restore it. Actual default main calls ResourceContentKeyTests(false), so retain both loops/checks in the no-argument profile workload. They do not implement timestamp mocks. No cache-file review from another PR is substituted for this Graphics scope.
#11557 d49ec0237bd7d8b64bfaae5d7493063d7d3c82d7 CMake +15/-0 in3 hunks; Graphics +21/-19 in3. Scoped changed lines match reviewed 42eadf59df7901d49b1b4c1c3c3700acaff392b2. Preserve PackedMerge generation/header and StagedMerge source wiring. Actual unorm4_4_4_4TargetTests now checks the R32_UINT staged temporary, guest-rate input acceptance and conversion back to the packed target for explicit in-shader merge checks; its default-main call remains. Preserve those assertions and our timestamp/profile plumbing together; default/profile workload and compiler behavior require qualification on an actual composition, not inference from unchanged patch lines.
#11351 2b25bd1641812f1c39d5c664524eeaf89412a4fc CMake +6/-0 in2 hunks. Scoped changed lines match reviewed 022565f9f06088e57471c220e71f6f8bf5e6569a: add Float16ConversionProbe production source and its separate --verify-spirv registration with no-cache/project-directory/Windows PATH properties. Retain that wiring and its environment scope alongside the distinct profile registration. No Graphics/timestamp implementation is supplied by these hunks.

These five prior reviews were originally pinned to target 1e38ada86ffa741c36f817c1c92102875fb66f22. Across the retained72 provenance,52 originated at that historical target,19 at b1d83958a3e225477f61fc2ac812a6eb71923398, and the later #12702 scope at c6. The other67 candidate head pins match their saved metadata; their existing assessments and target/runtime limits remain, without an automatic67-row re-review requirement. No whole84 clearance follows.

This source review identifies concrete preservation work for a later composition. It does not establish a clean pairwise merge, combined build, mock/real-GPU runtime, performance, console result, production correctness, author agreement or implementation dependency/order. Existing CI, review and coordination obligations stay separate.

AI-assisted: yes (Codex).


Bounded graphics shared-source follow-up

Owned #11566 remains c6cbfa693601609cb2209fda8b1b5b1fc65c56d4. This follows only the captured05:35 bot membership/path delta and the exact selected paths below; retained rows and historical test/review pins are not refreshed or cleared. No build, runtime, combined merge, foreign implementation, author order/dependency agreement or whole-table readiness claim follows.

Candidate / frozen head Selected shared path Preservation disposition
#6501 63555394784d60204669acaa94c66f8bec45feb2 core/libs/prx/libSceAgcDriver/CMakeLists.txt Adds agc_driver_pipelined_sample_dump_drained using the existing pipelined dump executable, ANYPS5_NO_SHADER_CACHE=1 plus APS5_PIPELINE_DRAIN_SAMPLE_DUMPS=1, skip77/source cwd and Windows libc PATH. Preserve this independent drained variant alongside our default graphics/profile and complete/incomplete timing registrations. Do not leak its drain environment into our profile/timing cases or replace our test arguments, working directories, skip properties, timeouts or Windows PATH. Source scope is registration only, not asynchronous query/dump correctness or performance.
#9020 237ede9d92912cbbb7501aa6b631018bc443251a core/libs/prx/libSceAgcDriver/CMakeLists.txt Adds the shader_recompiler_agc_driver INTERFACE include path to agc_driver_packed_float_blend_tests. Retain this target-specific include once while preserving our profile registration and Windows libc PATH extension; it is not a replacement for graphics_tests timestamp mock wiring. Unshared build/fixture implementation is not approved.
#9020 237ede9d92912cbbb7501aa6b631018bc443251a core/libs/prx/libSceAgcDriver/tests/Graphics.cpp Adds GLSL450 include and expands float11_11_10TargetTests from refusals into packed/layered merge checks: serializer roundtrip, interface-key slice separation, array/layer/clamp/interlock SPIR-V structure and remaining unsupported blend/multisample cases. Keep these state/serializer/key expectations and the GLSL header, separately from our MockVulkan timestamp map/counter and create/destroy/reset/write/results handlers/resolver entries. Retain bounds/NOT_READY and 64-bit result checks and the profile-draw run path. Render-target array clamp does not validate our timing fixture or establish foreign GPU semantics.
#9335 829eb0d216da752f919e31dad3f7300f3c23afa2 core/libs/prx/libSceAgcDriver/CMakeLists.txt Retains the same packed-float include and adds counting-pixel/counting-vertex late_test_merge_split registrations on the existing executable, no-shader-cache/skip77/30-second/source-cwd/Windows PATH properties. Dedupe only the shared packed-float include if composing9020 as well. Keep both distinct counting selectors and their properties while retaining our four selectors/profile environment and mock timestamp interface. No whole foreign source or count/performance claim.
#9335 829eb0d216da752f919e31dad3f7300f3c23afa2 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp Includes the9020 packed/layered merge checks, plus unorm4_4_4_4TargetTests late-kill/depth-write split-mask assertions and stencil/ZFUNC NEVER/DEPTH_BEFORE_SHADER refusal cases. Preserve these assertions and slot1 CB_TARGET_MASK checks; preserve our timestamp handlers/results/resolver and profile-draw reset/lifetime checks independently. Same ordered historical added/deleted lines are used as context-reuse evidence, not proof of equal behavior on a changed base.

For9020/9335, the four historical per-path added/deleted sequences match, but old accepted heads5f728740/976fc9c3, raw files and patch context differ. This pass checks preservation against the current owned fixture; it does not advance old runtime or human approval. The new6501 registration has a separate environment.

A single end metadata check found the four candidate heads and both owned heads unchanged/open. Actual selected patches were reconstructed from immutable merge-base/head source; no unshared paths were reviewed.

AI-assisted: yes (Codex).

Current skipped-file follow-through — #11566 c6cbfa693601

The refreshed overlap-bot comment 6427054960 (2026-10-30T18:05:45Z) retains three of the 13 previously selected source scopes. The other ten scopes, across #7085, #8939, #9457, #9633, #9749, #9790, #9969, #10000 and #10489, are no longer listed in that bot body. Their removal is a membership observation, not proof of no overlap. Their frozen source reviews remain retained; they are not presented as current pending rows.

Two retained scopes have fresh findings below; #10846 reuses its existing exact-head/path finding. These are source-preservation findings only.

Candidate/head Shared scope and preservation finding
#7395 4769d5a7456b CMakeLists.txt: Seven nested image/sampler and pointer-phi sampler/ballot/copies cases. Preserve exact add_test names/arguments once each, cache-off and no-pipeline-journal environment, skip77, timeout30, source-root working directory and Windows libc PATH on the separate image-table executable. A future multi-PR composition must deduplicate shared names and retain the union; these cases do not replace our graphics profile selector.
#9852 470cbe5b01a3 CMakeLists.txt: Six additions register agc_driver_atomic_passes_split on existing agc_driver_atomic_passes_tests. Keep APS5_NO_ATOMIC_PASSES=1, skip77, timeout60 and Windows libc PATH on this distinct split case. Fresh470c review; older e13 finding is not reused and old/new patch identity is not asserted.
#10846 0a2cf6402870 CMakeLists.txt: Retains exact prior public current-target source finding:33 additions create spanned-wave policy/guard target, eleven image-table/refusal cases and guarded SPIRV-Tools linkage. Reuse same-head/path finding, not new approval. Preserve target includes/shader_recompiler/libc links/unwind/testing participation, guarded compile definition and SPIRV-Tools-static link, normal table cache/journal/workdir/skip77/30s/PATH, and refusal-only APS5_SPANNED_WAVE=yes plus cache-off.

Preserve our agc_graphics_profile_draw registration on the no-argument agc_driver_graphics_tests, its cache-off/profile environment, skip77, timeout60, source-root working directory, Windows libc PATH, command-batch-fence-failure selector and query/timestamp mock bounds and lifetime checks. Separate image-table and atomic-pass cases must not replace that profile selector. No combined build/test, GPU validation, foreign implementation acceptance, order, latest-main or whole-table clearance follows. Other current rows and compared-overlap obligations remain open.

October 30 — six additional current shared-file rows

This bounded source review pins #11566 at c6cbfa6 and uses the exact current candidate heads below. The updated overlap table contains 73 distinct PR IDs. The existing #7844 row remains covered at its unchanged current head 89d6a7c; this addendum covers only six current rows absent from the prior manual report.

Candidate / current head Shared path change Source disposition
#9289 / 7cc0194 CMakeLists.txt: overlap_staged_copies_inline and dispatch_overlap_off test registrations Distinct names and targets; no duplicate with agc_graphics_profile_draw.
#9891 / 80d3a0b CMakeLists.txt: decoder_png link for agc_driver_gcn_display_present_tests Separate target-link statement.
#9895 / 853389c tests/Graphics.cpp: GcnDepthTileModeTests and its main call Separate from the timestamp-query mock additions.
#11104 / c3a1821 CMakeLists.txt: adds a target path argument to agc_driver_unsupported_diagnostics Separate existing test command.
#12536 / aa5cb52 CMakeLists.txt: adds agc_frame_limit executable and CTest entry Separate target and test name.
#13148 / ac75125 CMakeLists.txt: adds LiveAllocations.cpp to agcDriverSources and agc_live_allocations test target Separate source-list and test-target blocks.

The target profile CTest remains a distinct no-argument agc_driver_graphics_tests invocation with its own profiling environment and properties. Its Graphics.cpp patch adds timestamp query-pool mock support; none of these six candidate patches edits those mock hunks. Preserve both sides’ additions. This is only a source-level disposition of these six rows: it does not establish clean branch composition, runtime behavior, test results, author order, dependency clearance or review acceptance. It does not clear the rest of the current overlap table.

AI-assisted: yes (Codex).

Selected CMake source follow-through — frozen #11566 c6cbfa693601

Reviewed six newly selected CMake relationships from overlap comment6427054960 (updated2026-10-31 15:58:30UTC), against the exact target CMake blob 6b9abdceef980f11e458245f61154fce555e72d2. This is a dated source scope, not a refreshed clearance of the67-PR/74-path table.

PR / frozen head Selected-source disposition
#7508 5e9d5c26b9243096fd49f380f39434965fa83d8d Adds a separate agc_relocation_runs executable/test linked to libc with CXX extensions off, unwind setup, BUILD_TESTING inclusion and Windows libc PATH. Preserve this independent target alongside the unchanged graphics-profile registration; corresponding foreign fixture/runtime is outside this review. No new timeout or skip policy is supplied by this hunk.
#9248 c3060572f3f2e5a2e77b6652c26d192b9595ad0e Adds three variants of the separate draw-cache-reuse executable: indirect, push-word, and push-word verification. Retain their cache-off/indirect/profile flags, push-word and verify flags, skip77, expanded FATAL fail-regex list, Windows libc PATH and pre-existing APPEND recipe/register-key settings. Their APS5_PROFILE_DRAW setting does not replace our distinct agc_graphics_profile_draw registration or prove equivalent workload/timing. No explicit timeout is added for the three variants.
#10940 a273ee4cd0d0811f259d72f40cd6139fc40cea80 Adds the existing two-device pending-store executable with --label; preserve ANYPS5_NO_SHADER_CACHE=1, APS5_STORE_AT_LABEL=1, skip77, timeout30, source-root working directory and Windows libc PATH. It is a separate selector from the graphics profiling target; matching foreign --label implementation remains coupled and unqualified.
#12746 275819376d4644f1b8238ad043de5e8582e55ee4 Adds four texture-downscale selectors: --levels 2, --levels 3, --refuse-levels and --refuse-minimum. Preserve dynamic arguments, cache-off env, skip77, timeout30, source-root working directory and Windows libc PATH. Keep neighboring runtime-formatted-store timeout and vertex/export selectors; matching foreign downscale implementation remains coupled and unqualified.
#10492 d6589d36070bb4d2f60949499a873fab2bba769b Exact accepted topic hunk preserved apart from line offsets: retain three native-depth publication selectors and their dispatch/draw-pipeline APPEND env, timeout30, cache-off/skip77/source-root working directory and Windows libc PATH, including retirement recipient.
#10497 99e4666c92d1dcdb7f07307a277851c06de801c6 Exact accepted topic hunk preserved apart from line offsets: retain the same three publication selectors plus attachment/sampled-buffer-feedback selectors and their properties/Windows libc PATH. If composing10492 and10497, deduplicate their three identical shared test registrations rather than add them twice; no author-order agreement inferred.

Each reviewed topic patch reconstructs its full captured base/head CMake source, and its old hunk context matches the owned target uniquely. Independent in-memory hunk application preserves the exact agc_graphics_profile_draw command, cache/profile environment, skip77, timeout60, working directory and Windows libc PATH. For10492/10497, the accepted topic hunks match byte-for-byte except line offsets at the newly captured heads; inherited later-main CMake changes are outside that reuse.

No configure, build, test or Git merge was run. These findings do not qualify foreign implementations, full-branch compositions, matching runtime behavior, combined profiling workload/timing, author order, dependencies or the remaining table. Removed bot rows remain historical findings; removal does not establish merging or no overlap.

@B-Howell

Copy link
Copy Markdown
Contributor Author

@MarcZX10 Could you recheck current head c6cbfa693601609cb2209fda8b1b5b1fc65c56d4? It normally integrates pinned main fdd1753; the contribution remains the same two test-related files (+45/-2).

Both focused builds passed. Four cases per arm passed: mock graphics/default and profile plumbing, plus two real Vulkan recorder timing cases. The real cases record the same RTX 4080 SUPER and actual Khronos instance/device insertion, zero skips/VUIDs/missing layers, and matching disclosed loader diagnostics. The PR body retains the exact current qualification and historical evidence; the manual overlap comment separately pins reviewed scopes and remaining drift/order limits.

Your earlier review text names 1e38ada, so we continue to treat it as historical. No title/performance or overall-ready claim is made.

AI-assisted: yes (Codex).

@MarcZX10

Copy link
Copy Markdown
Contributor

Re-checked — same approved head

The current head is still c6cbfa693601609cb2209fda8b1b5b1fc65c56d4, the exact head covered by my existing approval; I re-read the two-file diff and the new qualification, found no material source change, and the hosted Windows job passes while Linux and specialized jobs are skipped.

@TechLevelZero

TechLevelZero commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

✅ NVIDIA GPU test: passed

PR head c6cbfa6 merged onto main 6b48aee · tested 2026-10-31 05:06 UTC · 22 min

GPU NVIDIA RTX 2000 Ada Generation, driver 595.99.02, Vulkan 1.4.329
Host Ubuntu 26.04.1 LTS, kernel 7.0.0-38-generic, container ubuntu:24.04
Logs build and test logs for this run
Build ✅ passed (Release, -DANYPS5_ENABLE_SPIRV_TOOLS=ON)
Tests ✅ 2,407 passed · 6 failed (0 new, 3 also fail on main, 3 unstable on main) · 42 skipped (ANYPS5_REQUIRE_VULKAN=1)
Test setup CPU-only tests without a GPU; GPU tests (and any CPU-only test that failed or skipped without one) once on the GPU with VK_LAYER_KHRONOS_validation and ANYPS5_NO_SHADER_CACHE=1; main ran the same way
Test selection 2,455 of 3,041 tests run: the ones this change can reach, chosen by tools/select_tests.py from main's build graph
Vulkan validation ✅ no new validation IDs vs main (909 tests run on the GPU)
Slow tests (>30 s, GPU tests timed with validation layers) ⚠️ agc_driver_bda_device 44.2 s, ⚠️ agc_driver_graphics_maps_fallback 31.1 s, ⚠️ agc_graphics_profile_draw 30.9 s, ⚠️ agc_driver_graphics 30.8 s
Unstable on main (3, these also failed in recent main runs on this machine; not counted against this PR)
agc_driver_depth_clear_hle: failed in 1 of the last 10 main runs
agc_driver_submit_progress: failed in 6 of the last 10 main runs
agc_submit_progress: failed in 6 of the last 10 main runs
Failing on main too (3, not counted against this PR)
agc_submit_progress_no_timeline
guest_mmap_executable
guest_socket_options_multicast
Validated but not compared (1, not in the main baseline's validation pass)
agc_graphics_profile_draw
Validation IDs already present on main (5 IDs in 421 tests)
VUID-VkDeviceCreateInfo-pNext-pNext (421 tests): agc_compute_pipeline_replay, agc_driver, agc_driver_address_passes, agc_driver_address_passes_draw_transitions, agc_driver_address_passes_targets_split, agc_driver_alias_copy_label, agc_driver_alpha_to_coverage, agc_driver_array_layer_target, and 413 more
VUID-vkCmdCopyImage-srcImage-01548 (13 tests): agc_driver_depth_clear_hle, agc_driver_depth_plane_buffer_memory, agc_driver_depth_plane_cpu_write_after_memo, agc_driver_depth_plane_cpu_write_after_page_unwatch, agc_driver_depth_plane_cpu_write_after_partial_unwatch, agc_driver_depth_plane_partial_store, agc_driver_depth_plane_partial_store_unimported, agc_driver_depth_plane_sampling, and 5 more
VUID-vkCmdCopyImage-srcImage-01551 (13 tests): agc_driver_depth_clear_hle, agc_driver_depth_plane_buffer_memory, agc_driver_depth_plane_cpu_write_after_memo, agc_driver_depth_plane_cpu_write_after_page_unwatch, agc_driver_depth_plane_cpu_write_after_partial_unwatch, agc_driver_depth_plane_partial_store, agc_driver_depth_plane_partial_store_unimported, agc_driver_depth_plane_sampling, and 5 more
VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605 (1 test): agc_driver_srgb8_color_target
VUID-vkCmdCopyBuffer-commonparent (1 test): agc_driver_depth_clear_hle
Skipped (42)
agc_driver_bda_reads_shadowed_results: skipped, the device reports watched host memory written when it imports or reads it
agc_driver_bda_reads_shadowed_results_per_build: skipped, the device reports watched host memory written when it imports or reads it
agc_driver_msaa_dcc_compared_import_2: skipped, the device reports host imports that keep write protection, so the write-watch probe compares none of them
agc_driver_msaa_dcc_compared_import_4: skipped, the device reports host imports that keep write protection, so the write-watch probe compares none of them
agc_driver_msaa_dcc_compared_import_8: skipped, the device reports host imports that keep write protection, so the write-watch probe compares none of them
agc_driver_sample_order_grid_reference: skipped, the device does not keep depth drawn at custom sample locations at those locations, even after a transition that names them: the composite of uniform renders holds the guest's depth in 0 of 3005 sloped samples, so no path can be compared with it bit for bit
agc_driver_sparse_dma_buf_import: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_driver_stencil_ref_export: skipped, the device lacks VK_EXT_shader_stencil_export
agc_driver_vertex_elected_atomic_max: skipped, the device runs vertex programs in subgroups, so they keep their cross-lane reductions
agc_host_import_sparse: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_import_settle_initial_dcc: skipped, the device has no deferred settle of host imports: imports under 1 MiB wait for one only on Windows
agc_unit_shadow_completion_store: skipped, the device reports watched host memory written when it imports or reads it
guest_http_uri_locale: 
guest_net_ctl: skipped, the host has no IPv4 address
guest_video_out_color_space: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_hdr: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_high_frame_rate: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_output_mode: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_resolution_status: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_wqhd_detection: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
video_out_flip_controls: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_cpuflip: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_cpuflip_in_order: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_eop: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_eop_aftergpu: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_eop_main: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_fresh: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or plat
Reproduce
git fetch origin c6cbfa693601609cb2209fda8b1b5b1fc65c56d4 6b48aee5d2ea9fce6155163d78f8ce8dc84f7827
git checkout 6b48aee5d2ea9fce6155163d78f8ce8dc84f7827 && git merge --no-ff c6cbfa693601609cb2209fda8b1b5b1fc65c56d4
git submodule update --init --recursive
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DANYPS5_ENABLE_SPIRV_TOOLS=ON
cmake --build build && cmake --build build --target libs
VK_DRIVER_FILES=/nonexistent/icd.json ctest --test-dir build -E '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 32 --output-on-failure
ANYPS5_REQUIRE_VULKAN=1 ANYPS5_NO_SHADER_CACHE=1 VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation \
  ctest --test-dir build -R '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 4 --output-on-failure
# failures are then re-run alone: --timeout 360 --parallel 2; new validation IDs: the test alone, twice, --parallel 1

Automated 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.

@MarcZX10

Copy link
Copy Markdown
Contributor

Re-checked — GPU report reviewed

The exact-head NVIDIA run reports no new failures or validation IDs in the compared tests, while agc_graphics_profile_draw was validated without a main comparison.

The report covers head c6cbfa693601609cb2209fda8b1b5b1fc65c56d4 on an RTX 2000 Ada: 2,341 tests passed, zero new failures, and 903 GPU validation tests showed no new validation IDs. The graphics-profile test is listed separately as validated but not compared, so I have not counted it as parity evidence. My existing approval remains attached to this unchanged head; I did not run these tests locally.

Run report and logs.

@github-actions github-actions Bot added the needs rebase Conflicts with main, rebase needed label Oct 31, 2026
@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Oct 31, 2026

@MarcZX10 MarcZX10 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-checked — new head, looks good

I reviewed head 9d7892e7f91aca9a29790f401bd7638e77e9d01f against base 613f9b8edf056318b14ff96fe3aceda59a419323; the diff remains limited to the graphics fixture and its CMake test registration, and I confirmed the fragment is included by the directory's CONFIGURE_DEPENDS glob. Local git diff --check and python3 tools/check_conventions.py --base 613f9b8edf056318b14ff96fe3aceda59a419323 passed. Hosted Windows, eligibility, conventions, library portability, labels, and report checks pass; Linux and specialized jobs are skipped. The author reports the exact-head focused Release fixture and GPU recorder tests passed; I did not independently rerun them. I did not build or run CTest locally. I found no blocking issue and approve this head.

@TechLevelZero

Copy link
Copy Markdown
Contributor

✅ NVIDIA GPU test: passed

PR head 9d7892e merged onto main 500d37a · tested 2026-10-31 21:37 UTC · 18 min

GPU NVIDIA RTX 2000 Ada Generation, driver 595.99.02, Vulkan 1.4.329
Host Ubuntu 26.04.1 LTS, kernel 7.0.0-38-generic, container ubuntu:24.04
Logs build and test logs for this run
Build ✅ passed (Release, -DANYPS5_ENABLE_SPIRV_TOOLS=ON)
Tests ✅ 1,358 passed · 4 failed (0 new, 4 also fail on main) · 0 skipped (ANYPS5_REQUIRE_VULKAN=1)
Test setup CPU-only tests without a GPU; GPU tests (and any CPU-only test that failed or skipped without one) once on the GPU with VK_LAYER_KHRONOS_validation and ANYPS5_NO_SHADER_CACHE=1; main ran the same way
Test selection 1,362 of 3,085 tests run: the ones this change can reach, chosen by tools/select_tests.py from main's build graph
Vulkan validation ✅ no new validation IDs vs main (399 tests run on the GPU)
Slow tests (>30 s, GPU tests timed with validation layers) ⚠️ agc_driver_pipeline_journal 46.0 s
Failing on main too (4, not counted against this PR)
agc_driver_idle_store_yields
agc_driver_image_table
guest_mmap_executable
guest_socket_options_multicast
Validation IDs already present on main (5 IDs in 341 tests)
VUID-VkDeviceCreateInfo-pNext-pNext (341 tests): agc_driver_address_passes, agc_driver_alias_copy_label, agc_driver_alpha_to_coverage, agc_driver_array_layer_target, agc_driver_bc_block_copy, agc_driver_bda_anchor_reads, agc_driver_bda_span_reads, agc_driver_bindless_images, and 333 more
VUID-vkCmdCopyImage-srcImage-01548 (7 tests): agc_driver_depth_clear_hle, agc_driver_depth_plane_buffer_memory, agc_driver_depth_plane_partial_store, agc_driver_depth_plane_sampling, agc_driver_depth_storage_dispatch, agc_driver_depth_surface_from_storage, agc_driver_dispatch_move_depth
VUID-vkCmdCopyImage-srcImage-01551 (7 tests): agc_driver_depth_clear_hle, agc_driver_depth_plane_buffer_memory, agc_driver_depth_plane_partial_store, agc_driver_depth_plane_sampling, agc_driver_depth_storage_dispatch, agc_driver_depth_surface_from_storage, agc_driver_dispatch_move_depth
VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605 (1 test): agc_driver_prepared_exports
VUID-VkShaderModuleCreateInfo-pCode-08737 (1 test): agc_driver_image_sample_derivatives
Reproduce
git fetch origin 9d7892e7f91aca9a29790f401bd7638e77e9d01f 500d37a747c2b958e8696aa16213a0ee78d47505
git checkout 500d37a747c2b958e8696aa16213a0ee78d47505 && git merge --no-ff 9d7892e7f91aca9a29790f401bd7638e77e9d01f
git submodule update --init --recursive
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DANYPS5_ENABLE_SPIRV_TOOLS=ON
cmake --build build && cmake --build build --target libs
VK_DRIVER_FILES=/nonexistent/icd.json ctest --test-dir build -E '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 32 --output-on-failure
ANYPS5_REQUIRE_VULKAN=1 ANYPS5_NO_SHADER_CACHE=1 VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation \
  ctest --test-dir build -R '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 4 --output-on-failure
# failures are then re-run alone: --timeout 360 --parallel 2; new validation IDs: the test alone, twice, --parallel 1

Automated 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.

@oneandonlydean
oneandonlydean merged commit ed5c169 into boykopovar:main Nov 5, 2026
12 of 13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agc libSceAgc* build

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants