Commit Graph
7981 Commits
Author SHA1 Message Date
MaxandClaude Opus 5.5 55ff5484d6 fix(libkernel): time out timed locks of a lock the caller already holds
scePthreadMutexTimedlock on a mutex the caller holds, and
scePthreadRwlockTimedrdlock and scePthreadRwlockTimedwrlock on a rwlock
it holds for writing, returned EDEADLK at once. The console returns
ETIMEDOUT, as the prosper console oracle measured. They now sleep until
the timeout and return ETIMEDOUT, as FreeBSD libthr does. The POSIX
timed locks call these and change with them.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 02:15:31 +02:00
Yunus Shaikh 7a4b965d6f feat(libSceSystemService): forward sceLncUtilLoadExec to sceSystemServiceLoadExec
sceLncUtilLoadExec takes the same path and null-terminated argument
list, which the SystemService call passes on to it on the console. It
returns sceSystemServiceLoadExec's result: the same parameter errors,
the same refusals for paths it cannot start, and "exit" ends the title
in the same way.
2026-10-25 00:15:25 +00:00
Yunus Shaikh c2eb0a2404 feat(libSceSystemService): report the running title as not suspended
sceLncUtilIsAppSuspended, sceSystemServiceIsAppSuspended and
sceLncUtilIsSpeculativeLaunch write false for the running title's app
ID. The title that calls them is running and has no shell to suspend
it. It was started from the host rather than by sceLncUtilLaunchApp,
so no LncLaunchParam asked for a speculative launch. Another app ID
and a null output still throw.
2026-10-25 00:15:25 +00:00
Yunus Shaikh f5afb8755c feat(libSceSystemService): report the running title's user
sceLncUtilGetAppLaunchedUser, sceSystemServiceGetAppLaunchedUser and
sceShellCoreUtilGetUserFocus write the initial user for the running
title's app ID. That is the user sceUserServiceGetInitialUser and
sceUserServiceGetForegroundUser report. Another app ID and a null user
pointer still throw.
2026-10-25 00:15:25 +00:00
Yunus Shaikh 695041093b feat(libSceSystemService): answer the running title's app ID lookups
sceLncUtilGetAppId and sceLncUtilIsAppLaunched accept the running
title's ID as sceSystemServiceGetAppId does, and
sceLncUtilGetAppIdOfRunningBigApp returns what
sceSystemServiceGetAppIdOfRunningBigApp returns. Both big-app lists
write the running title's app ID as their only entry, because AnyPS5
runs one title. Another title ID, a null pointer and a list capacity of
0 still throw.
2026-10-25 00:15:25 +00:00
Queuze f560447782 Merge remote-tracking branch 'origin/main' into codex/check-compile-phase-options 2026-10-24 21:10:27 -03:00
Queuze b38b41aa8a fix(check-compile): enforce syntax mode 2026-10-24 21:10:27 -03:00
Yunus Shaikh afd5c4a20e feat(libkernel_sys): wait for AMM command buffer completion
sceKernelWaitCommandBufferCompletion waits for an AMM submission as
libSceAmpr's sceAmprAmmWaitCommandBufferCompletion does: 0 once the
submission has run, SCE_KERNEL_ERROR_ESRCH for an id that was never
submitted. The signature follows ampr_emu's libkernel hook targets,
where the libSceAmpr wait forwards to it.

guest_kernel_sys submits a map written by sceKernelWriteMapCommand,
waits for it and uses the mapped page, and checks ids 0 and past the
last submission.
2026-10-25 00:09:03 +00:00
Yunus Shaikh 92f7271cc6 feat(libkernel_sys): write the AMM map, unmap, remap and protection commands
The twelve AMM kernel writers record into a caller buffer the command
their libSceAmpr command buffer sibling appends, built with the shared
encoder: sceKernelWriteMapCommand, sceKernelWriteMapWithGpuMaskIdCommand,
sceKernelWriteMapDirectCommand, sceKernelWriteMapDirectWithGpuMaskIdCommand,
sceKernelWriteUnmapCommand, sceKernelWriteRemapCommand,
sceKernelWriteRemapWithGpuMaskIdCommand, sceKernelWriteMultiMapCommand,
sceKernelWriteMultiMapWithGpuMaskIdCommand,
sceKernelWriteModifyProtectCommand,
sceKernelWriteModifyProtectWithGpuMaskIdCommand and
sceKernelWriteModifyMtypeProtectWithGpuMaskIdCommand.

The signatures follow ampr_emu's libkernel hook targets: the sibling's
arguments as 64-bit values between the destination and the size output.
A null destination only reports the size and a null size output only
writes, as for sceKernelWriteModifyMtypeProtectCommand. Invalid ranges,
offsets and protections return the sibling's SCE_KERNEL_ERROR_EINVAL and
write nothing; protection or mask bits above 32 are rejected too.

