Commit Graph
20967 Commits
Author SHA1 Message Date
Izamaru 5472107c47 Merge branch 'boykopovar:main' into perf/sparse-page-permissions 2026-10-22 11:34:14 -03:00
Ondra97 e359c22d45 chore: merge current main into ULT finalization fix 2026-10-22 16:29:04 +02:00
Kraken 4158a678c6 chore(libkernel): refresh variant timed join prerequisite 2026-10-22 15:26:56 +01:00
David a81f89fa6b Merge remote-tracking branch 'origin/main' into feat/agc-barycentric-rect-list
# Conflicts:
#	core/libs/prx/libSceAgcDriver/tests/execution/PixelBarycentricEmulation.cpp
#	docs/dev/debt/shader.md
2026-10-22 18:26:03 +04:00
Kraken bf787dc895 chore(libkernel): merge current main for timed join integration 2026-10-22 15:25:35 +01:00
Dean b7d1d47a5f Merge pull request #8083 from DavidSamir/feat/agc-barycentric-tessellation-strips
feat(agc): draw triangle strips through the barycentric tessellation stages
2026-10-23 03:22:55 +13:00
Ondra97 fcc988ca3f chore: merge current main into ULT finalization fix 2026-10-22 16:19:30 +02:00
Kraken 1df8b3cd06 fix(freetype): isolate PFR fixture runtime linkage on current main 2026-10-22 15:18:40 +01:00
Dean 329efe1bfd Merge pull request #7371 from Amoenus/codex/fix-native-htile-clear-handoff
fix(agc): settle queued HTILE clears before native depth use
2026-10-23 03:14:33 +13:00
David 935baa3394 test(libkernel): cover the POSIX pthread attribute and thread calls
pthread_attr_init, destroy, get and setdetachstate, get and setguardsize, getstacksize, get and setschedparam, pthread_equal, sched_yield, pthread_yield, pthread_setcancelstate and pthread_create_name_np had no test that ran them. The test checks the round trips, EINVAL for an invalid detach state or a null output, a destroyed attribute, the identity of thread handles, and the old state returned by pthread_setcancelstate. The default values the console reports are not pinned.
2026-10-22 18:10:20 +04:00
Kraken a1cd1eba21 build(libc): avoid unrelated shader test registration overlap 2026-10-22 15:03:41 +01:00
hypermistandClaude Opus 5.5 68e3a685fb fix(libSceSpSysCallWrapper): reach sceNetRecv and sceNetSend through longer-named entries
The PE and Mach-O NID patchers rewrite each sce import name in place with its 11-character NID, so the 10-character sceNetRecv and sceNetSend imports stopped the Windows build. libSceNet now exports GuestNetRecv_nid_no_patch and GuestNetSend_nid_no_patch, as libkernel does with GuestAlarm_nid_no_patch, and the two wrappers call those.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01SNqSvnFwRBz3D76n476yw6
2026-10-23 03:03:15 +13:00
David a5c2df716f test(libc): cover the exact long double and float rounding exports
guest_math_exact did not reach copysignl, sqrtl, lrintl, llrintl, lrintf,
llrintf, scalbf, scalblnf or __isinfl. It now checks copysignl with signed
zeros, sqrtl at -1 and -0, the four lrint forms at +-2.5 under each
rounding mode with errno untouched, scalbf with fractional, infinite and
NaN exponents, scalblnf clamping 64-bit exponents, and __isinfl.
2026-10-22 15:00:50 +01:00
David e50621261a test(libc): cover freopen of an empty name on a host standard stream
freopen of an empty name on stdout fails with ENOENT as fopen of an empty name does, the guest stream is closed afterwards and the host standard output is still writable and still reaches its destination. Before the previous commit the call failed with EINVAL.
2026-10-22 18:00:20 +04:00
David 22f2ff3a00 fix(libc): fail freopen of an empty name with ENOENT on Windows
freopen skipped path resolution for an empty file name and handed it to the host, so the MS CRT answered EINVAL where FreeBSD's freopen, which opens the name and keeps that errno (lib/libc/stdio/freopen.c lines 153, 162 and 196), gives ENOENT, as fopen of an empty name already does. An empty name now fails like an unresolvable one: ENOENT, the guest stream is closed and a host standard stream is left as it was.
2026-10-22 18:00:20 +04:00
Retr0 f04af479e6 test(libkernel): require EINPROGRESS from a nonblocking connect in progress
FreeBSD 11's kern_connectat fails a nonblocking connect that is still
connecting with EINPROGRESS (36), a second one while it is still
connecting with EALREADY, and soconnectat fails one on a connected
stream socket with EISCONN. On Windows connect has reported
WSAEWOULDBLOCK as EINPROGRESS since 79e162110, but the poll test still
accepted EAGAIN (35) and the socket error numbers debt entry still
listed the gap. Require 36 in the poll test and cut the stale sentence.
2026-10-22 16:59:54 +03:00
StoneDC 35d36eabbc feat(libSceUlt): implement sceUltConditionVariableCreate and condition variable option initializers 2026-10-22 21:57:38 +08:00
David 3db9e4ee05 test(libc): cover the standard string exports
guest_strings checked the bounds-checked and BSD string functions but not
the plain C ones. It now checks strcmp, strncmp and strcoll by sign,
strlen, strcpy and strcat return values, strncpy zero padding and its
unterminated truncation, strstr with an empty needle, strspn, bcmp and
bzero.
2026-10-22 14:57:02 +01:00
Kraken 54f8a66aaf feat(libc): implement floating-point prefix helpers 2026-10-22 14:55:50 +01:00
hypermist 105c0102a6 Merge remote-tracking branch 'upstream/main' into feat/sp-syscall-wrapper-forwards 2026-10-23 02:55:02 +13:00
David 3a08b7ce40 test(libc): cover the sized find, count, min and max vector helpers
guest_vector_algorithms ran one size of each MSVC-STL vector helper. It
now also runs __std_find_trivial 1, 4 and 8 (first match, or last when
there is none), __std_count_trivial 1, 2 and 4, __std_min_element 2, 4
and 8 and __std_max_element 1, 2 and 8. The min and max checks cover
signed against unsigned ordering, a tie (the first extreme is returned)
and an empty range.
2026-10-22 14:53:01 +01:00
ntamas94andClaude Opus 5.5 2d1ecaf29e fix(libSceRtc): reject a negative source tick in sceRtcFormatRFC2822
Measured on a PS4 (firmware 10.71) for the review of the zone-shift
overflow: sceRtcFormatRFC2822 returns 0x80B50003 for UINT64_MAX with +1
and +1439 minutes and for 2^64 - 1 minute with +1, where the shifted tick
lands in year 1. The console returns 0x80B50008 when the shifted tick is
past 9999 as a signed value (2^63 with -1 minute) and otherwise 0x80B50003
when the source or the shifted tick is negative as a signed value
(2^63 with 0, 0 with -1); the tick after 9999 with -1 minute still formats.

