Commit Graph
294 Commits
Author SHA1 Message Date
Dean 365e6bfa96 Merge pull request #11605 from milescoviello/test/update-prim-state
test(agc): cover sceAgcUpdatePrimState's output and primitive type updates
2026-10-29 07:22:54 +13:00
Adrià 17f8dfad51 Merge pull request #11680 from milescoviello/test/agc-eop-address-patch
test(agc): cover the end-of-pipe action address patch on both packet forms
2026-10-28 15:56:37 +01:00
Adrià b4757928c0 Merge pull request #11677 from milescoviello/test/agc-flow-packets
test(agc): cover the jump, parser stall, rendering wait and compute queue reset packets
2026-10-28 15:34:58 +01:00
Adrià 7103b34914 Merge pull request #11686 from milescoviello/test/agc-jump-target-patch
test(agc): cover the jump target patches with and without a cache policy
2026-10-28 15:32:55 +01:00
Adrià 9e21cb34fa Merge pull request #11679 from milescoviello/test/agc-indirect-register-patches
test(agc): cover the context, shader and uconfig indirect register count patches
2026-10-28 15:32:49 +01:00
Adrià 41a67b523f test(agc): drop the duplicate QueueEndOfPipeAction include 2026-10-28 09:46:55 +01:00
milescovielloandClaude Opus 5.5 20ab4a470a test(agc): cover the end-of-pipe action address patch on both packet forms
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 09:46:51 +01:00
Adrià ac6441d2e3 Merge pull request #11703 from milescoviello/test/agc-atomic-mem
test(agc): cover the graphics and compute ATOMIC_MEM packets
2026-10-28 05:04:21 +01:00
Adrià 061cdb66b0 Merge pull request #11702 from milescoviello/test/agc-rewind-patch
test(agc): cover the REWIND packet and its rewind state patches
2026-10-28 05:00:13 +01:00
Adrià a31b527125 Merge pull request #11693 from milescoviello/test/agc-dma-data-patches
test(agc): cover the address words the DMA data patch setters write
2026-10-28 04:55:58 +01:00
Adrià dd508d19e2 Merge pull request #11701 from milescoviello/test/agc-create-shader
test(agc): cover sceAgcCreateShader's relative pointers, program address patch and registration
2026-10-28 04:54:54 +01:00
Adrià f321bb8d56 Merge pull request #11674 from milescoviello/test/agc-acquire-mem
test(agc): cover the DCB and ACB acquire-mem packets, their range rounding and refusals
2026-10-28 04:28:09 +01:00
Adrià 1a551c48ee Merge pull request #11675 from milescoviello/test/agc-dispatch-packets
test(agc): cover the graphics and compute dispatch-indirect and direct dispatch packets
2026-10-28 04:26:56 +01:00
Dean c3f49ea299 Merge pull request #10654 from akkadbakkad89/feat/agc-acb-workload
feat(libSceAgc): emit ACB workload packets for complete, active and stream-inactive
2026-10-28 13:49:41 +13:00
Dean feabe31b59 Merge pull request #11794 from milescoviello/test/agc-lod-stats-packets
test(agc): check the packets sceAgcDcbGetLodStats writes
2026-10-28 12:10:19 +13:00
Dean 9e4ad0609a Merge pull request #11604 from milescoviello/test/eop-patch
test(agc): cover the end-of-pipe action data and GCR control patches
2026-10-28 12:07:27 +13:00
milescovielloandClaude Opus 5.5 daa5cf02e8 test(agc): check the action sceAgcQueueEndOfPipeActionPatchType writes
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 08:01:44 +00:00
milescovielloandClaude Opus 5.5 3383555532 test(agc): check the packets sceAgcDcbGetLodStats writes
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 07:36:48 +00:00
milescovielloandClaude Opus 5.5 d31f194c9c test(agc): keep the DMA data patch checks to valid packets
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 04:24:02 +00:00
milescovielloandClaude Opus 5.5 9c3ad7d55d test(agc): cover the graphics and compute ATOMIC_MEM packets
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 04:13:11 +00:00
milescovielloandClaude Opus 5.5 ed2d385b9a test(agc): cover the REWIND packet and its rewind state patches
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 04:11:22 +00:00
milescovielloandClaude Opus 5.5 e64d31b0b9 test(agc): cover sceAgcCreateShader's relative pointers, program address patch and registration
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 04:07:04 +00:00
milescovielloandClaude Opus 5.5 319f275322 test(agc): cover the DMA data patch setters' address words and refusals
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 03:02:39 +00:00
milescovielloandClaude Opus 5.5 da9b869e8f test(agc): check that refused packets leave the whole command buffer unchanged
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 02:46:27 +00:00
milescovielloandClaude Opus 5.5 ce3fe2f54d test(agc): check that refused packets leave the whole command buffer unchanged
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 02:46:27 +00:00
milescovielloandClaude Opus 5.5 0c02f0be96 test(agc): keep the PARTIAL_TG_EN dispatch form unpinned and check refused packets leave the buffer unchanged
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 02:46:27 +00:00
milescovielloandClaude Opus 5.5 efb3edd0ce test(agc): cover the jump target patches with and without a cache policy
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 02:39:04 +00:00
milescovielloandClaude Opus 5.5 d70a82d5d3 test(agc): cover the context, shader and uconfig indirect register count patches
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 02:29:38 +00:00
milescovielloandClaude Opus 5.5 a87a19f927 test(agc): cover the jump, parser stall, rendering wait and compute queue reset packets
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 02:26:35 +00:00
milescovielloandClaude Opus 5.5 1750e62268 test(agc): cover the graphics and compute dispatch-indirect and direct dispatch packets
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 02:24:02 +00:00
milescovielloandClaude Opus 5.5 7cbf80eabe test(agc): cover the DCB and ACB acquire-mem packets, their range rounding and refusals
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 02:20:57 +00:00
Dean abed035468 Merge pull request #11313 from frankea/fix/agc-draw-index-multi-instanced
fix(agc): write the console's DRAW_INDEX_MULTI_INST packet for sceAgcDcbDrawIndexMultiInstanced
2026-10-27 15:02:15 +13:00
Dean 27ad7244d2 Merge pull request #11290 from frankea/fix/draw-index-indirect-multi-tags
fix(agc): bracket sceAgcDcbDrawIndexIndirectMulti with the console's tag markers
2026-10-27 14:28:45 +13:00
Dean a83ebf95ea Merge pull request #11306 from frankea/fix/agc-tag-marker-headers
fix(agc): write libSceAgc's tag markers with the console's header flags
2026-10-27 14:27:49 +13:00
milescovielloandClaude Opus 5.5 0e64510e59 test(agc): cover sceAgcUpdatePrimState's output and primitive type updates
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 22:22:42 +00:00
milescovielloandClaude Opus 5.5 2ce1e917e2 test(agc): cover the end-of-pipe action data and GCR control patches
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 22:17:45 +00:00
Dean 66beccdd49 Merge pull request #10944 from ahmadmuj/fix/anyps5-unbuilt-split-exports
fix(prx): build and export the stubs that eight libraries never shipped
2026-10-27 10:56:58 +13:00
akkadbakkad89 7f25d383c6 test(libSceAgc): pin workload NOP payload inertness and correct ACB debt 2026-10-26 16:31:55 +00:00
akkadbakkad89andDevin 5d0a47107e feat(libSceAgc): emit ACB workload packets for complete, active and stream-inactive
Firmware 4.03 shows the ACB and DCB variants share the same
reserve-and-emit structure and differ only in a flag bit the command
IR does not model, so mirror the DCB NOP-carried semantic payloads:
stream and workload ids plus the 64-bit mask for complete and active,
stream id only for inactive (9 dwords, matching
sceAgcDriverGetSetWorkloadStreamInactivePacketSize). Validation is
identical to the DCB twins: null buffer, unregistered or out-of-range
stream, workload ids above 63, empty or oversized id lists and
duplicate ids all return null.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-26 16:31:20 +00:00
Ahmad Mujahid a073f12cd0 test: check the split-export stubs are linked without calling them 2026-10-26 18:34:31 +04:00
frankea 37857ceb29 fix(agc): write the console's DRAW_INDEX_MULTI_INST packet for sceAgcDcbDrawIndexMultiInstanced
On a PS5 the builder writes 15 dwords: a tag write of 0xc6000006, opcode 0x3a with its arguments, initiator 0x80 whatever the modifier, and a closing tag write; GetSize returns 60. AnyPS5 wrote NUM_INSTANCES and DRAW_INDEX_2 under argument meanings nothing confirms. The driver refuses 0x3a, whose field meanings are not known, and names it DRAW_INDEX_MULTI_INST as Linux's nvd.h does.
2026-10-25 23:14:39 -04:00
frankea c5ab2f5b90 fix(agc): return 0 from the wait and context state GetSize calls for an invalid argument
On a PS5, sceAgcAcbWaitOnAddressGetSize and sceAgcDcbWaitOnAddressGetSize return 56 for size 0, 64 for size 1 and 0 for any other 32-bit value, and sceAgcDcbContextStateOpGetSize returns 0 for an operation above 3. The ACB wait size takes a 32-bit argument instead of a byte.
2026-10-25 22:38:48 -04:00
frankea be69f66349 fix(agc): write tag markers with the console's header flags
sceAgcDcbWaitRegMem and sceAgcDcbDrawIndirectMulti now write their 0x342 tag writes with header flag bit 2 and sceAgcAcbWaitRegMem with no flags, as libSceAgc on a PS5 does, instead of the predicate bit. ValidateWait accepts both forms and Pm4::IsTagMarker no longer depends on the header flags.
2026-10-25 21:58:54 -04:00
frankea a2fef12732 fix(agc): bracket sceAgcDcbDrawIndexIndirectMulti with the console's tag markers
On a PS5 (firmware 13.40) the builder writes SET_UCONFIG_REG 0x342 = 0xc6000005 before its DRAW_INDEX_INDIRECT_MULTI packet and 0xc6000000 after it, 64 bytes in all, and sceAgcDcbDrawIndexIndirectMultiGetSize returns 64.
2026-10-25 20:06:59 -04:00
Ahmad Mujahid 11b193cf35 fix(prx): build and export the stubs that eight libraries never shipped
The 2026-10-21 split PRs added Export.cpp stub files to seven libraries
that have their own CMakeLists.txt, so core/libs/CMakeLists.txt never
adds Export.cpp for them and no target compiled the 101 stubs. A title
that imports one fails to load instead of throwing on the call.

Ngs2, Ngs2.native and AvPlayer.native build with hidden visibility, so
their stub files also need default visibility. libSceNgs2 already
compiled PendingExports.cpp, but its 6 stubs stayed local.
2026-10-25 15:10:46 +04:00
Adrià 2816bd2754 Merge pull request #9600 from shahulmubeen-a/fix/agc-register-list-any-byte
fix(libSceAgc): accept register lists at any byte address
2026-10-25 09:16:21 +01:00
boykopovar fdf9ca7574 fix(sdk): reconcile public headers after rebase 2026-10-24 23:17:47 +03:00
boykopovar 35cf8d56cd refactor(sdk): add canonical headers for core libraries 2026-10-24 23:17:37 +03:00
hypermistandClaude Opus 5.5 21eb4895e7 test(agc): reject a null marker buffer before reading its text
A null command buffer with an unreadable text pointer must take the
checked error path in sceAgcAcbPushMarker; without the buffer check
before measuring the text, the test faults.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
2026-10-24 14:46:36 +02:00
MarcZX10 7abff614b4 fix(agc): validate marker buffer before reading text 2026-10-24 14:46:36 +02:00