Skip to content

test(agc): register full recorder suite with CTest - #6642

Merged
adriadam10 merged 1 commit into
boykopovar:mainfrom
MarcZX10:codex/register-recorder-full-ctest-1532
Oct 27, 2026
Merged

adriadam10 merged 1 commit into
boykopovar:mainfrom
MarcZX10:codex/register-recorder-full-ctest-1532

Conversation

@MarcZX10

@MarcZX10 MarcZX10 commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

What

Register the no-argument agc_driver_recorder regression flow with CTest, including the existing Vulkan-unavailable skip code, a 30-second timeout, and the Windows libc DLL path used by focused entries. This carries forward the CTest registration proposed in #3354.

This registration depends on #5883. That PR updates the pending-write proof expectation; #6155, which stamps test-side guest writes, has merged. Without #5883, the full recorder path stops at an existing assertion before completing. This PR only registers the test and does not change those expectations or production behavior.

Tested

Checklist

@github-actions

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

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.

Pull request Conflicting files (lines on main) Same exports Same new files
PR 6182 core/libs/prx/libSceAgcDriver/CMakeLists.txt L1866
PR 6185 core/libs/prx/libSceAgcDriver/CMakeLists.txt L1866
PR 6186 core/libs/prx/libSceAgcDriver/CMakeLists.txt L1866
PR 9565 core/libs/prx/libSceAgcDriver/CMakeLists.txt L1866
PR 9712 core/libs/prx/libSceAgcDriver/CMakeLists.txt L1866
PR 9875 core/libs/prx/libSceAgcDriver/CMakeLists.txt L1866
PR 9898 core/libs/prx/libSceAgcDriver/CMakeLists.txt L1866

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 1368 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 1395 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 1896 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 2434 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 4449 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 5021 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 5371 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 5925 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 6187 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 6188 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 6192 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 6209 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 6280 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 6300 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 6412 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 6481 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 6743 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 6808 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 6959 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 7048 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 7275 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 7395 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 7457 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 7514 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 7604 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 7642 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 8484 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 8542 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 8592 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 8939 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 9020 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 9248 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 9335 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 9457 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 9508 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 9533 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 9633 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 9717 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 9742 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 9748 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 9749 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 9790 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 9852 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 9892 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 9897 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 9969 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 10000 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 10043 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 10064 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 10193 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 10233 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 10333 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 10359 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 10442 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 10489 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 10757 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 10846 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 10867 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 11451 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 11557 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 11690 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 11692 core/libs/prx/libSceAgcDriver/CMakeLists.txt

fma-rc
fma-rc previously requested changes Oct 16, 2026

@fma-rc fma-rc 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.

I built main 5d9dcc4 with this PR (fb67697) and ran the new agc_driver_recorder entry on an RTX 5080, a Radeon 610M (RADV) and lavapipe. It fails on all three, on every run, at (9) a scan under a pending write was kept (core/libs/prx/libSceAgcDriver/tests/Recorder.cpp:1332). The no-argument binary fails the same way on main without the PR (9 of 9 runs, three per device), so the check that blocked the earlier registration still fails, and once the Linux job runs this entry it will go red. Could that check be fixed first, or the registration wait until it passes? I don't think the issue should close on this change alone.

@MarcZX10

Copy link
Copy Markdown
Contributor Author

Thanks for running the full entry on three devices. I confirmed the reported assertion is in the existing keyProofTests path, not in the new CTest wiring. Since it fails on main as well, I agree this PR should not register the full recorder executable until that pending-write proof check is understood and passes. My PR description overstates that the current branch contains the fixes needed for the full run; I’ll correct that claim and keep the registration change from being treated as ready to merge while this remains unresolved.

@MarcZX10

Copy link
Copy Markdown
Contributor Author

I found and opened PR #6676 for the pending-writer proof issue behind the keyProofTests failure. It checks the recorder's unsignaled writes before reusing a cached DCC proof, and updates the regression to verify the pending writer is resolved before the proof is refreshed. The regression could not be exercised in my Linux run because guest write-watch is unavailable there; I reported that limitation in #6676. The full-suite registration in this PR should remain deferred until the key-proof run passes on a write-watch-capable system.

@Dextroid17

Copy link
Copy Markdown
Contributor