sceRtcFormatRFC3339 does wrap on the console: UINT64_MAX with +1 minute
returns 0 and writes 0001-01-01T00:00:59.99+00:01, as the implementation
already does. Tests now cover both.

Written with AI assistance.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-22 15:52:23 +02:00
Dom3005andClaude Opus 5.5 4892b71494 docs(debt): match the Windows directory descriptor entry to the code
d31e28308 made getdents and getdirentries throw on a name above the
one-byte d_namlen limit, and #8591 made getdirentries report the entry
index of its block through basep. The libkernel entry still described
ENAMETOOLONG and a basep of 0.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-22 15:52:04 +02:00
David 899306f855 test(libc): cover the remaining sizes of the Dinkumware typed atomics
guest_dinkumware_atomics called one or two sizes of each typed _Atomic_
function. It now also runs the other sizes: store 2 and 4, load 1,
exchange 1 and 2, strong compare-exchange 1, 4 and 8 and weak 1 and 2
(a failure writes the observed value back, then a success swaps), fetch_sub
1 and 8, fetch_and 1, 2 and 8, fetch_or 2, 4 and 8, fetch_xor 1, 2 and 4
(each returns the previous value, with wraparound), and is_lock_free 1, 2
and 8.
2026-10-22 14:51:16 +01:00
ntamas94andClaude Opus 5.5 3cf419d4ea fix(libSceRtc): handle out-of-range time values as the PS4 does
Measured on a PS4 (firmware 10.71) with an OpenOrbis homebrew that loads a
probe PRX calling libSceRtc; every output starts as a sentinel, so stores
and their width are visible.

- sceRtcSetTime_t takes the low 32 bits of its argument as unsigned seconds
  and returns 0 for every value: -1 is 2106-02-07 06:28:15, 2^32 + 1 is
  1970-01-01 00:00:01 and -2^31 is 2038-01-19 03:14:08. sceRtcGetTime_t
  stays 64-bit (2106-02-07 06:28:16 is 2^32).
- sceRtcGetTime_t before 1970 and sceRtcGetWin32FileTime before 1601 store
  0 and return 0x80B50008. Field validation still comes first and leaves
  the output unchanged (1969-13-01 returns 0x80B50009).
- sceRtcSetTick and sceRtcSetWin32FileTime have no upper limit: the tick
  after 9999-12-31 23:59:59.999999 is 10000-01-01 and the file time
  2^64 - 1 is 60056-05-28 05:36:10.955161. sceRtcGetDayOfWeek accepts
  years past 9999 (10000-01-01 is 6).
- sceRtcFormatRFC3339 returns 0x80B50008 when the zone-shifted tick is
  outside years 1 to 9999. sceRtcFormatRFC2822 returns 0x80B50003 when it
  is negative as a signed value and 0x80B50008 when it is past 9999.

The PS5-measured cases of GuestRtc.cpp that the probe repeated (RFC 3339
and RFC 2822 parsing, named and military zones, DOS time, TickAdd) give the
same results on the PS4. The three expectations changed here (SetTick past
9999, SetTime_t(-1), RFC 2822 at the limit with +1 minute) came from
commits that cite no measurement. Not yet confirmed on PS5.