guest_kernel_sys compares each writer with its sibling on valid and
invalid arguments, in both modes.
2026-10-25 00:07:53 +00:00
Felipebmaitan b31ed5dc5b test(job-manager): refresh Linux reference on current prerequisites 2026-10-24 21:06:46 -03:00
Felipebmaitan 0d4025f98f fix(job-manager): refresh compute shutdown on public headers 2026-10-24 21:06:30 -03:00
Felipebmaitan 55efb35489 fix(job-manager): refresh GPU barriers with shared API types 2026-10-24 21:06:13 -03:00
Felipebmaitan 043c7de79a fix(job-manager): refresh profiler with shared API types 2026-10-24 21:05:57 -03:00
Felipebmaitan 8ab682946a fix(job-manager): refresh owned state on current prerequisites 2026-10-24 21:05:40 -03:00
Felipebmaitan 42bff60650 fix(job-manager): share registration imports and fixture types 2026-10-24 21:05:21 -03:00
Felipebmaitan 43efd58266 fix(job-manager): reconcile lifecycle with public headers 2026-10-24 21:05:08 -03:00
thibautandClaude Opus 5.5 ad047899bb perf(agc): grow the pipeline store from 1024 up to 4096 entries
The graphics pipeline store kept a fixed 1024 entries and the pipeline journal replayed at most
1024 records, and a replayed pipeline that found the store full was dropped. A title whose
working set is larger rebuilt the rest at the draw on every run, and evicted pipelines it kept
using were rebuilt again and again.

The bound now starts at 1024 and doubles up to 4096: a journal replay that does not fit grows it
instead of dropping the pipeline, and so does eviction churn (a ghost list of evicted keys, checked
every bound/32 evictions: more than half of them came back). It never shrinks during a run;
APS5_PIPELINE_STORE_ENTRIES still fixes it. The journal loads its last 4096 records by default
(APS5_PIPELINE_JOURNAL_ENTRIES). Resident pipelines are bounded by count, not bytes.

agc_driver_recorder_tests --benchmark-pipeline-store-memory [count] (opt-in, not registered)
builds count graphics pipelines with one fragment module each through CachedPipeline and prints
process private bytes and VK_EXT_memory_budget heap usage before and after: with the triangle
shaders about 59 KiB host and no device memory per pipeline on an RTX 4090, 100 KiB host and
8 KiB device-local on a UHD 770.

