Commit Graph
7981 Commits
Author SHA1 Message Date
Adrià bed6e7258f Merge pull request #8451 from thuanquang/docs/debt-buffer-label-eop-flip
docs(videoout): point the buffer label entry at sceVideoOutSubmitEopFlip
2026-10-24 11:24:53 +02:00
Adrià feffbca83e Merge pull request #8425 from thuanquang/docs/debt-packed-ancillary-whole-word
docs(shader): say that the whole packed ancillary word carries the layer field too
2026-10-24 11:24:32 +02:00
Adrià 1c9ccc7386 Merge pull request #8420 from thuanquang/docs/debt-ngg-registered-programs
docs(agc): say that registered NGG vertex programs take the mesh path too
2026-10-24 11:24:10 +02:00
Adrià 67bcd19b8b Merge pull request #8424 from thuanquang/docs/debt-alpha-to-coverage-dithered
docs(agc): drop the stale "only" from the alpha-to-coverage entry
2026-10-24 11:24:04 +02:00
Adrià 20af9f8aa3 Merge pull request #8423 from thuanquang/docs/debt-depth-surface-retire-whole-plane
docs(agc): say that only a whole-plane storage write retires a depth surface
2026-10-24 11:23:42 +02:00
Adrià ca9543ea5a Merge pull request #8419 from thuanquang/docs/debt-agc-allocation-host-fallback
docs(agc): say that a refused device allocation falls back to host memory before throwing
2026-10-24 11:21:53 +02:00
Adrià 7eda9aad20 Merge pull request #8412 from thuanquang/docs/debt-depth-storage-other-level
docs(agc): drop another level from the reused depth storage refusals
2026-10-24 11:21:36 +02:00
Adrià 11d08593b6 Merge pull request #8410 from thuanquang/docs/debt-f32-compare-denormal-modes
docs(shader): say that the f32 compares do not throw in f32 denormal modes 1 and 2
2026-10-24 11:21:31 +02:00
Adrià 6b4cf8c731 Merge pull request #8408 from thuanquang/docs/debt-amm-submit-queue
docs(libkernel): say that an AMM command buffer may run after its submission returns
2026-10-24 11:21:27 +02:00
Adrià 4007c64f1e Merge pull request #8406 from thuanquang/docs/debt-interp-f16-lavapipe
docs(shader): drop the stale lavapipe skip from the 16-bit interpolation entry
2026-10-24 11:19:46 +02:00
Adrià 4b4f67aa1b Merge pull request #7953 from kiaramaldonado/docs/rosetta-m2-macos14
docs(relinker): record Rosetta instruction support on an M2 with macOS 14.8.9
2026-10-24 11:19:42 +02:00
Adrià 51e17a78bc Merge pull request #8403 from thuanquang/docs/debt-unnormalized-sampler-uses
docs(shader): list the samples unnormalized S#s are accepted for
2026-10-24 11:19:24 +02:00
Adrià 1618d6602e Merge pull request #8401 from thuanquang/docs/debt-descriptor-pool-lavapipe
docs(agc): say that only lavapipe frees descriptor sets individually
2026-10-24 11:18:46 +02:00
jacob6769 e599306514 Merge remote-tracking branch 'origin/main' into fix/libressl-digest-version-paths
# Conflicts:
#	docs/dev/debt/libSceLibreSsl.md
2026-10-24 18:18:03 +09:00
Adrià FranchandClaude Sonnet 5.5 387f069744 chore(libkernel): drop code comments from the kqueue tests and move the timer debt line off the section end
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-24 11:13:43 +02:00
blawesom 681cfa1170 fix(libkernel): refuse a timer modify with fflags and pin the disabled timer's enable re-arm
- a timer change with EV_ADD unset and data 0 keeps the period; one that set
  fflags was silently ignored, where FreeBSD 11's kqueue_register copies it
  onto the note: it now throws with the other re-adds, waiting for the
  measured rules
- EV_ENABLE on a disabled timer reports the expiries missed while disabled in
  one step and keeps the note's phase, as FreeBSD 11's filt_timerexpire counts
  a disabled note and keeps its p_nexttime; TimerDisableEnableRearm pins it
  (5 serial runs and 3 rounds of 8 parallel copies pass)
