Commit Graph
10207 Commits
Author SHA1 Message Date
Dean Galvin b0b291be0b Merge main into feat/libkernel-sys-underscore-openat 2026-10-24 21:42:59 +13:00
Dean Galvin 161b602a45 Merge main into feat/prx-declare-ps5-3.20-exports-tier3 2026-10-24 21:42:57 +13:00
954a8e1a9d fix(libkernel): append positioned writes on an O_APPEND descriptor on macOS
macOS pwrite and pwritev write at the given offset even when the
descriptor was opened with O_APPEND. FreeBSD's vn_write appends to an
O_APPEND regular file whatever the offset and leaves the file offset
unchanged, and Linux pwrite appends too. On macOS, sceKernelPwrite,
pwrite, sceKernelPwritev, pwritev and the AIO write commands now append
such writes with writev and restore the file offset, as #8359 does on
Windows.

Co-authored-by: Himansh Raj <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 05:34:28 -03:00
orezraeyandClaude Opus 5.5 22b120c185 Merge main into docs/libkernel-sem-timedwait-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 05:24:29 -03:00
MarcZX10 a3e41499be fix(libc): match title printf conversions on Windows 2026-10-24 10:22:15 +02:00
Hussein Kadhim 621a487bdf fix(libc): print the FreeBSD printf extensions and stray percent signs on Windows
The Windows printf family threw on the q length modifier, the D, O and U
conversions, an unknown conversion character and a format ending in a percent
sign, where FreeBSD's vfprintf formats the first three and prints the unknown
character itself or stops at the end of the format.

(cherry picked from commit 0e3b2896d228c601cefc992b2895723188ebf0fa)
2026-10-24 10:22:15 +02:00
Dean e058b3284a Merge pull request #9167 from slider/feat/libkernel-named-semaphores
feat(libkernel): implement named POSIX semaphores
2026-10-24 21:09:30 +13:00
Dean 91007ff06c Merge pull request #10312 from ntamas94/fix/ps4-libc-strerror
fix(libc): answer strerror as the titles' libc.prx does
2026-10-24 21:09:00 +13:00
Dean 2250381689 Merge pull request #9934 from Celegans12/feat/agc-nv-diagnostics-config
feat(agc): enable VK_NV_device_diagnostics_config behind APS5_NV_DIAGNOSTICS
2026-10-24 21:08:33 +13:00
ionut27001 27e37024a8 fix(libkernel): handle kevent timer re-adds and the AIO, LIO, SENDFILE and PROCDESC filters as measured on a PS5
In payload processes on a PS5 (firmware 12.70), re-adding an existing
periodic EVFILT_TIMER with EV_ADD, fflags 0 and a positive period kept
the armed expiry and the expirations already counted, and applied the
new period after that expiry, as FreeBSD 11.0 does. EV_ONESHOT in the
re-add left the timer periodic. Here such a re-add threw; it now does
the same. Re-adding a one-shot or disabled timer, a re-add with nonzero
fflags, a period of 0 or less, a period that overflows the armed expiry
or flags other than EV_ONESHOT, and the other changes to an existing
timer except EV_DELETE still throw.

There, EV_ADD failed with EPERM for EVFILT_AIO, EVFILT_LIO and
EVFILT_SENDFILE at every ident and flag set tried, and EV_DELETE and
EV_ENABLE of them without EV_ADD failed with ENOENT. EVFILT_PROCDESC
failed with EBADF on a descriptor that is not open and with EINVAL on
every kind of open descriptor tried, and EV_DELETE of it on a socket
failed with ENOENT. These filters threw here; they now answer the same
way. EV_ADD of EVFILT_PROCDESC fails with EINVAL on the kinds of
descriptor tried and on shared memory, and throws on other kinds and on
descriptors 0 to 2 that are not sockets or kqueues; a change without
EV_ADD fails with ENOENT, after the descriptor check for
EVFILT_PROCDESC.

A new kevent measurements debt entry, which the kqueue and kevent entry
points to, records these measurements and the answers for NOTE_LOWAT
marks and EVFILT_READ on another kqueue, which still throw here. The
kqueue and kevent entry also stops listing a NOTE_NSECONDS period above
one second with a fraction among the cases that throw, since d71a1c577
made it work.
2026-10-24 10:08:01 +02:00
atharvjairath 676a0e0072 feat(fiber): execute contextless fibers on the caller stack 2026-10-24 13:21:05 +05:30
Dean 69b5e014e9 Merge pull request #9342 from UnhealthyKraken/feat/libc-gets
feat(libc): implement gets line input
2026-10-24 20:48:06 +13:00
Dean efe844c653 Merge pull request #10308 from orezraey/fix/libkernel-socket-receive-measured-ps5
fix(libkernel): answer zero-length datagram receives and recvmsg flags as measured on a PS5
2026-10-24 20:46:44 +13:00
shurhundo f12344718a fix(check-compile): expand response files before syntax checks 2026-10-24 15:45:44 +08:00
orezraeyandClaude Opus 5.5 510b089120 Merge main into fix/libkernel-socket-address-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 04:39:32 -03:00
Maz 859ce80e42 feat(libc): export the wide num_put facet vtable as data
Titles resolve NID 59oywaaZbJk as a 112-byte STT_OBJECT on PPSA16833 libc.prx; export fourteen zeroed slots and the matching id so the data object exists while facet methods stay unwired.
2026-10-24 11:37:58 +04:00
Dean 59052151d0 Merge pull request #8728 from orezraey/fix/libkernel-msync-measured-ps5
fix(libkernel): fail msync MS_INVALIDATE with EBUSY as measured on a PS5
2026-10-24 20:25:08 +13:00
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
Yunus Shaikh 98fd280383 Merge #9505's main merge into perf/libc-collect-without-region-query 2026-10-24 00:12:35 -07: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 dd72d997c7 docs(agc): register the submission progress switch 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
Himansh Raj b017223970 Merge remote-tracking branch 'origin/main' into split/macos-build 2026-10-24 12:11:02 +05:30
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à cd0591c8f4 Merge pull request #7705 from AnthonyClemens/fix/agc-bound-depth-plane-copies
fix(agc): bound the sampled depth-plane copies
2026-10-24 08:36:48 +02:00
Himansh Raj 41df89a481 Merge remote-tracking branch 'origin/main' into split/macos-build 2026-10-24 11:50:26 +05:30
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
Himansh Raj 8f50c890a1 Merge remote-tracking branch 'origin/main' into split/macos-build 2026-10-24 11:10:23 +05:30