Tests: agc_pipeline_store_growth (fails on main), agc_pipeline_store_fixed_bound,
agc_pipeline_store_replay_growth (replays on one thread: the mock Vulkan is not thread-safe).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_017SNUYRd7sRKZrMYpquAsnU
2026-10-25 02:02:41 +02:00
Dean cf528e78c6 Merge pull request #9160 from yabanana/feat/kernel-sys-thread-queries
feat(libkernel_sys): identify the initial pthread
2026-10-25 12:57:53 +13:00
Dean c4446bbb09 Merge pull request #9332 from rooklz/fix/windows-console-base
fix(relinker): prefer 0x400000 for Windows executables
2026-10-25 12:57:28 +13:00
Dean Galvin f139561693 Merge main into fix/linear-target-completion-stores 2026-10-25 12:57:20 +13:00
Dean Galvin a5e015f7b7 Merge main into fix/linear-target-import-creation 2026-10-25 12:56:51 +13:00
Dean Galvin 7ea2e7b914 Merge main into feat/webkit-pthread-setname 2026-10-25 12:56:13 +13:00
Dean Galvin 1616abc519 Merge main into feat/libc-feraiseexcept 2026-10-25 12:55:37 +13:00
MaxandClaude Opus 5.5 64ae578dda feat(libSceUsbd): pass the device, packet size, alternate setting and halt calls through to libusb
sceUsbdGetDevice, sceUsbdGetDeviceSpeed, sceUsbdGetMaxPacketSize,
sceUsbdGetMaxIsoPacketSize, sceUsbdOpenDeviceWithVidPid,
sceUsbdSetInterfaceAltSetting, sceUsbdClearHalt and
sceUsbdDetachKernelDriver follow FreeBSD 11.4 libusb10.c over the host
libusb. The packet sizes and the alternate setting checks are done as
FreeBSD does them, so the library records which interfaces are claimed,
and a device stays known while a handle to it is open.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 01:50:33 +02:00
Retr0 7a0bbc4897 Merge remote-tracking branch 'origin/main' into fix/sendfile-nonregular-einval
# Conflicts:
#	core/libs/tests/GuestSendfile.cpp
2026-10-25 02:47:13 +03:00
hypermistandClaude Opus 5.5 c4e51343be Merge remote-tracking branch 'upstream/main' into feat/font-get-font-metrics
Kept main's Api.hpp declarations and dropped the duplicated struct block from Unimplemented.cpp.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 12:45:38 +13:00
Dean ab6c1b7324 Merge pull request #10715 from oneandonlydean/test/quarantine-frame-replay-windows
test(agc): quarantine agc_driver_frame_replay on Windows until the recorder fix (#10711)
2026-10-25 12:45:06 +13:00
Dean 761cb46f84 Merge pull request #10350 from orezraey/fix/libkernel-socket-receive-flags-measured-ps5
fix(libkernel): keep the TCP flag and IP receive options a PS5 accepts
2026-10-25 12:44:40 +13:00
Dean c15c361163 Merge pull request #10361 from orezraey/fix/libscepad-open-checks-measured-ps5
fix(libScePad): answer scePadOpen's user, index and port checks as measured on a PS5
2026-10-25 12:44:15 +13:00
Dean Galvin 7664003be2 Merge main (check commit for the public_headers fix) 2026-10-25 12:43:33 +13:00
Dean Galvin c071f3d240 Merge main (check commit for the public_headers fix) 2026-10-25 12:43:32 +13:00
73266aaa1d fix(libkernel): reach the guest terminate handler from an ITIMER_REAL expiry on macOS
An ITIMER_REAL expiry with a guest SIGALRM handler throws, since guest
handlers are never run from the timer thread. On Linux and Windows that
throw goes through libc's exception runtime, so an uncaught one runs the
guest's std::set_terminate handler. On macOS the host keeps libc++abi,
so the throw ended in libc++abi's terminate and the guest handler never
ran. Throw through the guest runtime there, and record the general
macOS gap in the libc debt file.

Ported from #8658.

Co-authored-by: Himansh Raj <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 20:43:11 -03:00
hypermistandClaude Opus 5.5 a81479ebea Merge remote-tracking branch 'upstream/main' into feat/spsyscallwrapper-getpid-select
Clean merge.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 12:42:14 +13:00
Disaster 10c2a645a3 feat(libc): implement long-double Dinkumware helpers
Implement _LLog, _LDivide and _LRecip for the PS5 libc surface, with guest coverage for base dispatch, division and reciprocal semantics.
2026-10-25 02:41:03 +03:00
hypermistandClaude Opus 5.5 be0142a377 Merge remote-tracking branch 'upstream/main' into feat/font-words
Kept main's Api.hpp declarations and dropped the duplicated struct block from Unimplemented.cpp.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 12:39:45 +13:00
xdCloudy 743d6b91e6 fix(prx): drop duplicate SSL initialization stubs 2026-10-24 16:35:54 -07:00
xdCloudy 6869eaa68b feat(libSceSsl): declare pending PS5 exports 2026-10-24 16:35:54 -07:00
Retr0 e7de2a5e37 Merge remote-tracking branch 'origin/main' into fix/socketpair-fstat-inode
# Conflicts:
#	core/libs/tests/GuestSocketPair.cpp
2026-10-25 02:33:56 +03:00
orezraeyandClaude Opus 5.5 dcfc5632b0 Merge main into fix/libkernel-sync-on-address-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 20:31:00 -03:00
orezraeyandClaude Opus 5.5 6b1962e978 Merge main into fix/libc-strftime-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 20:28:55 -03:00
Retr0 3af8e6d040 Merge remote-tracking branch 'origin/main' into fix/socketpair-getpeername-enotconn
# Conflicts:
#	core/libs/tests/GuestSocketPair.cpp
2026-10-25 02:23:58 +03:00
MarcZX10 064c370e03 docs(libSceNpSignaling): record sceNpSignalingDeactivateConnection 2026-10-24 23:16:38 +00:00
Queuze dc15446739 fix(check-compile): reject text-mode ambiguities 2026-10-24 20:15:22 -03:00
Dean Galvin eb3dd54501 Merge main into pr/robust-loads 2026-10-25 12:15:18 +13:00
MarcZX10 11b61f90f7 docs(libSceBgft): record the unmeasured signatures of GetPatchProgress and GetTaskInfo 2026-10-24 23:14:25 +00:00
Alexandre Figueiredo da3e88a21d feat(libSceNpCommon): forward sceNpCloseEventFlag to sceKernelCloseEventFlag 2026-10-25 00:10:14 +01:00
Dean Galvin 83b63bfbb5 Merge main into windows/libc-exp2f-msun 2026-10-25 12:09:10 +13:00
MarcZX10 dd537b5367 docs(libSceVoice): record the single-source shadPS4 signatures of the declared stubs 2026-10-24 23:08:22 +00:00
orezraeyandClaude Opus 5.5 cab8c2fa88 Merge main into fix/libscecescs-jis-encode-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 20:07:39 -03:00
orezraeyandClaude Opus 5.5 4c3c3231d6 Merge main into fix/libscecescs-mbcs-strings-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 20:06:54 -03:00