- the next-wait abort from the review round was observed before main's
  5cbc46029b wait refactor and does not reproduce
2026-10-24 11:13:43 +02:00
Nawasfadili 29a6fc7169 fix(libkernel): retire an EV_ONESHOT note through its delete callback and follow Windows $Deleted paths
Carries the additive pieces of #6510 onto main after its feature was
superseded by #5847: the deleteEventFunc invocation when an EV_ONESHOT
note retires in CollectTriggered, the Windows $Deleted path detection
in FileEvent (IsDeleted transitions), the relaxed timer-modify and
SetVnodeNotes guards, and the compatible kevent tests.
2026-10-24 11:13:43 +02:00
Dean 19cb822f84 Merge pull request #9033 from HQasper/claude/project-thread-w0s18y-aes
feat(libSceLibreSsl): implement the low-level AES functions
2026-10-24 22:13:35 +13:00
Dean ce965ddb7b Merge pull request #9153 from orezraey/fix/libkernel-dmem-available-measured-ps5
fix(libkernel): match sceKernelAvailableDirectMemorySize arguments to PS5
2026-10-24 22:13:10 +13:00
Dean 6a3901fb69 Merge pull request #10384 from JJenkx/windows/libc-strcasecmp-sign
fix(libc): return only the sign from strcasecmp and strncasecmp as titles' libc.prx does
2026-10-24 22:12:38 +13:00
Dean e9a551d6f4 Merge pull request #9857 from JJenkx/windows/libc-trigf-msun
fix(libc): compute sinf, cosf, tanf and sincosf with FreeBSD msun's algorithms, as titles' libc.prx does
2026-10-24 22:12:11 +13:00
Adrià b64df51467 Merge pull request #8353 from MarrasFederico/docs/ajm-instance-signature-sources
docs(libSceAjm.native): credit the instance call signatures to the sources that give them
2026-10-24 11:08:39 +02:00
Adrià 2b2055fa4f Merge pull request #8281 from thuanquang/docs/f64-denormal-debt
docs(debt): correct stale f64 denormal and RSRC1 float mode statements
2026-10-24 11:06:19 +02:00
Adrià a228fd9548 Merge pull request #8276 from thuanquang/docs/volume-array-sample-debt
docs(shader): state the gap first for 2D-array samples through a 3D T#
2026-10-24 11:06:00 +02:00
Adrià FranchandClaude Sonnet 5.5 927fe074fe docs(relinker): note the M2 Max macOS 27.2 result
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-24 11:05:43 +02:00
Kiara Maldonado 47ff0109c9 docs(relinker): record Rosetta instruction support on an M2 with macOS 14.8.9 2026-10-24 11:05:35 +02:00
hypermistandClaude Opus 5.5 928729bdfb feat(libSceFont): report the glyph outline profile through the FreeType driver
sceFontGetFontGlyphsOutlineProfile reports the maxp maximum contours,
points, composite contours and composite points through the driver slot
at SysDriver+0x70, as libSceFont and libSceFontFt do in firmware 13.60.
A maxp older than 1.0 returns SCE_FONT_ERROR_NO_SUPPORT_FUNCTION, and a
failed call clears the output. Font-set records, which the console
merges over system font entries, still throw.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 22:02:15 +13:00
Karim Masmoudi ce6c2a0c66 fix(relinker): rewrite XSAVEOPT to XSAVE under --to-rosetta
XSAVEOPT raises an illegal instruction under Rosetta on an M5 running
macOS 27.0.1, as XSAVEC does, while XSAVE and XRSTOR save and restore
x87, SSE and AVX state in the standard format. The PS5's Zen 2 has
XSAVEOPT, so code built for it can use the instruction without a CPUID
check.

