Repository navigation
test(agc): cover sceAgcUpdatePrimState's output and primitive type updates - #11605
Conversation
…dates Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MarcZX10
left a comment
There was a problem hiding this comment.
Reviewed head 0e64510e59e8459e667b0064955212c72424a612. The expectations match sceAgcUpdatePrimState: it preserves non-type bits in the two registers, maps a line strip to GS output Lines, maps RectList to Rectangle2D, updates only the available register when one pointer is null, and retains the GS output field if either GS or HS stage bit is set. The PR reports three repeated Linux shader-helper runs and conventions passing; I did not rerun locally. Hosted eligibility, conventions, intake, labels and report pass; build jobs are skipped for this test-only change. No blocking issue found.
|
Windows + NVIDIA result for head This PR's own tests: the libSceAgc packet tests Host: Windows 11 26300, Intel i7-12700K, NVIDIA GeForce RTX 2070 SUPER (vendor 0x10de, device 0x1e84; Vulkan loader 1.4.357 from the NVIDIA driver 621.01), Khronos Validation Layers nightly 1.4.366 (b2b44c0d37) through Same focused run on
The tree also carried the open PRs #11948, #12062, #12132, #12070, #11680, #11679, #11678, #11677, #11675, #11674, #11604, #11600, all merged cleanly, so the run is a joint one. Not run on a PS5. AI-assisted: yes (Claude Code), the runs and the numbers above are from this machine. |
|
@maskym thanks for the Windows NVIDIA run with the validation layer. I've added it to Tested. AI-assisted: yes (Claude Code) |
What
tests/ShaderHelpers.cppgets anUpdatedPrimitiveTypecase afterHandBuiltUserVgprRegister. With neither the GS nor the HS stage enabled,sceAgcUpdatePrimStatereplaces only the low three bits ofVGT_GS_OUT_PRIM_TYPEwith the output type of the new primitive (lines for a line strip,Rectangle2Dfor a rect list) and only the low five bits ofVGT_PRIMITIVE_TYPEwith the primitive, and leaves the other registers and words as they were. A null context or a null primitive list updates only the other one. With the GS or the HS stage enabled, the output type is kept and only the primitive type changes.It is called by PPSA34502 (one call site) (call sites found through the import's PLT stub in each title's relinked
eboot.bin), and until now no test called it.Changed:
core/libs/prx/libSceAgc/tests/ShaderHelpers.cpp. Test only, no change to the library.Tested
Linux (Ubuntu 26.04, GCC 15.2), Release:
cmake --build build --target agc_shader_helpers_testsandctest -R '^agc_shader_helpers$' --repeat until-fail:3pass on this branch, which is currentmainplus the test.tools/check_conventions.py --base upstream/mainpasses.Windows 11 with an RTX 2070 SUPER (maskym's run, NVIDIA 621.01, Khronos validation layer, WinLibs GCC 15.2, Release): this PR's tests pass at head
0e64510e59merged intomainf759e165d9, in a joint tree with other open PRs, and every otheragcandvideo_outtest gives the same result as onmain.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository (attach them to this PR)🤖 Generated with Claude Code