Commit Graph
3534 Commits
Author SHA1 Message Date
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
Alex ColliniandClaude Opus 5.5 b7e21ca031 fix(agc): tell a set without a storage table from a stored element past its capacity
Both cases printed that the image storage table exceeds its capacity. They need different fixes, so each now has its own message with the set, the element's index in the set and the capacity. The debt entry now says that the index counts every table element before it in the set.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 08:45:46 +02:00
Alex ColliniandClaude Opus 5.5 35a12f5c5c fix(agc): size the pool for the storage table and check table store elements like direct ones
The non-split descriptor set's pool now counts the storage table binding's
descriptors, as the split path already did. A table storage element whose
minimum LOD clamps above the level it addresses is rejected per element, as
the direct path refuses it, and the element is looked up as written so a depth
surface under it is retired. The registration test checks again that
image_store_mip, image_store_pck and image_atomic_add through a table stay
unsupported operations that fault on use.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 08:45:46 +02: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
thuanquangandClaude Opus 5.5 ffd468e148 fix(shader): read low-half 16-bit multiply factors as 24-bit fields
On AMD's Windows driver 32.0.21045.5002 (RX 6700 XT), a product of two
values the driver knows fit in 16 bits, reduced to 16 bits and stored
with nothing else merged in, keeps all 32 bits of the product.
v_mul_lo_u16 and v_pk_mul_lo_u16 extracted 16-bit factors, so into a
register whose high half was zero they wrote 0xfffe0001 for
0xffff * 0xffff. A factor taken from the low half of its source is now
read as the low 24 bits of the register; the low 16 bits of the product
depend only on the low 16 bits of the factors.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 12:52:58 +07:00
Yunus Shaikh 2ac72d48bc Merge main into fix/libkernel-host-stack-guard-page 2026-10-16 22:29:52 -07: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
Romans Pokrovskis 15eb12009c fix(agc): refuse native MSAA vertex buffer reads 2026-10-17 08:09:24 +03:00
Romans Pokrovskis e62e2801de Merge remote-tracking branch 'origin/main' into codex/base-native-vertex-after6590-main661 2026-10-17 08:09:06 +03:00
mattogepetoandClaude Sonnet 5.5 941fd4e11e Merge remote-tracking branch 'origin/main' into fix/sysmodule-unknown-id-coverage
Keep both sides in GuestSysmodule.cpp (the unknown id check and the Windows
unwind region checks) and in libSceSysmodule.md (Silent stubs and Functional).

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-17 06:55:51 +02:00
Adrià 8730dde45f Merge pull request #5973 from pipe1os/feat/libkernel-kevent-pipe-read
feat(libkernel): support EVFILT_READ on the read end of a pipe
2026-10-17 06:53:33 +02:00
Adrià c47a4dca52 Merge pull request #5967 from EagleBearerYS/fix/libscenet-timeval-timeouts
fix(libSceNet): read SO_RCVTIMEO and SO_SNDTIMEO as a timeval in sceNetSetsockopt
2026-10-17 06:53:19 +02:00
Adrià 83b233a010 Merge pull request #6063 from snipeTR/feat/opus-sample-rates-v2
feat(opus): decode at 8, 12, 16 and 24 kHz
2026-10-17 06:53:14 +02:00
Adrià 46be9d32e8 Merge pull request #6056 from notaxeltv/feat/libSceNpManager-unknown-fc27-exports
feat(libSceNpManager): export two unknown NIDs so PPSA34015 can load
2026-10-17 06:51:48 +02:00
Adrià a15c6fb961 Merge pull request #6062 from notaxeltv/feat/libSceVdecsw-sync-decode-ppsa34015
feat(libSceVdecsw): block on SyncDecodeInput/Output like TrySync
2026-10-17 06:51:39 +02:00
Adrià cfe6683f4b Merge pull request #6064 from JAB-dev/perf/sysmodule-unwind-region-cache
perf(libSceSysmodule): cache the unwind region of loaded images on Windows
2026-10-17 06:51:34 +02:00
Adrià bb6bea8093 Merge pull request #5966 from EagleBearerYS/fix/libscenet-unbound-datagram-receive
fix(libSceNet): let a datagram receive on an unbound socket wait on Windows
2026-10-17 06:51:29 +02:00
Romans Pokrovskis 1ec58a5cd4 Merge commit '1271998d444c9f05a3330c96fc08d81c7e148bd4' into codex/validate-native-index-6590-main16 2026-10-17 07:40:59 +03:00
Dean 437f157d31 Merge pull request #6319 from hypermoist/docs/debt-duplicate-entries
docs(debt): drop the call tracing entry that --trace-imports superseded
2026-10-17 17:28:35 +13:00
Adrià 830edf86c6 Merge pull request #6049 from notaxeltv/feat/libSceNpPartner001-has-ea-access-ppsa34015
feat(libSceNpPartner001): answer sceNpHasEAAccessSubscription without an EA Access server
2026-10-17 06:11:44 +02:00
Adrià 142f7555aa Merge pull request #6051 from Ondra97/codex/fix-ajm-live-instance-handles
fix(ajm): preserve live decoder handles across ID wrap
2026-10-17 06:10:21 +02:00
Adrià ed1beacd10 Merge pull request #6034 from notaxeltv/feat/libSceLoginService-ppsa34015
feat(libSceLoginService): load Initialize/Terminate so PPSA34015 can start
2026-10-17 06:10:11 +02:00
Dean 5bd85a44c2 Merge pull request #6876 from parl0v/docs/gputime-line
docs(build): describe the [gputime] line and its command classes
2026-10-17 16:47:31 +13:00
Dean dbcb802e15 Merge pull request #6750 from LeandroLP23/docs/debt-thread-priority-gap
docs(debt): record that guest thread priorities are not applied to host threads
2026-10-17 16:46:01 +13:00
Dean ec6d3989f3 Merge pull request #6675 from xXPBSXx/docs/debt-agc-registered-shader-type-8
docs(debt): list the unprepared AGC shader types
2026-10-17 16:45:04 +13:00
Dean 2993eefd1d Merge pull request #6672 from xXPBSXx/docs/debt-ajm-codec-23
docs(debt): list the unimplemented AJM codec 23 of PPSA21480
2026-10-17 16:44:32 +13:00
Dean b705f11176 Merge pull request #6673 from xXPBSXx/docs/debt-ngs2-custom-module-0x20
docs(debt): list the NGS2 custom module id 0x20 of PPSA35169
2026-10-17 16:43:39 +13:00
Dean dfdc3dec4d Merge pull request #5280 from santhoshkumar-dev/codex/sandbox-ca-trust
feat(libkernel): serve the sandbox CA bundle from host TLS roots
2026-10-17 16:35:44 +13:00
Dean f99f3d1dca Merge pull request #6694 from MarcZX100/codex/coredump-config-dump-mode-6688
fix(libkernel): export sceCoredumpConfigDumpMode as an explicit stub
2026-10-17 16:34:12 +13:00
Adrià 30dadc2494 Merge pull request #6024 from KernelPanicNT/feat/libsceampr-cxa-call-unexpected
feat(libSceAmpr): implement __cxa_call_unexpected
2026-10-17 05:27:54 +02:00
Adrià 2083bc700f Merge pull request #6020 from KernelPanicNT/feat/libsceappcontent-addcont-download-progress
feat(libSceAppContent): implement sceAppContentGetAddcontDownloadProgress
2026-10-17 05:15:31 +02:00
Nithishvelan M 63cfca8466 feat(libSceUserService): declare KeyremapEnable and Zoom as throwing stubs 2026-10-17 08:43:48 +05:30
Santhosh Kumar eb26fb97f8 fix(libkernel): filter sandbox TLS roots and preserve path overrides 2026-10-17 02:25:41 +00:00
screammandClaude Fable 5.1 9f4a8d6ec5 feat(libkernel): serve the console CA list from the host trust store
Titles that bundle OpenSSL load the console's CA file from the sandbox
directory and fail every HTTPS request without it. ProsperoRadio
(PPSA99001, libcurl 8.18.0 + OpenSSL 3.5.2) on main + #4796 + #4525:

  [ProsperoRadio][http] https://all.api.radio-browser.info/json/servers: Problem with the SSL CA cert (path? access rights?) (error adding trust anchors from file: /gkbHtXc3Wq/common/cert/CA_LIST.cer)

