Commit Graph
20967 Commits
Author SHA1 Message Date
Dean Galvin dd7ebf9606 fix(libc): stage allocation registry changes before the host mapping changes
A Protect or Unmap that ran out of memory while applying its range patch
had already changed the host mapping, leaving the registry and the mapping
disagreeing. The replacement nodes are now allocated before the apply
callback runs, so applying the patch cannot fail. guest_allocations_oom
injects an allocation failure at every allocation of a Protect and of an
Unmap and checks that the registry is unchanged when the call throws.
2026-10-27 08:38:31 +13:00
Dean Galvin 758f2392f4 test(ci): give public_headers and check_compile_modes longer timeouts
public_headers takes about 18.7 s and the check_compile_modes cases are
similar, against a 30 s limit, so they time out on a loaded Windows runner.
public_headers now has 90 s and each check_compile_modes case 60 s.
2026-10-27 08:37:29 +13:00
Dean e0b13f2990 Merge pull request #10954 from AZLisme/feat/batch2-rudp-empty-poll
test(libSceRudp): cover empty poll wait behavior
2026-10-27 08:35:26 +13:00
Dean 3ab00f40ed Merge pull request #10980 from tibzejoker/perf/f32-interpolation-fast-path
perf(shader): take an exact f32 path for 16-bit interpolation and v_fma_mix
2026-10-27 08:34:51 +13:00
Adrià 95807428c7 Merge pull request #10522 from YossiYad/feat/camera-without-device
feat(libSceCamera): answer 47 camera exports as a console with no camera connected
2026-10-26 20:32:45 +01:00
roboterspinne 823251ddf5 docs(relinker): record the Windows GS trap refusals as debt
A Windows conversion now fails when a code entry lies after the first
byte of a guest GS instruction that the TLS builder replaces with UD2.
The new debt entry names both messages, says that no option skips the
checks and that Linux output keeps the instruction, so a user who hits
the refusal knows which target to use.
2026-10-26 20:31:54 +01:00
AZLisme 9b34409537 test(libSceNetCtl): expect IPv6 IPC callback delivery 2026-10-27 03:31:05 +08:00
AZLisme 0d6de39b3d docs(libSceNetCtl): remove trailing blank lines 2026-10-27 03:30:16 +08:00
AZLisme 61e16da2c5 feat(libSceNetCtl): deliver IPv6 state callbacks 2026-10-27 03:30:16 +08:00
Dean Galvin 09334e1ac5 Merge remote-tracking branch 'up/main' into sa/per-draw-gpu-timing 2026-10-27 08:24:46 +13:00
xXPBSXx 7f40f99b31 Merge main (263eee0a77) into fix/filestream-flags-race 2026-10-26 20:20:20 +01:00
Dean 263eee0a77 Merge pull request #10837 from Raghav314/perf/agc-depth-plane-copies
perf(agc): keep depth plane copies resident instead of remaking them on each use
2026-10-27 08:18:34 +13:00
Dean 930a681f2a Merge pull request #9879 from thuanquang/fix/linear-target-import-creation
perf(agc): create the host import of a linear color target in registered memory
2026-10-27 08:18:22 +13:00
Alvaro 7477b90ecb refactor(libSceLibreSsl): declare the RSA exports in the public header 2026-10-26 20:17:48 +01:00
Alvaro ddb51767c0 feat(libSceLibreSsl): implement RSA_size 2026-10-26 20:17:36 +01:00
Alvaro d7928af60f feat(libSceLibreSsl): implement RSA_flags 2026-10-26 20:17:27 +01:00
Retr0 ada29c700c docs(libkernel): state only the socketpair inode numbering as a gap from uipc_sense 2026-10-26 21:14:34 +02:00
Adrià FranchandClaude Sonnet 5.5 93f7df5ae1 test(libSceHttp2): expect sceHttp2CookieFlush to succeed
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-26 20:10:35 +01:00
noamrogerandClaude Opus 5.5 98be52cd38 feat(libSceHttp2): store cookies in cookie boxes
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01VcCKPwMu3oNWaS8AUph6MW
2026-10-26 20:10:35 +01:00
Retr0 d99208fa84 Merge remote-tracking branch 'origin/main' into fix/socketpair-fstat-inode
# Conflicts:
#	core/libs/prx/libkernel/Socket/src/Udp.cpp
#	docs/dev/debt/libkernel.md
2026-10-26 21:09:20 +02:00
MarcZX10 113d621399 test(agc): give the performance overlay test 120 s in an ASan build 2026-10-26 19:04:09 +00:00
xXPBSXxandClaude Sonnet 5.5 0567c826e7 test(libc): pin sinh bits below 22 to FreeBSD msun's results
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-26 20:01:35 +01:00
xXPBSXxandClaude Sonnet 5.5 905b15f25c fix(libc): compute sinh with FreeBSD msun's algorithm
sinh_nid_postfix called the host libm's sinh. It now follows the branches and
thresholds of FreeBSD msun's e_sinh.c (release/11.4.0): below 22 through expm1,
between 22 and ln(DBL_MAX) through exp, and up to the overflow threshold through
exp scaled as in k_exp.c's __ldexp_exp. Below 22 the results are bit-identical to
msun; from 22 on they depend on the exp this file provides.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-26 20:01:35 +01:00
Adrià afc780e681 Merge pull request #10507 from orezraey/feat/videoout-composite-overlay
feat(videoout): composite the overlay bus over the main output
2026-10-26 20:00:54 +01:00
011010 9e23a9263c fix(libkernel): report urgent data in poll on macOS
XNU's poll never reports POLLPRI for out-of-band data, so a guest poll
that asks for it never sees the urgent byte: guest_poll aborts at the
OOB case and a title waiting on priority data would sleep to its
timeout.