XSAVEOPT differs from XSAVE only in the init and modified optimizations:
it may skip writing state that is in its initial configuration or
unchanged since the last XRSTOR from the same area. XRSTOR restores the
same state from the area XSAVE writes, so --to-rosetta rewrites
XSAVEOPT (NP 0F AE /6, memory operand) to XSAVE (/4) in place, keeping
the prefixes and the operand, as RDSEED becomes RDRAND. CLWB (66 0F AE
/6), MFENCE, UMONITOR, UMWAIT and the Intel target are left alone.
XSAVEC is not converted: it writes the compacted format.

The converter tests check the rewrite for the plain, REX.W,
RSP-relative, extended-base, RIP-relative and FS-relative forms, check
that the neighbouring 0F AE encodings are not taken, and execute the
rewritten XSAVEOPT64 followed by XRSTOR on YMM3 in the x86-64 build.
The --to-rosetta integration test now covers XSAVEOPT as well.
2026-10-24 11:01:44 +02:00
Adrià FranchandClaude Sonnet 5.5 e1fea2ebc8 fix(relinker): drop stray blank line and document the moving-branch guard
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-24 10:58:12 +02:00
Yaash Singhh f5fbf2f98d fix(relinker): rebase truncated branch guard onto current main 2026-10-24 10:58:00 +02:00
Federico Marras aff93896ca Merge remote-tracking branch 'origin/main' into feat/np-matching2-contexts
# Conflicts:
#	core/libs/CMakeLists.txt
#	docs/dev/debt/libSceNpSignaling.md
2026-10-24 10:51:43 +02:00
thuanquang b58a21d9f4 Merge commit 'd36311d661' into fix/linear-target-import-creation
# Conflicts:
#	docs/dev/debt/libSceAgcDriver.md
2026-10-24 15:47:17 +07:00
Federico Marras 41d4640c06 fix(libSceNetCtlAp): clear the callback id when registration slots are full 2026-10-24 10:45:41 +02:00
thuanquangandClaude d36311d661 fix(agc): keep a drawn linear target's draws per 64 KiB block over a direct write's completion stamp
A direct write with completion work, recorded before draws into a resident
linear target, stamps the target's memory again when its batch completes.
The keep rule moved the whole image past that stamp only when nothing in
the image had changed since its generation, so a CPU store anywhere else
in the target, made before the completion, dropped every draw in the
direct write's range at the next store.

For a drawn target, when the whole-image check fails, the stamped 64 KiB
blocks are now checked one by one. A block with no change since the
image's generation is recorded as kept at the stamp (completionKept), and
writeBackLayers and the unwatch path read that per-block generation, so
the draws there are stored while a block the CPU wrote keeps the CPU's
bytes outside the drawn rectangles. Whole-image keeps of drawn targets are
rechecked for CPU stores after the stamp and fall back to the per-block
keep. The per-block values are cleared when the layer starts a new
pending period.

agc_driver_linear_target_direct_write_completion gains the ordering from
review: a fill over block 0, a draw into block 0, a CPU store into block 1
while the fill's completion is still pending, then the label, on
write-watched and unwatched memory.

Co-Authored-By: Claude <[email protected]>
2026-10-24 15:45:26 +07:00
Dean Galvin 4a6e013eed Merge main into feat/libc-feupdateenv 2026-10-24 21:43:01 +13:00
Dean Galvin 7c52c8728a Merge main into feat/libc-feholdexcept 2026-10-24 21:43:00 +13:00
Dean Galvin b0b291be0b Merge main into feat/libkernel-sys-underscore-openat 2026-10-24 21:42:59 +13:00
Dean Galvin 161b602a45 Merge main into feat/prx-declare-ps5-3.20-exports-tier3 2026-10-24 21:42:57 +13:00
954a8e1a9d fix(libkernel): append positioned writes on an O_APPEND descriptor on macOS
macOS pwrite and pwritev write at the given offset even when the
descriptor was opened with O_APPEND. FreeBSD's vn_write appends to an
O_APPEND regular file whatever the offset and leaves the file offset
unchanged, and Linux pwrite appends too. On macOS, sceKernelPwrite,
pwrite, sceKernelPwritev, pwritev and the AIO write commands now append
such writes with writev and restore the file offset, as #8359 does on
Windows.

