Commit Graph

20 Commits

Author SHA1 Message Date
Adrià Franch 3299d56707 fix(tools): count function-try-block exports in progress.py
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-05 19:09:52 +02:00
Adrià Franch 4d05623a42 fix(tools): count s_endpgm_saved and s_endpgm_ordered_ps_done as decoded shader instructions
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-05 11:11:04 +02:00
Nahuel Genchi 331d16d44a fix(tools): count v_fmac_legacy_f32 and v_fma_legacy_f32 as decoded shader instructions
VOP2 0x06 and VOP3 0x140 were only matched by their RDNA 1 names.
2026-10-04 21:47:22 -03:00
Dean a6c363a51b
Merge pull request #383 from DotDebian/test/sopk-waitcnt-counters
test(shader): cover the SOPK s_waitcnt counters and count them as decoded
2026-10-05 11:42:41 +13:00
Dean 4befff984e
Merge pull request #548 from adriadam10/tools/progress-aliases
fix(tools): count v_fma_mix_f32 as a decoded shader instruction
2026-10-05 10:24:20 +13:00
Dean 55e915abdb
Merge pull request #527 from DotDebian/test/vop3-carry-out-add-sub
test(shader): cover the VOP3 carry-out add and subtracts and count v_sub_co_u32 as decoded
2026-10-05 10:15:36 +13:00
Adrià Franch 4939e5d105 fix(tools): count v_fma_mix_f32 as a decoded shader instruction
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-04 22:35:39 +02:00
DotDebian e2dd34f360 test(shader): cover the SOPK s_waitcnt counters and count them as decoded
The decoder maps SOPK opcodes 0x17 to 0x1a to SWaitcnt, but no test encoded them and tools/progress.py only counted S_WAITCNT_VSCNT. The test runs the four waits with a null and a live register field and checks that SCC and the register are left unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 17:13:18 +02:00
DotDebian a590841f19 test(shader): cover the VOP3 carry-out add and subtracts and count v_sub_co_u32 as decoded
v_add_co_u32, v_sub_co_u32 and v_subrev_co_u32 (VOP3 0x30f, 0x310, 0x319)
decode to VAddI32, VSubI32 and VSubrevI32 and had no execution test.
tools/progress.py listed the first and the last as variants of those
opcodes but not v_sub_co_u32, which it reported as missing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 17:01:01 +02:00
DotDebian 624eeac4c5 test(shader): cover v_fmac_f32, v_fmamk_f32 and v_fmaak_f32 and count them as decoded
VOP2 0x2b, 0x2c and 0x2d decode to the opcodes of v_mac_f32, v_madmk_f32
and v_madak_f32 and differ only by the encoding, which keeps them fused.
The progress map derives names from the opcode enum, so it listed the three
fused forms as missing.

The new test decodes the six encodings and checks that the translation
rounds the product separately for 0x1f-0x21, keeps 0x2b-0x2d fused, and
reads the accumulator and the literal from the right operand.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 16:36:17 +02:00
Dean fafec33471
Merge pull request #380 from DotDebian/fix/progress-count-sopp-shared-opcodes
fix(tools): count the debug branches and s_ttracedata_imm as decoded shader instructions
2026-10-04 14:13:51 +13:00
Dean deb7e0dfff
Merge pull request #363 from DotDebian/test/sopk-cmpk-compares
test(shader): cover the s_cmpk compares and count them as tested variants
2026-10-04 14:05:04 +13:00
DotDebian b4506a359c feat(shader): decode image_sample_d_cl_o
MIMG opcode 0x33 samples with explicit derivatives, an LOD clamp and a
texel offset. The three address flags already exist; only the opcode was
missing from the decoder table.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 19:07:30 +02:00
DotDebian 92a378afc4 fix(tools): count the debug branches and s_ttracedata_imm as decoded shader instructions
SCbranchCdbg decodes SOPP 0x17-0x1a and STtracedata decodes 0x16 and 0x28,
so S_CBRANCH_CDBGSYS, S_CBRANCH_CDBGUSER, S_CBRANCH_CDBGSYS_OR_USER,
S_CBRANCH_CDBGSYS_AND_USER and S_TTRACEDATA_IMM were reported as missing
although the decoder handles them and existing tests cover them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 18:27:13 +02:00
DotDebian 5046aebc29 fix(tools): count the tested s_cmpk variants
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 17:06:50 +02:00
Adrià Franch ff532073f3 fix(tools): count exports that call a local stub wrapper as unimplemented
libSceAjm.native routes 13 exports through a static AjmStub helper that
calls NotImplemented_nid_no_patch, so the progress map counted them as
implemented. Calls to such helpers in the same file now count as stubs.
The compare report also lists functions that went back to stubs in its
header.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-01 19:23:55 +02:00
SamG-Coder 7bcde3ba95 fix(tools): count tested shared shader instruction variants 2026-10-01 20:23:58 +10:00
boykopovar 1071c9e09c feat(ci): add release workflow + update readme 2026-09-29 00:15:21 +03:00
adriadam10 e73cd7dec3 feat(tools): report progress changes on pull requests
progress.py stores the names of implemented and pending items, can
measure another source tree with --root and prints a Markdown diff of
two runs with --compare. The Progress report workflow compares every
pull request with its base, and Progress comment posts the result as a
single comment, updated on every push and removed when progress no
longer changes. Commenting runs as a separate workflow_run so pull
requests from forks never run with write permissions.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-27 18:47:32 +02:00
adriadam10 3c6b0af6f7 feat(tools): add progress map for system libraries and shader instructions
tools/progress.py counts implemented prx functions and RDNA instructions
recognized by the shader recompiler, and renders treemaps, badges and an
index page. The Progress workflow deploys them to GitHub Pages on every
push to main, so nothing generated is committed to the repository.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-27 18:21:34 +02:00