On macOS the pending byte is read from SIOCATMARK, which reports it
without consuming it and has no descriptor limit, unlike the fd_set
probe this replaces. POLLRDBAND is set with POLLPRI as FreeBSD 11.4's
sopoll_generic does, and the wait takes the sliced path main already
uses for a kqueue wait, so it wakes on the next slice instead of at the
deadline.

recv(MSG_OOB | MSG_PEEK) was measured to consume the byte on macOS
27.0.1 and kevent with NOTE_OOB does not fire there, which is why the
probe is SIOCATMARK. The select and libSceNet poll paths still miss
urgent data on macOS and are recorded in the debt entry.
2026-10-26 13:00:51 -06:00
roboterspinne 66f6fa3a32 Merge remote-tracking branch 'upstream/main' into fix/relinker-windows-gs-trap-entry-roots 2026-10-26 19:58:04 +01:00
Adrià 6b16c9c649 Merge pull request #10379 from JJenkx/windows/libc-printf-nan-sign
fix(libc): print a NaN's sign in swprintf as titles' libc.prx does
2026-10-26 19:56:47 +01:00
Evrim Cicek a7b52084ec fix(libc): set up streams for writing after a read as FreeBSD does on Windows
On Windows the UCRT drops a write that directly follows a read on an r+,
w+ or a+ stream: fputc and fprintf report success, fwrite returns 0 and
fputs returns EOF, all without the error indicator, and the file is left
unchanged, also after an fflush. On a stream open only for reading, fputc
after a read reports success as well.

Writes now first do what FreeBSD 11.4's __swsetup does: a stream open only
for reading fails with EBADF and sets the error indicator, and an update
stream that is reading drops its read buffer and ungetc data, clears end
of file and writes at the descriptor's offset. This covers fwrite, fputs,
fputc, putc_unlocked, fprintf, fprintf_s, fputwc, fputws, fwprintf,
fwprintf_s, puts and wprintf, and printf, vprintf and printf_s, which
write to standard output through PrintWindows and now return -1 there
instead of throwing.

