Commit Graph
11190 Commits
Author SHA1 Message Date
bluandClaude Fable 5.1 0900ff6ff0 feat(libc): implement siginterrupt through the sigaction libkernel registers
siginterrupt is a libSceLibcInternal export (the public SDK's stub table has it there, not in the
kernel tables) and FreeBSD 11.4's lib/libc/gen/siginterrupt.c reads the signal's disposition,
sets or clears the signal's bit in _sigintr and SA_RESTART, and installs the disposition again.
libc cannot call libkernel, so, as the pthread hooks do, libc keeps a registered sigaction and
the address of the _sigintr set, and libkernel registers both from a static initializer when it
loads. A call before that throws; the set is written without libkernel's registration lock, as
FreeBSD's libc does. Builds on #8866, which adds the set.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-20 20:53:14 -07:00
bluandClaude Fable 5.1 e38179eaab feat(libkernel): export _sigintr and let signal honour it
The public SDK's libkernel, libkernel_sys and libkernel_web stub tables declare _sigintr, the
sigset_t that FreeBSD's libc shares between signal and siginterrupt, and no built library
provided it (#8846). libkernel now exports the 16-byte object, zero at start, and signal records
a handler with SA_RESTART unless its signal is in the set, as lib/libc/gen/signal.c does.

siginterrupt, which fills the set, is a libSceLibcInternal export; libc does not link libkernel
and cannot reach the dispositions, so it stays out and a debt entry for signal says so.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-20 20:41:54 -07:00
Dean 05f9995704 Merge pull request #8469 from hypermoist/feat/agcdriver-firmware-constants
feat(libSceAgcDriver): add the retail debug, capture and GPU reset results
2026-10-21 16:23:27 +13:00
Dean 9f4ddf7cf9 Merge pull request #8838 from orezraey/fix/http-uri-unescape-sweep-measured-ps5
fix(libSceHttp): unescape and sweep URIs as measured on a PS5
2026-10-21 16:10:19 +13:00
Dean 51a30d567a Merge pull request #8297 from thuanquang/docs/trunc-coord-debt
docs(agc): record that the host sampler replaces TRUNC_COORD's rounding
2026-10-21 16:09:49 +13:00
Dean 6175310fdd Merge pull request #8293 from DavidSamir/fix/agc-exclude-libs-linker-macos
fix(agc): pass --exclude-libs to the linkers that accept it
2026-10-21 16:09:44 +13:00
Dean a683688fe0 Merge pull request #8335 from ymatrix1/feat/systemservice-missing-exports
feat(libSceSystemService): export missing firmware system service interfaces
2026-10-21 16:07:01 +13:00
Dean 141a6a5104 Merge pull request #8322 from MarrasFederico/feat/ngs2-rack-user-data
feat(libSceNgs2): keep caller data on racks with sceNgs2RackSetUserData and sceNgs2RackGetUserData
2026-10-21 16:06:57 +13:00
Dean e0e57a3270 Merge pull request #8263 from milescoviello/fix/profile-differing-value-set-hashes
fix(agc): remember the differing statistics' value sets by hash
2026-10-21 15:48:28 +13:00
Dean d4eecab27a Merge pull request #8258 from YossiYad/feat/np-party-state
feat(libSceNpParty): report the user as not in a party from sceNpPartyGetState
2026-10-21 15:48:23 +13:00
Dean db45e8ee20 Merge pull request #8253 from santhoshkumar-dev/codex/freetype-charmap-access
feat(libSceFreeType): select and iterate character maps
2026-10-21 15:48:18 +13:00
Dean 394170059f Merge pull request #8069 from thuanquang/fix/force-degamma-unchanged-formats
fix(agc): sample formats that FORCE_DEGAMMA leaves unchanged without it
2026-10-21 15:44:22 +13:00
Dean 402763059f Merge pull request #8167 from MarcZX10/codex/8157-bda-device-gpu
fix(tests): honor ANYPS5_GPU in BDA device fixture
2026-10-21 15:44:18 +13:00
Dean 5d10ea9ea0 Merge pull request #8791 from JJenkx/windows/calltrace-faulting-thread
feat(libc): list the reporting thread's own calls in the call trace report
2026-10-21 15:40:39 +13:00
Dean cd700fe9ec Merge pull request #8793 from xXPBSXx/fix/pthread-kill-ended-thread-esrch
fix(libkernel): let pthread_kill with signal 0 report ESRCH for a thread that has ended
2026-10-21 15:27:29 +13:00
Dean d10d9d214c Merge pull request #8782 from valenciana-nc/fix/execute-once-independent-flags
fix(libc): avoid deadlocking independent once initializers
2026-10-21 15:27:24 +13:00
Dean 59d53d0d31 Merge pull request #8757 from Nejilu/codex/relinker-tls-file-bounds
fix(relinker): reject TLS initialization images outside the input file
2026-10-21 15:27:20 +13:00
Dean b2d804d5f7 Merge pull request #8738 from Queuse/codex/fix-registry-utf8
fix(relinker): reject invalid registry UTF-8
2026-10-21 15:27:16 +13:00
Dean 6056689ad6 Merge pull request #8614 from DavidSamir/fix/relinker-call-zero-padding
fix(relinker): stop the control-flow walk at zero padding after a call
2026-10-21 15:27:12 +13:00
Dean 6696def6e6 Merge pull request #8249 from MayankManas/test/agc-f64-denormal-modes-skip-without-float64
test(agc): skip the f64 denormal mode tests on devices without shaderFloat64
2026-10-21 15:02:40 +13:00
Dean f9aea30217 Merge pull request #8238 from milescoviello/fix/ngs2-callout-unlocked
fix(libSceNgs2): keep a rack lock and a voice callback from blocking other threads
2026-10-21 15:02:31 +13:00
Dean 494182e051 Merge pull request #8201 from savvaniss/fix/shader-call-link-wave-size
fix(shader): check call link registers for both wave sizes when the size is unknown
2026-10-21 15:02:27 +13:00
Dean 20de55550f Merge pull request #8095 from Unkown607/fix/videoout-119hz-display-fallback
fix(libSceVideoOut): fall back to 59.94 Hz when display drops below 120 Hz
2026-10-21 14:59:25 +13:00
Dean b13183e59e Merge pull request #7473 from Dripl1x/codex/skip-clean-resident-write-watch
perf(libc): skip write-watch queries for proven clean resident ranges
2026-10-21 14:55:09 +13:00
orezraeyandClaude Opus 5.5 d991252d25 fix(libSceHttp): keep the unmeasured single-dot sweep boundary
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 22:50:59 -03:00
Dean 6c12024f7d Merge pull request #8741 from Queuse/fix/libc-freopen-share-delete
fix(libc): share delete on standard stream reopen
2026-10-21 14:47:29 +13:00
Dean 557682ca44 Merge pull request #8798 from JJenkx/windows/open-keep-native-error
fix(libkernel): keep the native open error when the Windows directory probe finds no directory
2026-10-21 14:38:41 +13:00
Dean a806c69bfe Merge pull request #8758 from p3n1cillin/codex/pthread-getprio-20261021
feat(libkernel): implement pthread_getprio
2026-10-21 14:27:54 +13:00
Dean 600dda1ee4 Merge pull request #8744 from orezraey/fix/http-parse-response-header-measured-ps5
fix(libSceHttp): bound and return sceHttpParseResponseHeader's value as measured on a PS5
2026-10-21 14:27:47 +13:00
Dean c5d841ed94 Merge pull request #8732 from DoubleAAGuy/feat/libkernel-osreldate-sysctl
feat(libkernel): expose kern.osreldate sysctl
2026-10-21 14:27:39 +13:00
Dean d686bb0b19 Merge pull request #8046 from klosixgaming-arch/fix/agc-clip-disable-no-depth-clamp
fix(agc): accept PA_CL_CLIP_CNTL CLIP_DISABLE without depth clamp
2026-10-21 14:27:32 +13:00
Dean 8a803d3e6d Merge pull request #8743 from valenciana-nc/fix/kernel-iovec-table-copy
fix(libkernel): return EFAULT for unreadable iovec tables
2026-10-21 14:24:39 +13:00
Dean 994829e44b Merge pull request #8733 from p3n1cillin/codex/libc-unlocked-status-20261020
feat(libc): implement unlocked stream status queries
2026-10-21 14:24:31 +13:00
Dean a4fc462a6d Merge pull request #8108 from milescoviello/fix/rewind-tail-end-timer
fix(agc): end a pipelined submission's EndSubmission time before its REWIND tail runs
2026-10-21 14:24:14 +13:00
Dean 1faa800f08 Merge pull request #7966 from KarthikeyaAnna/fix/agc-1d-depth-compare-2d
fix(agc): back 1D depth comparison textures with 2D images
2026-10-21 14:21:13 +13:00
Dean 7697443281 Merge pull request #8653 from Ondra97/codex/fix-net-dontwait
fix(net): keep MSG_DONTWAIT transfers nonblocking on Windows
2026-10-21 14:19:19 +13:00
Dean 3b5a24c0d6 Merge pull request #8075 from johandavidcm/feat/agc-sample-committer
feat(agc): sample the draw committer with APS5_SAMPLE_COMMITTER
2026-10-21 14:12:36 +13:00
Dean 67f25e4681 Merge pull request #7470 from Dripl1x/codex/exact-resident-release
perf(libc): release exact resident mappings without repeated queries
2026-10-21 14:07:25 +13:00
Dean 1ffe979127 Merge pull request #8576 from priyanshrv-netizen/feat/libc-float-characteristics
feat(libc): export the Dinkumware float characteristic tables
2026-10-21 14:06:48 +13:00
Dean e7ce7102ab Merge pull request #7468 from Dripl1x/codex/direct-memory-alias-index
perf(libkernel): find direct-memory aliases through the physical index
2026-10-21 13:57:13 +13:00
Dean 46c7538777 Merge pull request #7467 from Dripl1x/codex/windows-path-component-lookup
perf(libc): avoid repeated Windows path component scans
2026-10-21 13:57:05 +13:00
JJenkxandClaude Opus 5.5 af086114c7 fix(libkernel): keep the native open error when the Windows directory probe finds no directory
When the native open failed with an error other than ENOENT, OpenNative
probed whether the path is a directory with std::filesystem::is_directory.
With the MinGW runtime that probe can set errno to ENOENT, and OpenNative
then reported the probe's ENOENT instead of the open error. On Windows 11
22621 a symbolic link loop failed with ELOOP from the native open and
sceKernelOpen returned 0x80020002, so guest_filesystem aborted at the
ELOOP check added by #8640.

Keep the open error and restore it when the path is not a directory.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 20:54:15 -04:00
Dean dd9b54a42a Merge pull request #8745 from mpratsaki/fix/relinker-windows-same-file-checks
fix(relinker): use the Windows file identity in module and executable checks
2026-10-21 13:53:59 +13:00
Dean 7da0e44f80 Merge pull request #8078 from savvaniss/fix/agc-null-pixel-program-color-disabled
fix(agc): accept a draw without a pixel program while CB_COLOR_CONTROL disables color
2026-10-21 13:53:34 +13:00
Evgeniy KazarinandClaude Opus 5.5 b5bb956530 test(libc): link the resident release test and keep its valid case in one run
The test throws exceptions but did not link libc, so with
-fno-asynchronous-unwind-tables it failed to link (no __gxx_personality_v0)
on the supported WinLibs toolchain; the Windows CI job does not run on pull
requests. The valid case now maps 2 MiB at a 2-MiB boundary, so the mapping is
one resident run and both Reset calls take the exact-run path, and the test
requires that run.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 08:30:15 +08:00
xXPBSXxandClaude Sonnet 5.5 79569a7a3d fix(libkernel): let pthread_kill with signal 0 report ESRCH for a thread that has ended
pthread_kill(thread, 0) returned 0 for every handle other than the caller's before it asked whether the thread was still alive. FreeBSD's _pthread_kill looks the thread up with _thr_find_thread before it checks for signal 0, so the call answers ESRCH for a thread that has ended or was never a thread. The liveness check now runs before the signal 0 shortcut; the calling thread still answers 0.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-21 02:29:54 +02:00
Dean 57fdffd915 Merge pull request #8697 from oneandonlydean/feat/f32-denorm-preserve
feat(shader): request DenormPreserve 32 where the device preserves f32 denormals
2026-10-21 13:29:41 +13:00
Dean 21a57ff5c0 Merge pull request #8570 from priyanshrv-netizen/feat/libc-dinkumware-constants
feat(libc): export the remaining Dinkumware floating-point constants
2026-10-21 13:29:16 +13:00
JJenkxandClaude Opus 5.5 3316ca3b24 feat(libc): list the reporting thread's own calls in the call trace report
The crash and abort reports printed the last 64 traced calls of the whole
process, so a thread that loops on a traced import (a mutex lock/unlock
pair, a profiler marker) pushes the calls of the faulting thread out of the
report. The ring already keeps the last 65536 calls with their thread.

CopyThreadCallTrace_nid_no_patch returns the most recent calls of one
thread from that ring, oldest first, and both reports (Windows crash and
abort, Linux abort) list up to 32 of them for the reporting thread after
the process-wide list.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 20:25:31 -04:00
Dean c82867c77c Merge pull request #7472 from Dripl1x/codex/reuse-unreferenced-saved-memory
perf(libc): reuse saved direct-memory buffers when unreferenced
2026-10-21 13:25:04 +13:00