Co-authored-by: Himansh Raj <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 05:34:28 -03:00
orezraeyandClaude Opus 5.5 22b120c185 Merge main into docs/libkernel-sem-timedwait-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 05:24:29 -03:00
MarcZX10 a3e41499be fix(libc): match title printf conversions on Windows 2026-10-24 10:22:15 +02:00
Hussein Kadhim 621a487bdf fix(libc): print the FreeBSD printf extensions and stray percent signs on Windows
The Windows printf family threw on the q length modifier, the D, O and U
conversions, an unknown conversion character and a format ending in a percent
sign, where FreeBSD's vfprintf formats the first three and prints the unknown
character itself or stops at the end of the format.

(cherry picked from commit 0e3b2896d228c601cefc992b2895723188ebf0fa)
2026-10-24 10:22:15 +02:00
Dean e058b3284a Merge pull request #9167 from slider/feat/libkernel-named-semaphores
feat(libkernel): implement named POSIX semaphores
2026-10-24 21:09:30 +13:00
Dean 91007ff06c Merge pull request #10312 from ntamas94/fix/ps4-libc-strerror
fix(libc): answer strerror as the titles' libc.prx does
2026-10-24 21:09:00 +13:00
Dean 2250381689 Merge pull request #9934 from Celegans12/feat/agc-nv-diagnostics-config
feat(agc): enable VK_NV_device_diagnostics_config behind APS5_NV_DIAGNOSTICS
2026-10-24 21:08:33 +13:00
ionut27001 27e37024a8 fix(libkernel): handle kevent timer re-adds and the AIO, LIO, SENDFILE and PROCDESC filters as measured on a PS5
In payload processes on a PS5 (firmware 12.70), re-adding an existing
periodic EVFILT_TIMER with EV_ADD, fflags 0 and a positive period kept
the armed expiry and the expirations already counted, and applied the
new period after that expiry, as FreeBSD 11.0 does. EV_ONESHOT in the
re-add left the timer periodic. Here such a re-add threw; it now does
the same. Re-adding a one-shot or disabled timer, a re-add with nonzero
fflags, a period of 0 or less, a period that overflows the armed expiry
or flags other than EV_ONESHOT, and the other changes to an existing
timer except EV_DELETE still throw.

There, EV_ADD failed with EPERM for EVFILT_AIO, EVFILT_LIO and
EVFILT_SENDFILE at every ident and flag set tried, and EV_DELETE and
EV_ENABLE of them without EV_ADD failed with ENOENT. EVFILT_PROCDESC
failed with EBADF on a descriptor that is not open and with EINVAL on
every kind of open descriptor tried, and EV_DELETE of it on a socket
failed with ENOENT. These filters threw here; they now answer the same
way. EV_ADD of EVFILT_PROCDESC fails with EINVAL on the kinds of
descriptor tried and on shared memory, and throws on other kinds and on
descriptors 0 to 2 that are not sockets or kqueues; a change without
EV_ADD fails with ENOENT, after the descriptor check for
EVFILT_PROCDESC.

A new kevent measurements debt entry, which the kqueue and kevent entry
points to, records these measurements and the answers for NOTE_LOWAT
marks and EVFILT_READ on another kqueue, which still throw here. The
kqueue and kevent entry also stops listing a NOTE_NSECONDS period above
one second with a fraction among the cases that throw, since d71a1c577
made it work.
2026-10-24 10:08:01 +02:00
atharvjairath 676a0e0072 feat(fiber): execute contextless fibers on the caller stack 2026-10-24 13:21:05 +05:30
Dean 69b5e014e9 Merge pull request #9342 from UnhealthyKraken/feat/libc-gets
feat(libc): implement gets line input
2026-10-24 20:48:06 +13:00
Dean efe844c653 Merge pull request #10308 from orezraey/fix/libkernel-socket-receive-measured-ps5
fix(libkernel): answer zero-length datagram receives and recvmsg flags as measured on a PS5
2026-10-24 20:46:44 +13:00
shurhundo f12344718a fix(check-compile): expand response files before syntax checks 2026-10-24 15:45:44 +08:00