59 Commits
Author SHA1 Message Date
Dean 50efb5c405 Merge pull request #8799 from AMRYB/fix/progress-snapshot-validation
fix(tools): validate progress comparison snapshots
2026-10-21 20:49:11 +13:00
Amr Yasser 5cfbae8016 fix(tools): validate progress comparison snapshots 2026-10-21 04:07:51 +03:00
xXPBSXxandClaude Sonnet 5.5 d48181d110 fix(tools): name a --root that is not a source tree in progress
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-21 01:33:25 +02:00
Dean cc798b8248 Merge pull request #8131 from xXPBSXx/fix/progress-compare-snapshots
fix(tools): name the unreadable snapshot in progress --compare
2026-10-20 18:34:17 +13:00
xXPBSXxandClaude Sonnet 5.5 e827ddf45e fix(tools): name the unreadable snapshot in progress --compare
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 01:17:14 +02:00
emirplus 5965ea6100 fix(tools): read C++ source files with utf-8 encoding in progress scanner 2026-10-19 19:19:55 +03:00
Adrià f849e58cfa Merge pull request #6323 from Gabrieljr42/feat/progress-module-json
feat(tools): add a module filter and JSON output to progress.py
2026-10-19 01:17:26 +02:00
Gabrieljr42 3a2e9d2949 fix(tools): write progress site files as UTF-8 2026-10-15 17:07:42 -03:00
Gabrieljr42 a2392c0246 feat(tools): add a module filter and JSON output to progress.py 2026-10-15 17:04:10 -03:00
MarcZX100 c7ef905927 fix(tools): hide labels that do not fit treemap slivers 2026-10-15 14:14:25 +00:00
Adrià fd6c5ad9c1 Merge pull request #5363 from MiniRML/fix/progress-transitive-stub-helpers
fix(progress): follow chains of local stub helpers
2026-10-14 20:59:16 +02:00
GalaxyGamingFRandClaude Opus 5.5 702c330576 fix(progress): do not treat a keyword before :: as a qualifier
`return ::Fail();` and `else ::Fail();` call the global wrapper, but
QUALIFIED took the keyword for a qualifier name and counted the export
as done. The name before `::` must now be an identifier that is not a
keyword, or a template's closing `>`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012zyXkUzTZGh3nBwNMtrLaW
2026-10-14 11:00:11 -07:00
GalaxyGamingFRandClaude Opus 5.5 05357cbbf9 fix(progress): ignore member and qualified calls to stub wrappers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012zyXkUzTZGh3nBwNMtrLaW
2026-10-14 01:10:10 -07:00
MiniRML 6c90102e50 fix(progress): follow chains of local stub helpers 2026-10-13 10:59:58 -07:00
Adrià a56c905df6 Merge pull request #4589 from MiniRML/fix/tools-cut-helper-accounting
fix(tools): exclude cut helpers from NID accounting
2026-10-13 17:24:55 +02:00
MiniRML a8a78ded96 fix(progress): load the tokenizer beside the source file 2026-10-13 16:27:51 +02:00
MiniRML f37eecfdac fix(progress): ignore C++ raw-string contents 2026-10-13 16:27:51 +02:00
GalaxyGamingFRandClaude Fable 5.1 1c32fd93c8 fix(progress): read cmake and shader tables as utf-8
scan_library and collect_shaders read CMakeLists.txt, the ISA table and the opcode header with the locale codec. On Windows that is cp1252, so a UTF-8 file containing U+2010 or U+2192 raised UnicodeDecodeError. These reads now pass encoding="utf-8" and errors="ignore", and a subprocess test with an ASCII default codec covers it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V9UU71SP1UKGR51Sowbgmq
2026-10-13 14:48:50 +02:00
boykopovar 0f2683cb7d Merge pull request #5135 from boykopovar/feat/web-relinker-ui
feat(ci): add relinker wasm build ci
2026-10-13 15:31:28 +03:00
boykopovar dece64c6e8 ci(pages): build and deploy wasm converter 2026-10-13 15:26:04 +03:00
GalaxyGamingFRandClaude Fable 5.1 02dad4429f fix(progress): recognise non-static and noexcept stub helpers
The stub helper pattern required a leading static and a plain signature,
so exports calling helpers in anonymous namespaces, or helpers with
noexcept, a trailing return type or a pointer next to the name, counted
as done. The pattern now anchors at line start, makes static optional,
skips APS5_VABI exports and control keywords, and accepts those suffixes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V9UU71SP1UKGR51Sowbgmq
2026-10-13 11:42:32 +02:00
Adrià FranchandClaude 63e60db1a7 feat(progress): publish a progress history chart
tools/progress_history.py measures the first-parent history of main with
the rules of tools/progress.py, one point per day, and writes history.json,
history.svg and history.html. The Progress workflow runs it after
progress.py; the README shows the chart under the map and links the page.
Labels and points compact as days accumulate.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-12 21:31:09 +02:00
MiniRML 53d10eac9a fix(tools): exclude cut helpers from NID accounting 2026-10-12 09:24:13 -07:00
Dean 796daf5ef0 Merge pull request #3906 from GalaxyGamingFR/fix/progress-render-sliver
fix(progress): skip cells for rectangles without area
2026-10-12 16:09:45 +13:00
GalaxyGamingFRandClaude Fable 5.1 a89aa5c0d0 fix(progress): skip cells for rectangles without area
When squarify gave a group a sliver narrower than 2px, treemap passed cells a zero or negative width, so the row count became complex or divided by zero and render crashed. cells now returns no cells for rectangles without area. A regression test renders a 300 and 1 item split.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V9UU71SP1UKGR51Sowbgmq
2026-10-11 12:00:10 -07:00
Winvoker c9038f7d8d fix(progress): match stub calls across whitespace 2026-10-11 15:06:06 +03:00
MarcZX100 05504bb05e fix(tools): retain literals when classifying inert returns 2026-10-11 11:44:32 +00:00
Leandro Soares 90a82da283 feat(tools): mark behaviourally empty bodies in the progress report
Cherry-picked from commit f1be92e95c02be451971fc1a8eec139e738e936d.
2026-10-11 11:44:28 +00:00
Achraf ReyaniandClaude Opus 5.5 ef94a36b90 fix(progress): blank literals and comments in one pass
An apostrophe in a block comment paired with a later character literal on
the same line when literals were blanked before comments, exposing a brace
and ending the body early.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 17:17:40 +09:00
GalaxyGamingFRandClaude Fable 5.1 f3216874c5 fix(progress): ignore braces in literals and comments when scanning bodies
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-11 17:16:25 +09:00
MarcZX100 02941b8e3f fix(tools): detect non-void stub wrappers 2026-10-10 19:24:18 +00:00
Adrià FranchandClaude 507f5707dc fix(progress): link include-shared libraries and label empty ones
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-10 08:49:58 +02:00
PrintOrb cf744a3740 fix(tools): preserve UTF-8 in progress comparisons 2026-10-09 08:10:27 -05:00
SK Arin 6e951bd0ed fix(progress): exclude library test fixtures from function counts 2026-10-08 17:30:43 +05:30
Dean 78cac62f30 Merge pull request #1137 from Sanjaysrinivas/fix/progress-shared-sources
fix(progress): report shared-source libraries
2026-10-08 18:29:17 +13:00
Sanjaysrinivas efdbbf1a70 fix(progress): report shared-source libraries 2026-10-07 21:40:38 +02:00
ploysiusandClaude Opus 5.5 f2bee7d270 fix(tools): stop counting IMAGE_*_PCK2/PCK4 as decoded instructions
IMAGE_LOAD_PCK2/PCK4, IMAGE_LOAD_MIP_PCK2/PCK4, IMAGE_STORE_PCK2/PCK4 and
IMAGE_STORE_MIP_PCK2/PCK4 are separate MIMG opcodes (112/113, 115/116,
118/119, 121/122 on RDNA1 and RDNA2 in AMD's generated tables), not dmask
forms of IMAGE_LOAD_PCK (2), IMAGE_LOAD_MIP_PCK (4), IMAGE_STORE_PCK (10)
and IMAGE_STORE_MIP_PCK (11). The decoder has no entries for them and
throws "unsupported MIMG opcode", so they are no longer credited.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 10:27:59 -04:00
Kikoarl c8e4a17f89 feat(shader): decode s_setkill as s_endpgm 2026-10-07 08:39:41 +02:00
Kikoarl d155f4555c fix(tools): count packed MIMG variants as decoded shader instructions
ImageLoadPck, ImageLoadMipPck, ImageStorePck and ImageStoreMipPck are
decoded and implemented for 2- and 4-dword transfers, but the disassembler
and rdna_isa.txt list them under separate _PCK2 and _PCK4 mnemonics.
Existing tests in ImageLoadPacked and ImageStorePacked already cover
these dword counts.
2026-10-06 20:59:47 +02:00
Adrià FranchandClaude 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à FranchandClaude 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à FranchandClaude 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
DotDebianandClaude Opus 5.5 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
DotDebianandClaude Opus 5.5 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
DotDebianandClaude Opus 5.5 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