Recorder.cpp:1332 is the (9) a scan under a pending write was kept check that #5883 rewrites. With #5883 the no-argument run gets past it and stops at second draw observed overwritten input. #6155 stamps the test's direct guest writes, which clears that stop. fma-rc ran the same change (the (9) hunk plus the three MarkWritten calls, rebuilt from a description on main 2559e96, not from the PR heads) and reported 3 of 3 on an RTX 5080, RADV (Raphael) and lavapipe in #1532. The (9) stop comes from the test's expectation, which #5883 updates, so no driver change is needed now that #6676 is closed.

I ran this registration on top of the two PRs on Linux: main 3f171d0 with #5883, #6155 and this PR (fb67697) cherry-picked (all three applied without conflicts), default CMake build (CMAKE_BUILD_TYPE empty), lavapipe (llvmpipe, Mesa 26.2.4, LLVM 23.1.1), clean environment with ANYPS5_REQUIRE_VULKAN=1, ctest -R '^agc_driver_recorder$', 3 runs each:

So this entry goes green once #5883 and #6155 are merged. "Depends on: #5883, #6155" in place of Depends on: none would record that. #5883 still has requested changes open (a code comment and the PR template), so this waits on those too. I did not run Windows or a hardware GPU.

Disclosure: #6155 is mine, and it is stacked on #5883.

AI-assisted: yes

@MarcZX10

Copy link
Copy Markdown
Contributor Author

Thanks for testing the exact compositions and separating the two failures. I updated the PR to depend on #5883 and #6155, recorded your 3/3 lavapipe pass with both dependencies, and kept the limitation explicit: this registration alone does not make the main branch's recorder path green. I'll keep it waiting until both dependencies merge and the composed test remains green.

@jotitadev jotitadev 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.

The composed run on a hardware GPU, with the PR heads themselves, and how long the entry takes against its 30 s timeout.

Machine: NVIDIA GeForce RTX 3070, driver 595.99.02, Vulkan 1.4.329, plus lavapipe (Mesa 26.0.3, LLVM 21.1.8) on the same machine. Ubuntu 26.04 (kernel 7.0.0-38), i7-8700, GCC 15.2, Release, BUILD_TESTING=ON.

GPUs tested: NVIDIA GeForce RTX 3070 (595.99.02), lavapipe (Mesa 26.0.3, LLVM 21.1.8), Ubuntu 26.04

Composition: main 0615cd2b8 + #5883 (1b3f2e098) + #6155 (4aeb8ef49) + this PR (fb67697b7), merged in that order, no conflicts. main did not build at the time (#6784), so I used 0615cd2b8.

ctest -R "^agc_driver_recorder$" -j1, 3 runs per device:

RTX 3070 lavapipe
this PR alone fails, (9) a scan under a pending write was kept same
this PR + #5883 + #6155 passes 3/3: 1.11 s, 0.71 s, 0.69 s passes 3/3: 1.26 s, 0.93 s, 0.92 s