SwanStation (PPSA98510) stops on the same file (#5001).

The guest path resolver now accepts exact-path providers, and libkernel
registers one for /<sceKernelGetFsSandboxRandomWord()>/common/cert/CA_LIST.cer.
On first use it writes a PEM bundle once per process to
cert_cache/CA_LIST.cer in the run directory, read-only: on Windows the
current user's ROOT and CA system stores, elsewhere SSL_CERT_FILE or the
first distro bundle that exists. Without a certificate the path keeps
resolving under the guest root and does not exist, as before. Every other
path under the sandbox word is unchanged. The console file's format and
the rest of its common/cert directory are unverified and recorded in
docs/dev/debt/libkernel.md.

With this change, #4796, #4525 and #5025 on Windows 11, 60 s each:

  [ProsperoRadio][http] 11846160 bytes in 1458 ms: 1161 passes, 803 waits (679 woken) for 1428 ms
  [ProsperoRadio][catalog] page offset=0 bytes=11846160 objects=10000 accepted=9549 total=9549
  ...
  [ProsperoRadio][catalog] page offset=60000 bytes=1712035 objects=1494 accepted=1436 total=59371

  [SwanStationPS5] update: latest 1.2.5, this 1.1.3, available
  [SwanStationPS5] gamedb: index written

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-17 02:24:02 +00:00
Adrià 8566becc1c Merge pull request #6019 from KernelPanicNT/feat/libscefont-text-codes
feat(libSceFont): implement sceFontCharactersRefersTextCodes and text code stepping
2026-10-17 04:14:50 +02:00
Adrià c9cabcaf84 Merge pull request #6008 from zmeizy/claude/ldexp-f32-denormal-modes
fix(shader): translate v_ldexp_f32 in f32 denormal modes 1 and 2
2026-10-17 04:14:45 +02:00
Dean f643e61d9c Merge pull request #1693 from julienlgy/feat/razor-cpu-named-sync
fix(libSceRazorCpu): add sceRazorCpuNamedSync export
2026-10-17 15:02:12 +13:00
Get-fix 487b9fd4e4 feat(libkernel): read param.sfo when param.json is absent
PS4 titles ship sce_sys/param.sfo instead of param.json. When param.json
is absent, the application metadata now reads the title, title ID,
download data size and user defined parameters from param.sfo, and
/data and /download0 are mounted for it as for param.json. param.json
is still preferred when both files exist.
2026-10-17 04:46:16 +03:00
Adrià fd9e577d98 Merge pull request #6007 from zmeizy/claude/cmp-f32-denormal-modes
fix(shader): translate f32 compares in f32 denormal modes 1 and 2
2026-10-17 03:10:56 +02:00
Adrià 6caba08643 Merge pull request #6003 from XairRrR/fix/fiber-large-context-stack
fix(libSceFiber): run a fiber on its own context when the context is large
2026-10-17 02:45:04 +02:00
Adrià b1cb3ed43b Merge pull request #5991 from Get-fix/ps4/videoout-ps4-buffers
feat(libSceVideoOut): register PS4 display buffers
2026-10-17 02:44:59 +02:00
Adrià Franch b35caffd12 fix(libSceRazorCpu): take the label argument of sceRazorCpuNamedSync 2026-10-17 13:06:46 +13:00
julienlgyandCopilot f4a33b7960 fix(libSceRazorCpu): add sceRazorCpuNamedSync export
Resolve the XCuZoBSVFG8 import required by Killzone Liberation by adding sceRazorCpuNamedSync as a no-op returning success when capture is inactive.

Extend the RazorCpu behavior test and document the NID source and unverified console signature and capture behavior.

Co-authored-by: Copilot <[email protected]>
2026-10-17 13:06:36 +13:00
Dean e751dd2057 Merge pull request #6236 from fogydes/fix/playgo-unlisted-chunks-setting
fix(libScePlayGo): let users answer unlisted chunks
2026-10-17 13:05:47 +13:00
Dean 9070237dfd Merge pull request #5676 from MarcZX100/codex/pad-n3ksx62fgno-status
fix(libScePad): return measured status for unknown Pad NID
2026-10-17 13:05:42 +13:00
Dean 72a848ca52 Merge pull request #4533 from Roojool/contrib/g07-pthread-getname
fix(libkernel): answer pthread_getname_np for a joined thread with ESRCH
2026-10-17 13:05:38 +13:00