Commit Graph
6285 Commits
Author SHA1 Message Date
Dean d962e7b9b4 Merge pull request #9072 from rocklouis055/feat/fiber-attach-context
feat(libSceFiber): attach contexts on run and switch, internal option initialize
2026-10-24 20:24:40 +13:00
JJenkxandClaude Opus 5.5 e7d3411eea fix(libc): compute nextafter and nextafterf with FreeBSD msun's algorithm, as titles' libc.prx does
nextafter and nextafterf returned the host's functions. On Windows they
set ERANGE for a step from zero to the smallest subnormal, which the
titles' copies do not, and pick a different NaN when both arguments are
NaNs. The titles' copies are FreeBSD msun's s_nextafter.c and
s_nextafterf.c with ERANGE at msun's overflow and underflow returns; both
functions now compute that, choosing the NaN explicitly so the compiler
cannot reorder msun's x + y.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 03:23:18 -04:00
Dean 34c97ca9d9 Merge pull request #9046 from mehmetbayoglu/fix/recompiler-cache-line-endings
fix(recompiler): hash shader cache sources with normalized line endings
2026-10-24 20:22:23 +13:00
Dean 1e577d1c56 Merge pull request #10180 from mazen320/feat/libc-codecvt-iw-vtable
feat(libc): export the wide codecvt facet vtable as data
2026-10-24 20:21:52 +13:00
JJenkxandClaude Opus 5.5 9d9c47b899 Merge main into PR #9850
Additive conflicts with main's newer libc math changes: the debt list keeps
both sides' entries (per entry), the GuestMath.cpp test functions and calls
from both sides are kept, and Math.cpp keeps both sides' independent changes.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 03:19:26 -04:00
JJenkxandClaude Opus 5.5 7488308bb9 Merge main into PR #9844
Additive conflicts with main's newer libc math changes: the debt list keeps
both sides' entries (per entry), the GuestMath.cpp test functions and calls
from both sides are kept, and Math.cpp keeps both sides' independent changes.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 03:19:24 -04:00
Adrià FranchandClaude Sonnet 5.5 954bed036d docs(agc): order the progress switch row and keep the debt list contiguous
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-24 09:02:30 +02:00
Zenodeon 2dc33842b2 test(agc): remove scheduler-dependent submission readiness gates 2026-10-24 09:02:30 +02:00
Zenodeon a49303005d feat(agc): add opt-in bounded submission progress 2026-10-24 09:02:30 +02:00
Dean Galvin c3a9a613c7 Merge main into codex/libc-acoshf-msun 2026-10-24 20:00:35 +13:00
Yunus Shaikh 719a048a1f Merge main into fix/agc-rewatched-imports-compared-when-shared 2026-10-23 23:58:11 -07:00
Dean 1e20650e84 Merge pull request #10306 from JJenkx/windows/libc-expm1-msun
fix(libc): compute expm1 with FreeBSD msun's algorithm, as titles' libc.prx does
2026-10-24 19:55:25 +13:00
Dean 98a7d60a02 Merge pull request #8306 from ZSWolt/feat/libc-swscanf-wide-synonyms
fix(libc): end swscanf at %S and %C as a matching failure
2026-10-24 19:54:56 +13:00
Dean ec3ea2f558 Merge pull request #6586 from JJenkx/fix/linux-runtime-module-start
fix(loader): defer Linux runtime module starts until requested
2026-10-24 19:54:29 +13:00
Dean f8b61a2cca Merge pull request #10372 from Kapy2003/feat/ngs2-custom-mastering-rack-0x4003
feat(libSceNgs2): support custom mastering rack 0x4003
2026-10-24 19:53:37 +13:00
orezraeyandClaude Opus 5.5 5515884034 docs(videoout): state the overlay upload memory bound
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 03:43:15 -03:00
Emanuele dbda360df4 feat(agc): emulate a one-sided depth bounds test without the depthBounds feature 2026-10-24 08:41:27 +02:00
Emanuele d93cdf402d fix(libkernel): defer raises while a thread holds the address-wait lock on Linux and macOS
On Linux and macOS, sceKernelRaiseException runs the guest handler in
the target's SIGUSR1 handler wherever the thread was interrupted. A
thread interrupted while it held the address-wait lock of
sceKernelSyncOnAddressWait, sceKernelSyncOnAddressWake or _umtx_op ran
the handler with the lock held, so a handler that waits, as a
stop-the-world collector's does, blocked every other thread that waits
on or wakes an address. #5756 fixed this on Windows.

