Commit Graph
9346 Commits
Author SHA1 Message Date
XairRrR bf0c51e4c1 perf(recompiler): scan image-table key buffers in bulk
Narrowing a table column read its key buffer one key at a time, with a
page lookup and a single-word read per key; PPSA05684 scans about 20,000
keys per table snapshot. The scan now checks each page once and reads the
keys with the bulk reader, and maps a key to its record without dividing
when the multiplication cannot wrap.

Gameplay, image-table time per snapshot: about 6.5 ms before, 5 ms after.

AI-assisted: yes
2026-10-17 17:03:03 +02:00
Dean 20a84154ff Merge pull request #6882 from Ondra97/codex/fix-buffer-slab-failure-cleanup
fix(agc): release buffer slabs when metadata allocation fails
2026-10-18 00:10:12 +13:00
Adrià 864729dc0d Merge pull request #6105 from Zinebyte/fix/macos-guest-weak-imports
fix(relinker): preserve weak imports in macOS guest modules
2026-10-17 12:44:41 +02:00
Adrià 673f7406c5 Merge pull request #6103 from Zinebyte/fix/sem-timedwait-cancellation
fix(libkernel): cancel before acquiring a ready timed semaphore
2026-10-17 12:15:32 +02:00
Dean ca82d7d882 Merge pull request #6180 from MarcZX100/codex/fix-pixel-lane63-proof-budget-5398
fix(shader): budget pixel lane proof for NHL 26 replay
2026-10-17 23:07:55 +13:00
Adrià d7262bd6d6 Merge pull request #5915 from SandstromPL/fix/agc-single-sample-scan-multisampled-depth
fix(agc): rasterize a single-sample scan into a multisampled depth target at the pixel center
2026-10-17 12:00:13 +02:00
Adrià 23a0dad994 Merge pull request #6100 from Zinebyte/fix/web-appledouble-metadata
fix(web): recognize AppleDouble ZIP metadata
2026-10-17 12:00:08 +02:00
Adrià fce6353052 Merge pull request #6026 from leorossi2005/feat/voiceqos-endpoints
feat(libSceVoiceQoS): implement endpoints and connections to unblock
2026-10-17 12:00:03 +02:00
Dean bf20538169 Merge pull request #7053 from inmert/fix/relinker-macos-libc-for-libkernel
fix(relinker): list libc.prx with libkernel.prx in macOS executables
2026-10-17 22:32:23 +13:00
Dean 6d6e33d638 Merge pull request #6790 from simonbronk/codex/nid-empty-symbol-filter
fix(nid-names): keep empty symbol filters in name mode
2026-10-17 22:26:53 +13:00
Adrià 501f740529 Merge pull request #6074 from notaxeltv/feat/libc-aligned-new-ppsa34015
feat(libc): allocate through operator new with align_val_t
2026-10-17 11:26:33 +02:00
Adrià 05f6541e48 Merge pull request #6087 from notaxeltv/feat/libc-locale-classic-ppsa34015
feat(libc): export locale::classic (PPSA34015)
2026-10-17 11:26:28 +02:00
Adrià ef674f5af3 Merge pull request #7055 from adriadam10/fix/main-loadexec-cleanup
fix(main): retry temp dir cleanup in loadexec_arguments on Windows
2026-10-17 11:13:58 +02:00
Adrià FranchandClaude 5e87aaed47 fix(main): retry temp dir cleanup in loadexec_arguments on Windows
Run 39019245350 (main f05fc7d953) failed loadexec_arguments with WinError 5 on
unlinking guest_loadexec_host.prx in TemporaryDirectory cleanup: the exited
guest process still held the module briefly. #7038 does not touch it (0 of 25
earlier main builds failed). Retry the removal for up to 10 s.