Written with AI assistance.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-22 15:51:03 +02:00
Federico Marras c589596074 Merge commit '3ca07d086d5f44fbe3c00370e7f03953ab46ca1b' into fix/agc-store-idle-results-deadline 2026-10-22 15:49:01 +02:00
Federico Marras 649c961aff Merge commit '3ca07d086d5f44fbe3c00370e7f03953ab46ca1b' into feat/kernel-sys-pthread-scope-atfork 2026-10-22 15:48:42 +02:00
Federico Marras a242637da4 Merge commit '3ca07d086d5f44fbe3c00370e7f03953ab46ca1b' into docs/ajm-instance-signature-sources 2026-10-22 15:47:23 +02:00
Federico Marras 06f25300f9 Merge commit '3ca07d086d5f44fbe3c00370e7f03953ab46ca1b' into feat/system-service-app-title-id 2026-10-22 15:43:43 +02:00
Federico Marras d5d453c229 Merge commit '3ca07d086d5f44fbe3c00370e7f03953ab46ca1b' into feat/net-get-sock-info6 2026-10-22 15:43:20 +02:00
Federico Marras 73822f3fea Merge commit '3ca07d086d5f44fbe3c00370e7f03953ab46ca1b' into feat/http-memory-pool-stats 2026-10-22 15:42:59 +02:00
Federico Marras a75002323d Merge commit '3ca07d086d5f44fbe3c00370e7f03953ab46ca1b' into feat/audio-out-mastering 2026-10-22 15:42:17 +02:00
Izamaru 2615f1e2e6 chore: merge main into descriptor reference fix 2026-10-22 10:40:42 -03:00
Federico Marras be6d4f2427 Merge branch 'fix/ngs2-atrac9-parsed-delay' into feat/ngs2-atrac9-module-loops 2026-10-22 15:39:16 +02:00
Federico Marras b655a905ba Merge branch 'feat/ngs2-calc-atrac9-block' into feat/ngs2-atrac9-module-loops 2026-10-22 15:39:16 +02:00
Federico Marras d20d4cb60e Merge branch 'feat/ngs2-calc-vag-block' into feat/ngs2-calc-atrac9-block 2026-10-22 15:38:23 +02:00
Federico Marras 7644d6c2b4 Merge branch 'feat/ngs2-parse-pcm-depths' into feat/ngs2-parse-format-codes 2026-10-22 15:37:28 +02:00
Yunus Shaikh f045da9026 Merge main into feat/libscehmd-no-headset-queries 2026-10-22 06:36:43 -07:00
Federico Marras 5d6a00842f Merge branch 'feat/ngs2-system-option-codes' into feat/ngs2-system-create-arguments 2026-10-22 15:35:09 +02:00
Federico Marras ac0ef4f214 Merge branch 'feat/ngs2-system-option-codes' into feat/ngs2-system-rate-grain-codes 2026-10-22 15:34:17 +02:00
Rookie f0e63df885 feat(libSceNpManager): answer the user ID account queries for a signed-out user
sceNpCheckNpAvailabilityA, sceNpGetAccountLanguageA,
sceNpGetParentalControlInfoA and sceNpGetAccountDateOfBirthA return
SIGNED_OUT without writing, like sceNpGetAccountCountryA. The game
presence queries report OFFLINE. A null pointer or user id -1 is
INVALID_ARGUMENT, and the request forms refuse request id 0 and an
unknown request as sceNpSetGamePresenceOnline does. Signatures and
checks follow shadPS4 and Orbital; sceNpIsPlusMember keeps throwing.
2026-10-22 14:33:49 +01:00
Rookie 4951eee5ed fix(libc): compute acosf with FreeBSD msun's algorithm, as the console's libc.prx does 2026-10-22 14:33:15 +01:00
Rookie f8ca673040 test(libkernel): throw through the guest runtime on macOS in the host standard error test 2026-10-22 14:33:13 +01:00
Rookie 035eddac1a test(libSceNet): wait for the blocked send to start before aborting it 2026-10-22 14:33:00 +01:00
Rookie b6dc6a5d4d feat(libSceVideodec): implement sceVideodecQueryResourceInfo
Validate the configuration and resource information as
sceVideodecCreateDecoder does, map the configuration the same way and
report the memory and frame buffer requirements that
sceVideodec2QueryDecoderMemoryInfo gives for it.
2026-10-22 14:32:24 +01:00
Federico Marras 845000aaf8 Merge branch 'feat/ngs2-system-reset-option' into feat/ngs2-system-option-codes 2026-10-22 15:32:04 +02:00
MarcZX10 94ea385b51 feat(libSceHttp): implement cookie-enabled option state 2026-10-22 13:31:21 +00:00
MarcZX10 0aac538d00 fix(libSceHttp): keep auth option PR scoped 2026-10-22 13:31:21 +00:00
MarcZX10 13eea0a93f feat(libSceHttp): implement request header removal stub 2026-10-22 13:31:21 +00:00
MarcZX10 26ea36f114 feat(libSceSsl): implement full-buffer send and receive 2026-10-22 13:31:21 +00:00