So the full no-argument flow passes on NVIDIA as well, using the actual PR heads (fma-rc's 3/3 in #1532 was rebuilt from a description). The longest run took about 1.3 s, well under the 30 s TIMEOUT this registers.

Not checked: Windows, AMD, the run without #6155 on this machine.

Written with AI assistance (Claude Code). I ran the builds and tests above on my machine.

@MarcZX10

Copy link
Copy Markdown
Contributor Author

Thanks for running the registered recorder suite on the PR heads themselves and reporting the runtime against its 30-second timeout. This gives useful hardware coverage for the new CTest registration.

@MarcZX10

Copy link
Copy Markdown
Contributor Author

The current PR body now has the required What, Tested, and Checklist sections populated and accurately records the dependency and validation status. The earlier conventions failure is from the 00:54 run; later runs at 03:41 and 11:58 passed conventions. No metadata edit is needed here.

@MarcZX10

Copy link
Copy Markdown
Contributor Author

Thanks for testing the exact PR head across the three devices. The PR description already records #5883 and #6155 as required dependencies; #6155 is merged, while #5883 is still open. I agree the registration is not ready to merge until #5883 lands and the composed run passes. The independent composed run on #5883 + #6155 + this PR passed 3/3 on RTX 3070 and lavapipe; I am treating that as dependency-stack evidence, not as a pass for this PR alone.

@fma-rc

fma-rc commented Oct 18, 2026

Copy link
Copy Markdown
Contributor

For the RADV side of the dependency stack: this PR (fb67697) on top of #5883 (1b3f2e0), both rebased onto main 1e2d9b3, passed agc_driver_recorder 3 of 3 on a Radeon 680M (RADV REMBRANDT, Mesa 26.2.4), with only the RADV driver enabled.

@MarcZX10

Copy link
Copy Markdown
Contributor Author

Thanks for adding the RADV result. That is useful composed-stack coverage for the registered agc_driver_recorder entry. #5883 is still open, so the dependency remains; I will keep the PR pending until the dependency is merged and the composed run remains green on the resulting base.

@MarcZX10

Copy link
Copy Markdown
Contributor Author

Thanks for the composed-head retest. The result confirms the full recorder registration passes 3/3 on RTX 3070 and lavapipe when #5883 and #6155 are included, and stays well under the 30 s timeout. #5883 is still open and the current main baseline fails the same check, so I’ll keep #5883 listed as a dependency and leave this PR pending until that fix lands; this is not a standalone-main pass.

@adriadam10 adriadam10 self-assigned this Oct 19, 2026
@github-actions github-actions Bot added the needs rebase Conflicts with main, rebase needed label Oct 19, 2026
@MarcZX10
MarcZX10 force-pushed the codex/register-recorder-full-ctest-1532 branch from fb67697 to 4c1de7e Compare October 19, 2026 15:19
@MarcZX10

Copy link
Copy Markdown
Contributor Author

Rebased onto current main (43a2abaf77), preserving the latest Windows PATH list and adding agc_driver_recorder to it. The branch still depends on #5883; #6155 has merged. Current diff-check and conventions pass. I updated the PR body to distinguish earlier composed-tree GPU results from this current head, which has not been built or run.

@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Oct 19, 2026
@github-actions github-actions Bot added the needs rebase Conflicts with main, rebase needed label Oct 21, 2026
Register the no-argument recorder executable path so CTest covers the main recorder regression flow in addition to the focused subsets. Preserve the Vulkan-unavailable skip code, cap the test at 30 seconds, and add the Windows libc DLL path used by sibling recorder tests.

This carries forward the test registration proposed in boykopovar#3354, which was closed by the intake pause. Its author left a handoff, and the current main branch has since incorporated the fixes that made the full recorder run pass.

Co-authored-by: blawesom <blaplane@gmail.com>
@MarcZX10
MarcZX10 force-pushed the codex/register-recorder-full-ctest-1532 branch from 4c1de7e to f9123c7 Compare October 26, 2026 23:41
@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Oct 27, 2026
@adriadam10
adriadam10 dismissed fma-rc’s stale review October 27, 2026 04:13

Dismissing a stale review: the requested changes were addressed after it (new head) and the merge queue blocks on it. Please request changes again if anything is still open.

@jotitadev jotitadev 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.

Follow-up to my composed run above, now that #5883 is merged: this PR alone on current main passes.

Setup: Ubuntu 26.04, i7-8700, GCC 15.2, Release. Head f9123c760 merged onto main fe2b52c7e (clean, includes #5883). ANYPS5_NO_SHADER_CACHE=1, ctest -j1, device picked with VK_ICD_FILENAMES.

RTX 3070 lavapipe
agc_driver_recorder passes 3/3, 1.45–1.50 s passes 3/3, 0.99–1.06 s
same, with #5883's Recorder.cpp change reverted fails 3/3, (9) a scan under a pending write was kept same
all 77 entries that run agc_driver_recorder_tests 77/77 77/77

So the dependency is resolved and the new entry stays far below its 30 s timeout.

GPUs tested: NVIDIA GeForce RTX 3070 (595.99.02), lavapipe (Mesa 26.0.3, LLVM 21.1.8), Ubuntu 26.04

Written with AI assistance (Claude Code). I ran the builds and tests above on my machine.

@adriadam10
adriadam10 merged commit 458a9c0 into boykopovar:main Oct 27, 2026
10 checks passed
@adriadam10

Copy link
Copy Markdown
Collaborator

Checked the registration against the neighbouring entries (skip code 77, 30 s timeout, Windows libc PATH list) and the composed runs in the thread (RTX 5080, Radeon 680M RADV, RTX 3070, lavapipe, 3/3 with #5883 and #6155); #5883 is now on main, so the dependency is met; merged.

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.

5 participants