The address-wait lock is now taken under DeliveryDeferral on every
host. On POSIX the deferral is a count per thread: while it is raised
the SIGUSR1 handler only records the signal, and DeliverDeferred sends
it to the thread again once the lock is released. An address waiter
waits on its own semaphore (sem_t, a dispatch semaphore on macOS) with
the lock released and the deferral lifted, so a raise reaches a thread
that waits for an address without a timeout.

The address-lock phases of guest_raise_exception now run on every
host, with a new phase that raises at a thread in an unbounded address
wait.
2026-10-24 08:40:37 +02:00
Adrià b0f57be3c7 Merge pull request #6086 from notaxeltv/feat/libc-thread-hardware-concurrency-ppsa34015
feat(libc): export std::thread::hardware_concurrency (PPSA34015)
2026-10-24 08:18:54 +02:00
thuanquangandClaude 46a13989b9 docs(shader): remove the stale converted unorm image loads entry
Co-Authored-By: Claude <[email protected]>
2026-10-24 13:03:22 +07:00
orezraeyandClaude Opus 5.5 698697cbc7 fix(libkernel): throw for an unmeasured unbalanced thread atexit decrement on a module
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 02:53:35 -03:00
orezraeyandClaude Opus 5.5 11df317b82 docs(libkernel): list SO_ACCEPTFILTER, option 0x10000 and the timestamp options in the socket debt
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 02:49:38 -03:00
orezraeyandClaude Opus 5.5 711171a505 Merge fix/libkernel-tcp-options-measured-ps5 into fix/libkernel-socket-flags-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 02:49:29 -03:00
orezraeyandClaude Opus 5.5 8d4002884c docs(libkernel): mark the unmeasured TCP_MAXSEG bound and the AF_INET6 default
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 02:47:23 -03:00
orezraeyandClaude Opus 5.5 ac54c95c77 Merge main into fix/libc-strftime-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 02:44:33 -03:00
orezraeyandClaude Opus 5.5 ded043d552 feat(videoout): composite the overlay bus over the main output
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 02:43:21 -03:00
orezraeyandClaude Opus 5.5 366c18439e docs(libSceNet): move the sceNetRecv truncation note to the libSceNet debt file
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 02:43:13 -03:00
Adrià a5a2c946a3 Merge pull request #10396 from CrimsonMac/fix/lds-misaligned-atomic64-fault
fix(shader): fault on misaligned 64-bit LDS atomics under the workgroup lock
2026-10-24 07:33:30 +02:00
orezraeyandClaude Opus 5.5 db9e8a846b fix(libkernel): ignore the sendto address of a connected stream socket
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 02:33:20 -03:00
hypermistandClaude Opus 5.5 2dd8d4902d feat(libSceFont): report font style information through the FreeType driver
sceFontGetFontStyleInformation fills the 24-byte style block through the
driver slot at SysDriver+0x48, as libSceFont and libSceFontFt do in
firmware 13.60: the FreeType family and style names, the italic and bold
flags, the OS/2 weight class when it is a multiple of 100 from 100 to 900,
the width class below 10, and 1 plus a right-to-left head direction plus
0x80 for vertical metrics. A font-set record supplies the same fields
directly. A failed call points both names at an empty string and clears
the rest.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 18:30:38 +13:00
orezraeyandClaude Opus 5.5 ee83082a10 docs(libkernel): mark the unmeasured zero-length receive cases and keep the libSceNet truncation note
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 02:27:12 -03:00
Dean 09f62b94c9 Merge pull request #9216 from Felipebmaitan/feat/libc-fegetexcept
feat(libc): implement fegetexcept
2026-10-24 18:23:35 +13:00
Dean 564de82a00 Merge pull request #10044 from JJenkx/perf/agc-storage-cache-half-heap
perf(agc): let the storage image cache take up to half of the heap budget
2026-10-24 18:23:07 +13:00
Dean a1e1ed0eab Merge pull request #10172 from EagleBearerYS/feat/netctl-get-result-ipv4-events
feat(libSceNetCtl): report no error from sceNetCtlGetResult for IPv4 events
2026-10-24 18:21:20 +13:00
hypermistandClaude Opus 5.5 da04d2eede feat(libSceFont): report font metrics through the FreeType driver
sceFontGetFontMetrics fills the 64-byte metrics block through a new
driver slot at SysDriver+0x98, as libSceFont and libSceFontFt do in
firmware 13.60. Form 1 reads hhea, 2 the OS/2 typographic values, 3 the
OS/2 Windows values and 4 the vertical values from vhea or OS/2; 2 and 3
fall back to hhea when OS/2 is missing or gives an empty range. The
bounding box, em size, raw weight deltas and slant follow. A failed call
clears the block and sets both weights to 1.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 18:11:40 +13:00
Adrià 7966e590ef Merge pull request #8740 from Sam-mon7/feat/frame-replay
feat(agc): capture frames at the driver boundary and replay them offline
2026-10-24 07:03:41 +02:00
thuanquang fe1927d398 Merge remote-tracking branch 'origin/main' into fix/linear-target-import-creation
# Conflicts:
#	core/libs/prx/libSceAgcDriver/tests/BdaResources.cpp
2026-10-24 11:55:57 +07:00
thuanquangandClaude b012267774 docs(agc): drop the stale "only" from the alpha-to-coverage entry
Co-Authored-By: Claude <[email protected]>
2026-10-24 11:55:55 +07:00
JJenkxandClaude Opus 5.5 99abd2604d fix(libc): compute expm1 with FreeBSD msun's algorithm, as titles' libc.prx does
expm1 returned the host's expm1, whose last bit differs from the titles'
copy on Windows on 35,152,346 of 320 million random arguments. The titles'
copy is FreeBSD msun's s_expm1.c, and it sets ERANGE only when a finite
argument overflows to infinity. expm1 now computes that algorithm and sets
ERANGE there.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 00:43:08 -04:00
harisibrar1andClaude Opus 5.5 c7cd45c0da fix(libkernel): return EINTR from pselect when its mask unblocks a pending signal
FreeBSD's kern_pselect installs the mask and kern_select sleeps with
PCATCH, so a pending signal that the new mask unblocks makes the call
return EINTR once the descriptors have been scanned. Here the handler ran
inside the mask swap and select then waited the full timeout, or forever
with no timeout. The swap now reports whether a handler ran, and pselect
then scans the descriptors once without waiting: a ready descriptor, a
zero timeout or an invalid argument keep select's answer, and otherwise
the call fails with EINTR and leaves the descriptor sets unchanged.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 00:39:02 -04:00
Kapy2003 a25aa36641 feat(libSceNgs2): support custom mastering rack 0x4003
Accept SCE_NGS2_RACK_ID_CUSTOM_MASTERING (0x4003) using the 0x508-byte
custom rack option layout without modules. Channels above NGS2_MAX_CHANNELS
(8) and non-zero module counts throw runtime_error as unsupported. Support
mastering voice control parameters 0x40030000 (setup), 0x40030004 (gain),
and 0x40030005 (output), write active mastering voices to render buffers,
and return voice state flags in sceNgs2VoiceGetState.

