Dean
3e92cefb4c
Merge pull request #613 from nicolasabosch/feat/ult-blocking-queues
...
feat(ult): implement blocking queues and shared data pools
2026-10-05 18:06:19 +13:00
Dean
f7ecd24ddb
Merge pull request #610 from adriadam10/feat/div-fmas-fixup-clamp
...
feat(shader): accept clamp on v_div_fmas/fixup and omod on their f64 forms
2026-10-05 18:05:38 +13:00
Dean
3067a93fe9
Merge pull request #609 from nicolasabosch/fix/rtc-arithmetic-bounds
...
fix(rtc): reject out-of-range source ticks in date arithmetic
2026-10-05 18:04:57 +13:00
Nicolas Abosch
043332ba32
docs(ult): avoid overlapping AvPlayer debt note
2026-10-05 00:57:02 -03:00
Dean
4dac9d6373
Merge pull request #602 from NumberGuan/fix/relinker-prx-directory
...
fix(relinker): discover bundled modules in prx directories
2026-10-05 16:54:18 +13:00
Nicolas Abosch
65c139336e
feat(ult): implement blocking queues and shared data pools
2026-10-05 00:52:22 -03:00
Adrià Franch
c6df07e604
feat(shader): accept clamp on v_div_fmas/fixup and omod on their f64 forms
...
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-05 05:19:06 +02:00
Nicolas Abosch
76b7294f06
fix(rtc): reject out-of-range source ticks in date arithmetic
2026-10-05 00:15:57 -03:00
Dean
e91eecc402
Merge pull request #607 from adriadam10/test/setpc
...
fix(shader): refuse s_setpc_b64 after s_sub with the immediate first
2026-10-05 16:10:53 +13:00
Dean
3aedbbc128
Merge pull request #605 from adriadam10/test/ds-swizzle
...
test(shader): execute ds_swizzle_b32 in all three offset modes
2026-10-05 16:10:11 +13:00
Dean
202a73b543
Merge pull request #603 from nicolasabosch/fix/libc-long-integer-conversions
...
fix(libc): preserve 64-bit strtol and strtoul results on Windows
2026-10-05 16:09:30 +13:00
Dean
00407df8a9
Merge pull request #585 from Raghav314/feat/ajm-batch-job-queries
...
feat(ajm): implement DecodeSingle, GetGaplessDecode and GetCodecInfo
2026-10-05 15:54:58 +13:00
Dean
7dcbc18182
Merge pull request #601 from nicolasabosch/test/pixel-lds-pipeline-statistics
...
test(agc): validate pixel LDS and expose pipeline statistics
2026-10-05 15:52:43 +13:00
Dean
0bd711b13b
Merge pull request #599 from adriadam10/test/tbuffer-d16-xyzw
...
test(shader): execute tbuffer_load_format_d16_xyzw against hardware results
2026-10-05 15:52:02 +13:00
Dean
912f43670c
Merge pull request #598 from adriadam10/test/buffer-atomic-x2-leftovers
...
test(shader): execute buffer_atomic_or_x2 and buffer_atomic_swap_x2 against hardware results
2026-10-05 15:51:20 +13:00
Dean
352c6acf4b
Merge pull request #597 from adriadam10/test/flat-d16-loads
...
test(shader): execute the flat D16 loads against hardware results
2026-10-05 15:51:10 +13:00
Dean
f8a3211cea
Merge pull request #522 from adriadam10/fix/dpp16-no-form
...
fix(shader): refuse DPP16 on opcodes with no DPP form
2026-10-05 15:50:28 +13:00
Dean
6d23390ac7
Merge pull request #513 from adriadam10/feat/dpp8
...
feat(shader): decode DPP8 on VOP1 and VOP2
2026-10-05 15:49:47 +13:00
Dean
adac06b59b
Merge pull request #474 from adriadam10/feat/div-f64
...
feat(shader): implement v_div_scale_f64, v_div_fmas_f64 and v_div_fixup_f64
2026-10-05 15:49:04 +13:00
Dean
bd06241645
Merge pull request #447 from adriadam10/feat/vop3-f64-rest
...
feat(shader): implement v_rcp/rsq/sqrt_f64 and v_trig_preop_f64
2026-10-05 15:48:23 +13:00
Dean
9121886b0d
Merge pull request #436 from adriadam10/feat/sopp-smem-misc
...
feat(shader): decode the s_endpgm variants, s_round_mode and SMEM probe/discard
2026-10-05 15:47:41 +13:00
Adrià Franch
c0a98e3a6a
fix(shader): refuse s_setpc_b64 after s_sub with the immediate first
...
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-05 04:45:57 +02:00
Adrià Franch
c97030cc7b
test(shader): execute ds_swizzle_b32 in all three offset modes
...
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-05 04:34:00 +02:00
Nicolas Abosch
aa08977a59
fix(libc): preserve 64-bit long integer conversions
2026-10-04 23:27:17 -03:00
NumberGuan
75f407b926
fix(relinker): discover bundled modules in prx directories
...
Preserve each bundled module directory under app0 and resolve Linux dependencies across directories. Add integration coverage for both output formats and Windows startup. Refs #556 ; duplicate-export rejection remains unchanged.
2026-10-04 23:22:50 -03:00
Nicolas Abosch
e08333825f
test(agc): validate pixel LDS and expose pipeline statistics
2026-10-04 23:04:39 -03:00
Adrià Franch
f1a3507e90
test(shader): execute tbuffer_load_format_d16_xyzw against hardware results
...
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-05 04:01:05 +02:00
Adrià Franch
9f7d1bfa98
test(shader): execute buffer_atomic_or_x2 and buffer_atomic_swap_x2 against hardware results
...
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-05 03:54:49 +02:00
Adrià Franch
b4151114a1
test(shader): execute the flat D16 loads against hardware results
...
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-05 03:50:30 +02:00
Adrià Franch
063437cdcd
feat(shader): implement v_div_scale_f64, v_div_fmas_f64 and v_div_fixup_f64
...
These make up the precise f64 division macro compilers emit for a / b.
Like the f32 ops, the rules were measured on an RDNA2 GPU (41152 rows,
model matches all of them):
- div_scale decides from the exponent fields only: 2^128 or 2^-128
scaling and VCC for differences >= 768 or <= -768, a denormal or huge
(>= 2045) denominator and a numerator exponent <= 53; a NaN source is
passed through unchanged and a zero input gives 0xfff8000000000000.
- div_fmas scales by 2^128 when the exponent of S2 is >= 1024, else
2^-128, before the single rounding, so it reuses the exact fma
emulation with the scale folded into its final rescale.
- div_fixup follows the ISA: NaN sources are quieted, a NaN quotient
with finite inputs becomes +-inf, exponent differences below -1075
give a signed zero.
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-05 03:37:13 +02:00
Adrià Franch
4f901b9a77
feat(shader): implement v_rcp/rsq/sqrt_f64 and v_trig_preop_f64
...
Decode and translate the remaining unary f64 transcendentals and
v_trig_preop_f64.
On RDNA2 hardware v_rcp_f64, v_rsq_f64 and v_sqrt_f64 are approximations
(relative error up to ~2^-24.3 over 8209 inputs; sqrt(1.0) is not even
exact), so they are emitted as exact double operations and the test
compares against the hardware value with a 2^-23 tolerance. Special
cases are exact and selected on bits: NaN inputs are quieted (RADV keeps
signaling NaN on FDiv), negative inputs give the default NaN
0xfff8000000000000, rsq(-0) = -inf, sqrt(-0) = -0.
v_trig_preop_f64 matches the hardware bit for bit on 24627 results plus
a sweep of the table tail: the 2/PI table is 1184 bits (bits below b17
read as zero), shift = 53 * S1[4:0] + max(exp - 1077, 0), +128 scale for
exp >= 1968, omod ignored. The 53-bit window is read from a private u32
table and scaled in two exact steps so only the final multiply rounds.
Stacked on the f64 infrastructure of #446 .
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-05 03:36:14 +02:00
Adrià Franch
36c2fa4ffe
fix(shader): translate s_round_mode only for round to nearest even
...
Any other mode throws instead of being a silent no-op.
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-05 03:34:37 +02:00
Adrià Franch
69e2d801d1
feat(shader): decode the s_endpgm variants, s_round_mode and SMEM probe/discard
...
s_endpgm_saved and s_endpgm_ordered_ps_done end the wave like s_endpgm
(checked on an RDNA2 GPU: nothing after them runs), so they decode to
SEndpgm and the control flow graph treats them as terminators.
s_atc_probe, s_atc_probe_buffer and s_dcache_discard(_x2) have no visible
effect and translate to no-ops like the other scalar cache controls.
s_round_mode is ignored like s_setreg MODE writes; listed in TechnicalDebt.
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-05 03:34:37 +02:00
Adrià Franch
12befda5cf
fix(shader): refuse DPP16 on opcodes with no DPP form
...
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-05 03:33:06 +02:00
Adrià Franch
391eb6ffe8
feat(shader): decode DPP8 on VOP1 and VOP2
...
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-05 03:32:30 +02:00
Dean
ebf29f8d91
Merge pull request #595 from NahuelGenchi/fix/fma-legacy-dx9-zero
...
fix(shader): apply the DX9 zero rule to v_fma_legacy_f32
2026-10-05 14:32:00 +13:00
Dean
8a0efb6338
Merge pull request #589 from hamb3r/fix/windows-dpi-awareness
...
fix(video): set per-monitor v2 DPI awareness on Windows
2026-10-05 14:31:18 +13:00
Dean
bc0726c486
Merge pull request #583 from DiulioAires/fix/bytewriter-bounds
...
fix(relinker): check byte writer bounds
2026-10-05 14:30:37 +13:00
Dean
70596d78eb
Merge pull request #577 from CnRJay/feat/s-getreg-mode
...
feat(shader): implement s_getreg_b32 for the MODE round mode fields
2026-10-05 14:29:24 +13:00
raghav314
77e2fe1322
docs(ajm): record where the codec info and gapless values come from
2026-10-05 06:58:23 +05:30
Dean
13e0afcc00
Merge pull request #576 from CnRJay/feat/vop-legacy-fma-dot2
...
feat(shader): implement v_dot2_f32_f16
2026-10-05 14:27:40 +13:00
Dean
359aa37233
Merge pull request #594 from DotDebian/feat/shader-buffer-atomic-csub
...
feat(shader): implement buffer_atomic_csub
2026-10-05 14:25:56 +13:00
Dean
60b6cfc173
Merge pull request #590 from CnRJay/fix/agc-thread-local-teardown
...
fix(agc): free per-thread driver state at thread exit without emutls
2026-10-05 14:25:46 +13:00
Dean
ff96422459
Merge pull request #587 from nicolasabosch/fix/wave32-wide-subgroups
...
fix(shader): isolate wave32 operations in wide host subgroups
2026-10-05 14:25:04 +13:00
Dean
ec46678f61
Merge pull request #588 from DotDebian/feat/relinker-sha1-memory-operand
...
feat(relinker): lower SHA-1 instructions with a memory operand
2026-10-05 14:24:22 +13:00
Dean
65b750aee6
Merge pull request #592 from DotDebian/fix/pngenc-filter-subset
...
fix(pngenc): restrict adaptive filtering to the requested filter subset
2026-10-05 14:23:41 +13:00
Dean
18d9745de4
Merge pull request #584 from DotDebian/feat/font-get-render-scaled-kerning
...
feat(font): implement sceFontGetRenderScaledKerning
2026-10-05 14:23:00 +13:00
Dean
4ae4f53ffb
Merge pull request #338 from Pouare514/feat/prx-loader-tripwires
...
feat(prx): unknown loader tripwires for TLOU
2026-10-05 14:22:18 +13:00
Dean
d5170a3ac3
Merge pull request #521 from Pouare514/fix/crashreport-hang-watchdog
...
feat(crashreport): hang watchdog with all-threads dump
2026-10-05 14:21:37 +13:00
Dean
1a7323ecfc
Merge pull request #549 from Pouare514/fix/reserve-virtual-idempotent
...
fix(libkernel): idempotent fixed virtual reservation over registered range
2026-10-05 14:20:55 +13:00