Commit Graph
8814 Commits
Author SHA1 Message Date
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
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 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
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 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
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
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
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
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
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
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
Alvaro 36a766229b feat(libSceLibreSsl): implement UI_method_get_closer 2026-10-26 19:23:44 +01:00
Alvaro 3ac4a78a0f feat(libSceLibreSsl): implement UI_method_set_closer 2026-10-26 19:23:43 +01:00
Alvaro 9802f33370 feat(libSceLibreSsl): implement UI_method_get_reader 2026-10-26 19:23:43 +01:00
Alvaro 13e48800eb feat(libSceLibreSsl): implement UI_method_set_reader 2026-10-26 19:23:42 +01:00
Alvaro aa5c431bb0 feat(libSceLibreSsl): implement UI_method_get_writer 2026-10-26 19:23:42 +01:00
Alvaro bf6c1458f3 feat(libSceLibreSsl): implement UI_method_set_writer 2026-10-26 19:23:41 +01:00
Alvaro 18a1ec5ca0 feat(libSceLibreSsl): implement UI_method_get_opener 2026-10-26 19:23:41 +01:00
Alvaro a35721aae7 feat(libSceLibreSsl): implement UI_method_set_opener 2026-10-26 19:23:40 +01:00
Alvaro 80104778fe feat(libSceLibreSsl): implement UI_destroy_method 2026-10-26 19:23:39 +01:00
Alvaro 8736ee5a82 feat(libSceLibreSsl): implement UI_create_method 2026-10-26 19:23:36 +01:00
Adrià 7cf8602234 Merge pull request #10373 from alvaroelpob/feat/libscelibressl-stack
feat(libSceLibreSsl): implement sk_num, sk_value, sk_pop and sk_pop_free
2026-10-26 19:16:11 +01:00
hugodearaujo 787b6a6720 fix(agc): sample cube descriptors with fewer than six slices as six faces 2026-10-26 15:11:35 -03:00
milescovielloandClaude Opus 5.5 99962d0776 docs(libSceNpManager): note how two titles call sceNpGetUserIdByAccountId
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 18:07:41 +00:00
milescovielloandClaude Opus 5.5 8e655f64c8 docs(libSceNpEntitlementAccess): note how two titles call sceNpEntitlementAccessGetEntitlementKey
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 18:06:56 +00:00
Adrià aec3b38800 Merge pull request #8010 from Piyush-Sagar/codex/implement-condattr-getclock
feat(libkernel): implement pthread_condattr_getclock
2026-10-26 19:02:45 +01:00
Leonardo 93eb9d304a feat(libSceNetCtl): classify NAT type from multi-endpoint STUN probes 2026-10-26 18:46:40 +01:00
Lindamea1andClaude Opus 5.5 0f871ec673 fix(libSceVideoOut): return INVALID_EVENT from the event getters for an event of another filter
sceVideoOutGetEventId, sceVideoOutGetEventData and sceVideoOutGetEventCount
threw for an event whose filter is not EVFILT_VIDEO_OUT, and
sceVideoOutGetEventId also threw for a VideoOut id this library never
registers. A title that asks for the id of each event in a queue that
also holds other events stopped there. PPSA28180 compares the result
with VIDEO_OUT_ERROR_INVALID_EVENT, as reported in #11376 (item 6).

They return VIDEO_OUT_ERROR_INVALID_EVENT (0x8029000D) instead, before
sceVideoOutGetEventData writes its output, as the PS4 libraries of
shadPS4 and fpPS4 do. The id is compared in full, so an id above 32
bits is no longer read as a registered one. A null pointer still
throws. The PS5 result is unverified and recorded in the libSceVideoOut
debt.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 17:42:26 +00:00
milescovielloandClaude Opus 5.5 3742a5365d docs(libSceVideoOut): note how seven titles call sceVideoOutOpen
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 17:28:24 +00:00
Adrià 88795ed448 Merge pull request #10465 from xXPBSXx/docs-agc-copyregion-over-4gib
docs(agc): note the guest buffer region copied whole over 4 GiB
2026-10-26 18:26:07 +01:00
Adrià 761eaba441 Merge pull request #10463 from xXPBSXx/docs/debt-pm4-type0-reread
docs(debt): note that the zero gap before REWIND packets stays unwritten
2026-10-26 18:24:47 +01:00
slopgobblercobbler edf98688c8 fix(libSceSaveData.native): validate null arguments in sceSaveDataDirNameSearchPs4 and sceSaveDataMount 2026-10-26 18:21:39 +01:00
Michael Krumland-DunningandClaude Opus 5.5 854be22d20 docs(shader): extend the 2D-array comparison measurement to every compare function
The 2D-array comparison results were measured with LESSEQUAL only. A
second gfx1036 run over all eight DEPTH_COMPARE_FUNC values (128
kernels) gives the same: a 2D-array address on a 2D T# ignores the
slice, and codes 1 and 56 return 0 under every function. Both entries
now say so.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 10:18:36 -07:00
Michael Krumland-DunningandClaude Opus 5.5 39f6f45487 docs(shader): record 2D-array comparison samples measured on RDNA2
A comparison or plain sample with a 2D-array address on a 2D T#
returns what the same sample with a 2D address returns, whatever the
slice, as measured with the hardware oracle on RDNA2 (gfx1036) for
formats 1, 7, 22 and 56 with point and bilinear filtering, while a
four-layer 2D-array T# over the same memory returns a different result
per slice. Codes 1 and 56 also compare to 0 with 2D-array addresses.
The three comparison debt entries keep gfx1013, cube comparisons and
the other formats' array comparisons as open.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 10:18:36 -07:00
Michael Krumland-DunningandClaude Opus 5.5 9c9c33821f docs(shader): record the VCC descriptor tuples measured on RDNA2
Buffer resources and MIMG samplers at register field 26 read s104,
s105, vcc_lo and vcc_hi, as measured with the hardware oracle on RDNA2
(gfx1036) in wave32 and wave64 with raw encodings, which LLVM's
assembler refuses. Loads, format conversion, bounds and stores through
the buffer tuple, and sampling through the sampler tuple, act as the
same words in ordinary SGPRs do, and a change to each of the four
words shows in the result. Both debt entries now keep gfx1013 as open.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 10:18:35 -07:00
Michael Krumland-DunningandClaude Opus 5.5 5abefb16ac fix(shader): ignore a runtime V#'s type for scalar buffer loads as RDNA2 does
A scalar buffer load through a V# read at run time recorded an
InvalidDescriptor fault when TYPE (word 3, bits 30-31) was nonzero, and
the dispatch wrote nothing. Measured with the hardware oracle on RDNA2
(gfx1036), s_buffer_load ignores the whole fourth word: OOB_SELECT,
TYPE, FORMAT, ADD_TID_ENABLE, INDEX_STRIDE, RESOURCE_LEVEL and DST_SEL
change no result, so the scalar path no longer checks TYPE. Vector
accesses keep the check. The debt entry now records the measurement
and keeps gfx1013 and a null base as open.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 10:18:33 -07:00
orezraeyandClaude Opus 5.5 31d24c2160 Merge main into docs/libkernel-version-boottime-socpower-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 14:08:17 -03:00