References #8039.
2026-10-24 09:58:09 +05:30
Dean Galvin 2f5366ea80 Merge main into feat/libc-swscanf-wide-synonyms 2026-10-24 17:17:02 +13:00
orezraeyandClaude Opus 5.5 7902af7357 Merge main into fix/libkernel-socket-address-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 01:12:54 -03:00
Dean 6c52b649e7 Merge pull request #9261 from wail-arch/fix/linux-sdk-homebrew-imports
fix(relinker): bind SDK guest module imports on Linux
2026-10-24 17:11:50 +13:00
orezraeyandClaude Opus 5.5 144319f82e Merge main into fix/libkernel-msync-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 01:10:30 -03:00
memob 776040e96d Merge remote-tracking branch 'origin/main' into fix/recompiler-cache-line-endings
# Conflicts:
#	core/shader/recompiler/ShaderCacheVersion.cmake
2026-10-24 00:02:21 -04:00
xXPBSXxandClaude Sonnet 5.5 33b6388820 docs(debt): record what a Windows UDP socket keeps after connect(AF_UNSPEC)
The connect-to-AF_UNSPEC debt entry only described Linux. On Windows a socket bound to an explicit address keeps it in the same way, getsockname reports the host address, and a sendto to a non-loopback address then fails with ENETUNREACH, where FreeBSD's udp_disconnect() resets the local address and the send succeeds.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-24 05:59:34 +02:00
Dean 924b18f59c Merge pull request #10166 from Felipebmaitan/feat/jobmanager-engine
fix(libSceJobManager): honor worker spin and persistence policies
2026-10-24 16:58:18 +13:00
Dean 83a25ceb71 Merge pull request #9105 from Retr0G28/fix/connect-port0-connected-dgram
fix(libkernel): disconnect a connected datagram socket on connect to port 0
2026-10-24 16:54:25 +13:00
Dean 68871895d4 Merge pull request #9256 from Dom3005/fix/windows-fcntl-append
fix(libkernel): change O_APPEND on a Windows file through fcntl
2026-10-24 16:37:06 +13:00