Co-Authored-By: Claude <[email protected]>
2026-10-17 11:13:41 +02:00
Dean f05fc7d953 Merge pull request #7038 from thuanquang/fix/packed-f16-denormal-modes
feat(shader): translate packed f16 in the f16 denormal modes that flush
2026-10-17 21:56:30 +13:00
inmert f91e53d595 fix(relinker): list libc.prx with libkernel.prx in macOS executables 2026-10-17 14:06:01 +05:30
thuanquangandClaude Opus 5.5 e5cc0bc0ff feat(shader): translate packed f16 in the f16 denormal modes that flush
v_pk_add/mul/fma/fmac/min/max_f16 threw in f16 denormal modes 0-2. On
RDNA2 (gfx1031) bit 6 clear flushes each denormal input lane to a zero
of its sign, and bit 7 clear flushes an add result below 2^-14 and a
mul or fma result whose exact value rounded to 11 significant bits
with an unbounded exponent is below 2^-14, as the scalar forms do;
min/max flush only their inputs. Packed f16 still throws for f16
rounding other than nearest even.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 21:23:10 +13:00
Dean adb0e7a8cb Merge pull request #7040 from thuanquang/fix/fma-mix-f16-input-flush
fix(shader): flush v_fma_mix_f32 f16 sources by the f16 denormal field
2026-10-17 21:21:53 +13:00
Dean bf0bec93ff Merge pull request #7041 from thuanquang/fix/div-fixup-f64-input-flush
fix(shader): flush v_div_fixup_f64 src1 and src2 by the f64 denormal field
2026-10-17 21:21:49 +13:00
Dean 660cf7b215 Merge pull request #7001 from MarcZX100/codex/fix-viewbytes-range-6999
fix(agc): cover unaligned guest buffer views
2026-10-17 21:21:45 +13:00
Adrià 5f61879a97 Merge pull request #7046 from adriadam10/ci/fix-error-label
ci: label pull requests that close an issue
2026-10-17 10:00:19 +02:00
Adrià FranchandClaude dde946d488 ci: label pull requests that close an issue
Co-Authored-By: Claude <[email protected]>
2026-10-17 10:00:09 +02:00
Dean 52798f71d5 Merge pull request #6892 from tibzejoker/perf/resident-linear-targets
perf(agc): linear color targets over imported memory get a resident image
2026-10-17 20:52:24 +13:00
Dean 7a2435edee Merge pull request #6814 from MarcZX100/codex/agc-library-prebuild-replacement-race
fix(agc): drain library prebuilds before device replacement
2026-10-17 20:52:21 +13:00
Dean a60ac1fbed Merge pull request #7034 from thuanquang/fix/f16-fma-denormal-flush
fix(shader): flush v_fma_f16 family denormals by the f16 denormal field
2026-10-17 20:52:18 +13:00
simonbronk 4ef9056af4 fix(nid-names): keep empty symbol filters in name mode 2026-10-17 09:44:27 +02:00
Dean 3b10c7ef09 Merge pull request #4288 from 014-code/fix/spirv-optimizer-memory-4166
fix(shader): bound SPIR-V scalar replacement
2026-10-17 20:35:30 +13:00
Dean acca883e0b Merge pull request #3557 from karanvora2599/perf/shader-native-scalar-f16
perf(shader): compute scalar f16 add, sub and mul with native f16 math
2026-10-17 20:35:26 +13:00
Dean 17cfb1f4cb Merge pull request #7031 from thuanquang/fix/f16-pack-denormal-flush
fix(shader): flush v_cvt_pkrtz_f16_f32 and v_pack_b32_f16 f16 denormals
2026-10-17 20:22:25 +13:00
Dean 8a2a2ee78f Merge pull request #7030 from thuanquang/fix/div-fixup-f16-input-flush
fix(shader): flush v_div_fixup_f16 src1 and src2 by the f16 denormal field
2026-10-17 20:22:21 +13:00
Dean b365e67320 Merge pull request #7003 from MarcZX100/codex/explain-sampler-device-limit-7000
fix(agc): report sampler device limits
2026-10-17 20:22:16 +13:00
Dean 61ba0d9185 Merge pull request #7021 from thuanquang/fix/f16-compare-input-flush
fix(shader): flush f16 compare inputs by the FLOAT_MODE f16 denormal field
2026-10-17 20:22:13 +13:00
thuanquangandClaude Opus 5.5 a08adae15f fix(shader): flush v_div_fixup_f64 src1 and src2 by the f64 denormal field
On RDNA2 (gfx1031) f16/f64 denormal modes 0 and 2 flush the denominator
and numerator of v_div_fixup_f64 to a zero of the same sign and keep a
denormal quotient and result, as v_div_fixup_f32 does with the f32
field. The translation used them unflushed, so 0 / 2^-1074 gave 0
instead of the default NaN.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 14:08:08 +07:00
thuanquangandClaude Opus 5.5 0194926b8a fix(shader): flush v_fma_mix_f32 f16 sources by the f16 denormal field
v_fma_mix_f32 used its f16 sources unflushed in every mode. On RDNA2
(gfx1031) f16 denormal modes 0 and 2 flush each f16 source to a zero
of its sign, whatever the f32 denormal field, so
v_fma_mix_f32 0, 0, 0x0001 (all f16) is 0 there instead of 2^-24.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 14:03:55 +07:00
Dean f8b22edfb7 Merge pull request #6988 from MarcZX100/codex/stabilize-preparation-scope-settle-6984
test(agc): wait for preparation workers before linking
2026-10-17 19:51:49 +13:00
thuanquangandClaude Opus 5.5 79a8c81b54 fix(shader): flush v_fma_f16 family denormals by the f16 denormal field
v_fma_f16, v_fmac_f16, v_fmamk_f16 and v_fmaak_f16 ignored the
FLOAT_MODE f16 denormal field. On RDNA2 (gfx1031) at f16 round to
nearest even, bit 6 clear flushes every denormal input to a zero of its
sign, and bit 7 clear flushes the result when the exact product-sum
rounded to 11 significant bits with an unbounded exponent is below
2^-14, the rule v_mul_f16 already follows. The f16 FMA path now flushes
its inputs and its round-to-odd result in those modes; the magnitude
test is shared with float16Binary as flushTinyF16Value.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 13:44:00 +07:00
Dean 6e7ba928a2 Merge pull request #6227 from Celegans12/fix/netctl-empty-info-strings
fix(libSceNetCtl): answer the DHCP host name, PPPoE name and proxy server as empty strings
2026-10-17 19:40:31 +13:00
thuanquangandClaude Opus 5.5 3a4d3bb35e fix(shader): flush v_cvt_pkrtz_f16_f32 and v_pack_b32_f16 f16 denormals
Both ignored the FLOAT_MODE f16 denormal field. On RDNA2 (gfx1031)
v_cvt_pkrtz_f16_f32 flushes each denormal half result to its signed zero
when bit 7 of FLOAT_MODE is clear, and v_pack_b32_f16 flushes each
denormal half input when bit 6 is clear. Modes that keep them and
shaders without a known float mode are translated as before.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 13:24:16 +07:00
thuanquangandClaude Opus 5.5 552ab7da47 fix(shader): flush v_div_fixup_f16 src1 and src2 by the f16 denormal field
On RDNA2 (gfx1031) f16 denormal modes 0 and 2 flush the denominator and
numerator of v_div_fixup_f16 to a zero of the same sign and keep a
denormal quotient and result, as v_div_fixup_f32 does with the f32
field. The translation used them unflushed in every mode, so 0x0001 / 0
gave +infinity instead of the default NaN.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 13:21:18 +07:00
thuanquangandClaude Opus 5.5 4a235b4358 fix(shader): flush f16 compare inputs by the FLOAT_MODE f16 denormal field
v_cmp_X_f16 and v_cmpx_X_f16 compared denormal halves as their exact
values in every mode. On RDNA2 (gfx1031) f16 denormal modes 0 and 2
flush both inputs to a zero of the same sign first, so
v_cmp_eq_f16 0x0000, 0x0001 is true there. Both inputs now go through
flushF16InputValue; modes 1 and 3 and shaders without a known float
mode are translated as before.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 13:11:24 +07:00
Dean 6a32550fd1 Merge pull request #6699 from MarcZX100/codex/sampler-heap-32-6692
fix(shader): support 32 logical samplers in runtime heap
2026-10-17 18:45:02 +13:00
Dean 2bfe0045d8 Merge pull request #5940 from zmeizy/claude/pknorm-f16-denormal-inputs
fix(shader): flush v_cvt_pknorm_*_f16 denormal inputs by FLOAT_MODE
2026-10-17 18:21:25 +13:00
Dean 750eb13d87 Merge pull request #6401 from MarcZX100/codex/windows-tls-eof-read-6391
fix(relinker): guard TLS instruction byte access at EOF
2026-10-17 18:15:00 +13:00
Dean 661a1118cc Merge pull request #6626 from IshmamDC217/fix/conventions-ci-gate-indent
fix(tools): read workflow job keys at the indentation the file uses
2026-10-17 18:00:57 +13:00
Dean 696c5f3516 Merge pull request #6156 from MarcZX100/codex/relinker-guest-dir-identity
fix(relinker): compare guest module directories by identity
2026-10-17 18:00:53 +13:00
Dean aae9f379ed Merge pull request #6950 from MarcZX100/codex/carry-connect-listener
fix(libkernel): return EOPNOTSUPP when connecting to a listener
2026-10-17 18:00:50 +13:00
Dean 52ed3da697 Merge pull request #6744 from Ondra97/codex/fix-store-untracked-lifetime
test(agc): wait for the tested surface's pending image
2026-10-17 17:56:11 +13:00
Dean 10e0906273 Merge pull request #6407 from MarcZX100/codex/conventions-duplicate-export-quotepath-6388
fix(tools): keep duplicate export paths unquoted
2026-10-17 17:55:52 +13:00
Dean e047444ec8 Merge pull request #6408 from MarcZX100/codex/progress-treemap-sliver-label-6390
fix(tools): hide labels that do not fit treemap slivers
2026-10-17 17:55:34 +13:00
Adrià 37f0253ce8 Merge pull request #5980 from Ondra97/codex/fix-ftruncate-invalid-descriptor
fix(libkernel): reject invalid ftruncate descriptors safely
2026-10-17 06:53:47 +02:00