Linux is unchanged: glibc writes at the stream position, which the libc
technical debt now records.
2026-10-26 21:53:56 +03:00
Adrià d891568dfc Merge pull request #10499 from frankea/fix/kernel-gettimezone-host-zone
fix(libkernel): report the host zone's standard offset and daylight saving amount from sceKernelGettimezone
2026-10-26 19:51:44 +01:00
Adrià c9a6013f4d Merge pull request #10468 from JJenkx/fix/libc-nextafter-fenv
fix(libc): preserve nextafter exception flags and denormal modes
2026-10-26 19:50:43 +01:00
Adrià FranchandClaude Sonnet 5.5 17eac963a4 fix(libSceCamera): accept only the exposure targets firmware 13.42 accepts
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-26 19:49:22 +01:00
Yossi Yadgar 4a515a751f fix(libSceCamera): validate live handles and publish camera API types 2026-10-26 19:49:12 +01:00
Yossi Yadgar 12ce815be0 docs(debt): note the shadPS4 camera model without a device 2026-10-26 19:49:12 +01:00
Yossi Yadgar ba6fab9359 test(libSceCamera): check attribute, configuration and device queries without a device 2026-10-26 19:49:12 +01:00
Yossi Yadgar 8e38615d16 test(libSceCamera): check handles, start refusals and frame data without a device 2026-10-26 19:49:12 +01:00
Yossi Yadgar 7d4b57d699 feat(libSceCamera): report device, calibration and audio queries as disconnected 2026-10-26 19:49:12 +01:00
Yossi Yadgar dcecca6bb1 feat(libSceCamera): report the default configuration and refuse new ones 2026-10-26 19:49:12 +01:00
Yossi Yadgar d9eddec15b feat(libSceCamera): refuse image attribute changes without a connected camera 2026-10-26 19:49:12 +01:00
Yossi Yadgar c2431c38f2 feat(libSceCamera): report the default image attributes of an open camera 2026-10-26 19:49:12 +01:00
Yossi Yadgar fe32d89ded feat(libSceCamera): report no frame data while no camera streams 2026-10-26 19:49:12 +01:00
Yossi Yadgar 0d175cea39 feat(libSceCamera): refuse to start a camera that is not connected 2026-10-26 19:49:12 +01:00
Yossi Yadgar 27cee2a6f1 feat(libSceCamera): open and close camera handles without a device 2026-10-26 19:49:12 +01:00
QRMOEandClaude Opus 5.5 946de281e1 test(agc): match the guest publication refusal of a written native depth
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 19:45:06 +01:00
QRMOEandClaude Opus 5.5 63e01939e4 test(agc): enable buffer device addresses only when the device supports them
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 19:44:06 +01:00
QRMOEandClaude Opus 5.5 ee23428c55 fix(agc): release a resident multisample depth before a GPU buffer may write over it
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 19:44:05 +01:00
Johan David fafd47501a feat(agc): count why draws begin render passes
The [draws] line said how many render passes the recorded draws began
and how many continued one, not why a draw could not continue. Yakuza 0
(PPSA31327) begins about 1,000 passes per frame, one every 8 draws, each
costing the pass's attachment store and load and two ALL_COMMANDS
barriers; which of those breaks a change could avoid was not visible.

Recorder::StartDrawPass returns the reason (PassBreak): the batch is new,
a non-draw command, a label store, the sample counter or a sample segment
closed the previous pass, the draw asked for a pass of its own, the pass
key differs, or one of the PassHazard values. The batch remembers which
caller closed its last pass (RenderPass::closedBy, set by
endOpenRenderPass). Draw keeps the reason in the outcome, the [draws] line
prints the non-zero reasons after "render passes N begun", and
Graphics::DrawPassBreaks() returns the cumulative counts for the test.

No behaviour changes.
2026-10-26 13:42:54 -05:00
Adrià 18ef6be0cd Merge pull request #10376 from alvaroelpob/feat/libscelibressl-ui-method
feat(libSceLibreSsl): implement UI_METHOD creation and its opener, writer, reader and closer accessors
2026-10-26 19:42:46 +01:00
roboterspinne ca8e16751c Merge remote-tracking branch 'upstream/main' into fix/relinker-windows-tls-template-imports 2026-10-26 19:38:21 +01:00
Adrià 788130e2c4 Merge pull request #10167 from Felipebmaitan/feat/http2-transport
feat(http2): add synchronous HTTP/2 transport over TLS
2026-10-26 19:38:16 +01:00
Adrià f95acfc948 Merge pull request #9393 from TheSovietWaffle/fix/recompiler-stencil-replay-implied-merge
fix(recompiler): accept optional-body merges implied by the skip predicate in stencil replay
2026-10-26 19:26:16 +01:00