Commit Graph
20967 Commits
Author SHA1 Message Date
hypermistandClaude Opus 5.5 54ebb7c4eb Merge remote-tracking branch 'upstream/main' into fix/libs-firmware-constants-4
Clean merge.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 13:06:04 +13: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
xdCloudy 8906049b33 fix(libSceSsl): declare server-name export 2026-10-25 01:02:41 +01:00
Yunus Shaikh d689d1b59c refactor(libSceAmpr): share the AMM map, unmap, remap and protection encoders
The range, direct offset and protection checks of the AMM map, unmap,
remap, multimap and protection commands, and the records they build,
move from libSceAmpr's Export.cpp into the APR command buffer header
that libSceAmpr and libkernel already share. libSceAmpr records the
same bytes and returns the same errors in the same order; the kernel
writers can now encode the same records without a second copy.
2026-10-25 00:02:34 +00:00
xdCloudy 71b3da35b8 fix(libSceFreeTypeOl): name known FreeType aliases 2026-10-25 01:01:01 +01:00
hypermistandClaude Opus 5.5 27ee186e36 refactor(libkernel_sys): include the library header in the constants test
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 12:58:26 +13:00
hundoukamandClaude Fable 5.1 147ae14830 fix(tools): place a debt entry by the first core link of its whole entry
The debt-file rule read only the first line of an added entry, so an
entry whose first core/ link sat on an indented continuation line was
rejected in docs/dev/debt/<name>.md and accepted in the index, the
opposite of what debt_split.py does with the same entry. The rule now
joins the continuation lines as debt_split.parse does before naming
the file.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-24 17:58:17 -06: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 17c46a4388 Merge pull request #9150 from gdols/ci/alignas-limit
ci(conventions): reject alignas above the 8192 bytes MinGW allows
2026-10-25 12:57:04 +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
hypermistandClaude Opus 5.5 3dd4e1fd18 Merge remote-tracking branch 'upstream/main' into fix/kernel-sys-firmware-constants
Clean merge.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 12:56:11 +13:00
Dean Galvin 1616abc519 Merge main into feat/libc-feraiseexcept 2026-10-25 12:55:37 +13:00
harisibrar1andClaude Opus 5.5 a63d961916 fix(libkernel): clear select bits from nfds to the end of their word as FreeBSD copies them out
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 19:55:07 -04:00
Dean Galvin 5bf26ec0cd Merge main into fix/libc-compare-byte-difference 2026-10-25 12:54:55 +13:00
xXPBSXxandClaude Sonnet 5.5 6457edc2fb fix(libkernel): fail fcntl F_DUPFD with EINVAL when the minimum descriptor is beyond the open file limit on Windows
fcntl(fd, F_DUPFD, min) with min at or above RLIMIT_NOFILE duplicated the
descriptor repeatedly until the CRT table was full and then failed with
EMFILE, after opening thousands of descriptors. FreeBSD checks the minimum
first: kern_dup returns EINVAL for FDDUP_FCNTL when new < 0 or
new >= maxfd (sys/kern/kern_descrip.c:836-840). Linux already answers
EINVAL through the host fcntl. Check the minimum against the guest
RLIMIT_NOFILE before the Windows loop.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-25 01:52:31 +02: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
memob 1ee2fe9ff9 test(tools): count the partial class in the module suffix audit tests 2026-10-24 19:49:55 -04:00
memob df1a204a4f fix(tools): count a throw inside a plain block as unconditional
A compound statement that is not a conditional, loop or lambda always runs, so its calls are collected like the body's own and its exits stop the scan. An export whose only throw sits in such a block stays a stub and fails a strict audit.
2026-10-24 19:49:14 -04:00
memob d606317bca test(tools): match the stub heading from main in the partial class test 2026-10-24 19:49:14 -04:00
memob 1e123e64ff fix(tools): call an export partial when a conditional exit precedes its throw
A conditional return, co_return or goto before the throwing call leaves a path that succeeds, so the audit stops collecting calls at it and the export, or a helper it calls, is partial. A guard that throws still leaves every path throwing, so it stays a stub.
2026-10-24 19:49:14 -04:00
memob bf358a9486 fix(tools): call an export partial only when some preprocessor branch does not throw
The previous check called any stub call inside an #if block partial,
so an export that throws in every #if, #elif and #else alternative was
reported as partial. Each combination of preprocessor branches is now
expanded into its own body, an #if without #else gets an empty
alternative, and the export is a stub when every combination reaches
the throw. More than 256 combinations in one function, or unbalanced
directives, are reported as errors.
2026-10-24 19:49:14 -04:00
memob a88acf15de fix(tools): count a stub call under a preprocessor branch as partial
A NotImplemented_nid_no_patch call inside an #if, #ifdef or #ifndef block
opened in the export's own body runs only on some hosts, so the export
is partial, not a stub. An export wrapped in a preprocessor block from
outside its body keeps its class.
2026-10-24 19:49:13 -04:00
memob 41739f0174 feat(tools): split guarded exports into a partial import_audit class
An export whose body reaches NotImplemented_nid_no_patch on every path,
directly or through a helper that always reaches it, stays a stub. One
that reaches it only under a condition (if, else, loop, switch, ternary,
short-circuit or lambda) is now classified as partial, so implemented
exports with guards for unknown behaviour are no longer counted as stubs.
progress.py and the progress page are unchanged.
2026-10-24 19:49:13 -04: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 02c9290d77 refactor(libSceFont): use the library headers in the font metrics test
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 12:45:44 +13: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 38d463a6cf Merge pull request #10157 from Usama171/fix/relinker-preloaded-crt-log
fix(relinker): rebind a preloaded CRT's standard streams to the startup log
2026-10-25 12:45:29 +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 dfb7022eb2 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 b3fec9cce0 refactor(libSceSpSysCallWrapper): declare sceSpSelect signature in the library header
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 12:42:14 +13:00
hypermistandClaude Opus 5.5 3d99dcd88f Merge remote-tracking branch 'origin/feat/sp-syscall-wrapper-forwards' into feat/spsyscallwrapper-getpid-select
Kept the base branch's header-based declarations and dropped this branch's local redeclarations.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 12:42:14 +13: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 6f4d796c2f refactor(libSceFont): use the library header in the font words source and test
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 12:39:45 +13: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
xdCloudy 39e19da487 docs: distinguish known exports from unverified ABI 2026-10-24 16:35:48 -07:00