Commit Graph
8546 Commits
Author SHA1 Message Date
Dean d9f5bf4d91 Merge pull request #11120 from shahulmubeen-a/fix/shader-1d-store-through-2d-array
fix(shader): write 1D storage images through 2D-array stores at slice 0
2026-10-26 21:58:24 +13:00
mrfelek 3e7a0ae671 fix(shader): keep the f32 floor and ceil flush where the device flushes by default
NVIDIA's proprietary driver flushes f32 add, multiply and fma denormals by default but not the inputs of floor and ceil, so its startup probe failed only on those two. Drop their software flush only where the device declares DenormFlushToZero 32.
2026-10-26 08:57:06 +00:00
mrfelek 415e302c9c perf(agc): probe the f32 denormal flush on NVIDIA's proprietary driver
The driver declares no shaderDenormFlushToZeroFloat32, so every f32 add, mul and fma kept the software flush. Run the same probe as on MoltenVK and use the driver's default handling when it matches the emulated flush.
2026-10-26 08:57:06 +00:00
Dean d5e493883f Merge pull request #10738 from rooklz/fix/cescs-big5-box-drawing
fix(libSceCesCs): encode the Big5 box-drawing duplicates into their lower cells as the console does
2026-10-26 21:56:25 +13:00
Dean cbee224804 Merge pull request #10316 from JJenkx/windows/libc-tanh-msun
fix(libc): compute tanh with FreeBSD msun's algorithm, as titles' libc.prx does
2026-10-26 21:48:43 +13:00
JJenkx a208275b3a docs(agc): list the direct readback regression switch 2026-10-26 04:48:30 -04:00
JJenkx 61ba654e90 feat(agc): read selected live images without guest writeback 2026-10-26 04:42:43 -04:00
orezraeyandClaude Opus 5.5 5afe14de63 Merge main into docs/libkernel-sync-timeouts-eventflag-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 05:38:49 -03:00
lost9409 9a848d0b99 feat(libSceLibreSsl): implement TLS alert descriptions 2026-10-26 09:31:37 +01:00
Dean b27cc8416f Merge pull request #7505 from AlxcBTW/pr/unwatch-hook-exits-v2
fix(agc): run the unwatch hook before an import whose range leaves the write watch whatever the import does
2026-10-26 21:31:22 +13:00
Dean 5bfc926a68 Merge pull request #9621 from Ondra97/codex/fix-ult-finalize-allocation
fix(ult): preserve sync objects if finalization allocation fails
2026-10-26 21:31:17 +13:00
Dean 9d906c833c Merge pull request #10681 from PYTHONRETARDE/fix/d16-depth-take-storage-discard
fix(agc): discard a new depth surface's depth before taking storage writes
2026-10-26 21:29:52 +13:00
Dean 4c752cafc9 Merge pull request #10177 from orezraey/fix/libkernel-cond-destroyed-measured-ps5
fix(libkernel): mark a destroyed condition variable with 1 and accept destroying a null one, as measured on a PS5
2026-10-26 21:29:48 +13:00
QRMOEandClaude Opus 5.5 5f10d0a229 fix(shader): keep pixel helper lanes out of guest lane masks
Pixel-stage ballots and EXEC reads count only lanes that are not helper
invocations, so a waterfall loop over a saved whole-quad EXEC picks and
clears live lanes only. In programs that execute s_wqm on EXEC, writing
EXEC from a value keeps a helper invocation active while a live lane of
its quad is, so implicit-LOD sampling after a save/restore still has its
helpers.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 09:19:15 +01:00
xXPBSXxandClaude Sonnet 5.5 d34c5315de docs(agc): state how the packed 11_11_10 float CB resolve averages
AI-assisted: yes

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-26 09:01:42 +01:00
JaceTheBlu fb1b33078d Merge feat/libressl-verify-param-ip into feat/libressl-x509-lookup
# Conflicts:
#	core/libs/prx/libSceLibreSsl/CMakeLists.txt
#	docs/dev/debt/libSceLibreSsl.md
2026-10-26 07:58:53 +00:00
xXPBSXx d8f584fcce Merge main (204c6747d0) into docs/debt-kernel-ftruncate-title 2026-10-26 08:58:43 +01:00
Dean 204c6747d0 Merge pull request #11197 from LeandroLP23/fix/agc-frame-recorder-settle-before-delta
fix(agc): read a frame capture's memory delta once the accepted submissions completed
2026-10-26 20:48:54 +13:00
Dean 35ac3402c8 Merge pull request #10153 from voidlakhan/feat/regmgr-core-registry-access
feat(libSceRegMgr): implement core registry access and query interfaces
2026-10-26 20:40:32 +13:00
Dean b744c37f4e Merge pull request #8076 from brainiac91/fix/relinker-embedded-data-tables
fix(relinker): mask embedded data tables in inter-FDE gaps
2026-10-26 20:36:58 +13:00
Dean 27c2794a66 Merge pull request #8726 from ArjenS-LA/fix/windows-directory-link-types
fix(libkernel): classify Windows directory links by app0 scope
2026-10-26 20:36:06 +13:00
Dean 45b246ff44 Merge pull request #8652 from nikowolf123/feat/audioout-set-main-output
feat(libSceAudioOut): return 0 from sceAudioOutSetMainOutput like the firmware stub
2026-10-26 20:35:30 +13:00
Dean 3d2b7c0673 Merge pull request #10610 from JJenkx/fix/libc-acoshf-domain-fenv
fix(libc): preserve acoshf domain errno and exception flags
2026-10-26 20:14:11 +13:00
SP4C3B4R-8 3cd49f9b9b chore(agc): dump a draw's programs by code address
APS5_DUMP_DRAW_SHADERS also matches a program's code address, so a program
named by [drawvariant] or [gputime] can be dumped directly.
2026-10-26 20:10:08 +13:00
SP4C3B4R-8 631f77e696 perf(agc): time each recorded draw on the GPU by its fragment program
Opt-in with APS5_PROFILE_GPU_DRAWS=1 together with APS5_PROFILE_GPU=1: a [gputime] range around each recorded draw command keyed by the fragment program's variant id, and a [drawvariant] line naming the code address behind each variant id once.
2026-10-26 20:10:08 +13:00
Dean Galvin 9e7edf6e0c fix(agc): do not evict host imports used in the current or previous frame
An import was evictable 256 lookups after its last use. A frame makes thousands of lookups, so when the imports a frame uses do not all fit the budget, each new one evicted another of the same frame and the whole set was imported again every frame. A flip packet now ends a frame, and only imports not used in the current or the previous frame are evicted; what does not fit is refused and copied, as below the budget. A frame boundary also expires the remembered evicting refusals.
2026-10-26 20:09:23 +13:00
Dean fdb3925940 Merge pull request #9913 from HQasper/claude/project-thread-75dvwh
fix(agc): draw stencil AND, OR, XOR and XNOR on the bits they change
2026-10-26 20:03:59 +13:00
Dean a6fc5cdfb2 Merge pull request #10381 from atharvjairath/feat/vdecsw-picture-info
feat(vdecsw): implement generic single-picture metadata queries
2026-10-26 20:03:25 +13:00
Dean 8022d448e6 Merge pull request #10786 from 00xDisaster/feat/libc-dinkumware-math
feat(libc): implement _Exp and _FExp
2026-10-26 20:02:47 +13:00
Dean 3c2e5dc2ca Merge pull request #10614 from mrfelek/fix/gameupdate-no-update
fix(libSceGameUpdate): answer no update instead of throwing on request creation
2026-10-26 20:01:56 +13:00
lakhantheboss 42acf0f653 docs(libSceIme): document null argument return code uncertainty 2026-10-26 12:01:42 +05:30
camezaro-intc dcdd9c301e feat(libkernel_sys): implement cpuset, cpuset_getid and cpuset_setid 2026-10-26 00:19:31 -06:00
akkadbakkad89 779a42c119 fix(libSceNpGameIntent): return launcher error family and restore debt entries
sceNpAppLauncherLaunchApp returned the libSceNpGameIntent codes
0x80553802/0x80553804, but the firmware tail remaps the internal
launch library errors into the launcher family, so the export reports
0x80553A02 before initialize and 0x80553A04 on invalid arguments;
the tests now assert those values and the unrelated GameIntent
constants are untouched.

The two assertions that a valid launch call must throw until
implemented are removed; the production throw and its debt entry
stay, and the validation and lifecycle coverage is unchanged. The
debt file keeps the silent-stub, InitParamInit, InfoInit and
remaining unknown-export entries, updating only the launcher parts.
2026-10-26 06:19:12 +00:00
akkadbakkad89andDevin 81ede7deee feat(libSceNpGameIntent): recover sceNpAppLauncherLaunchApp validation
Recovers the 4.03 firmware signature (int32, const char*, const char*), the uninitialized and invalid-argument errors, the strnlen(0x2001) bound on the optional argument and the initialize/terminate flag. The launch itself still throws.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-26 06:18:14 +00:00
Yunus Shaikh 6f3771820a fix(libSceNet): return -1 from sceNetConfigGetIfFlags for an interface number of 10 or more
Firmware 13.42's module looks the name up with sceNetGetIfName, which
has none past 9, then issues SIOCGIFFLAGS on the empty name. That ioctl
fails, and the call returns -1 with the flags untouched. Return the
same instead of throwing. Interfaces 1 to 9 still throw, and the test
no longer asserts that for 1 and 4, which the console answers from the
kernel.

Asked for in oneandonlydean's review, from BunnyFl's read of the
module.
2026-10-25 23:10:45 -07:00
Nikolay Polukhin a05498c099 feat(libkernel_sys): implement uuidgen
Generate version 1 UUIDs as FreeBSD 11's kern_uuidgen does: consecutive
timestamps from the guest CLOCK_REALTIME, a 14-bit clock sequence that is
randomised on first use and incremented when the clock has not passed the
last batch, and a random multicast node. A count outside 1 to 2048 fails
with EINVAL and a null store with EFAULT.
2026-10-26 11:10:39 +05:00
orezraeyandClaude Opus 5.5 f34c280578 Merge main into feat/videoout-composite-overlay
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 03:06:04 -03:00
camezaro-intc d4200caffc feat(libkernel_sys): implement kldfind, kldfirstmod, kldnext and kldunload 2026-10-25 23:58:13 -06:00
orezraeyandClaude Opus 5.5 59d248674f Merge main into docs/libkernel-select-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 02:55:33 -03:00
akkadbakkad89andDevin d7ad433603 feat(libSceNpCppWebApi): cover the UserProfile models and remaining Common instantiations
Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-26 05:43:43 +00:00
Dean Galvin 42a75519e3 Merge branch 'main' into windows/libc-tanh-msun 2026-10-26 18:37:39 +13:00
Dean d043fc9faa Merge pull request #10047 from atharvjairath/feat/fiber-contextless-execution
feat(fiber): execute contextless fibers on the caller stack
2026-10-26 18:26:24 +13:00
Dean a0c85ea99b Merge pull request #10501 from harisibrar1/fix/pselect-pending-signal-eintr
fix(libkernel): return EINTR from pselect when its mask unblocks a pending signal
2026-10-26 18:26:20 +13:00
elieh999 e6a11ba6de fix(libkernel): preserve destroyed rwlock attributes 2026-10-26 07:20:28 +02:00
milescovielloandClaude Opus 5.5 8868e09624 fix(shader): bound the bytes the recompiler's result memos hold
Every shader source keeps up to 256 materialized results of
Recompile(request, capture) in its result memo, and as many patch
recipes in its masked memo, with no limit on their bytes. In Ghost of
Tsushima's opening the memos held about 500 MiB after 5 minutes and
kept growing, at a 13 % hit rate.

Each memo entry now counts the bytes its result's vectors keep (the
bindings' vectors included; the module is shared with the prepared
module cache), plus its patch recipe in the masked memo. A result held
by both tables counts once in each. Past a budget, 256 MiB unless
APS5_RESULT_MEMO_MB sets another (0 sets none), the least recently used
entries of both tables of all sources are dropped until three quarters
of the budget is left. The recency stamps come from one clock for all
sources and both tables so they compare across them. The profile line
also reports the trimmed and held entries and their MiB.

The trim takes its lock blocking and repeats, re-reading the bytes held,
until they are within the budget, so the insertion that pushed them
over has its trim run after any other; it stops when nothing is left to
drop.

SetResultMemoBudget and ResultMemoBytes let agc_shader_result_memo_budget
check that a memo over its budget keeps the most recently used results
and drops the oldest one, with the masked memo off. A one-shot hook
inside the trim (SetResultMemoTrimHook) lets
agc_shader_result_memo_budget_threads insert two results from other
threads after the trim has read the bytes held: the memo must still end
within its budget. agc_shader_result_memo_budget_masked, with the masked
memo on, checks that a first result counts its masked entry too and that
a trim empties the masked memo.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 05:04:18 +00:00
Dean Galvin 92db947130 Merge branch 'main' into feat/libc-thread-gaps 2026-10-26 17:41:29 +13:00
Dean Galvin 7461106f53 Merge branch 'main' into fix/libc-acoshf-domain-fenv 2026-10-26 17:40:43 +13:00
Dean a401865a1a Merge pull request #9269 from UnhealthyKraken/test/libc-crt-exit-lifecycle
test(libc): cover CRT exit and TLS cleanup lifecycle
2026-10-26 17:38:22 +13:00
Dean e5759e7ee6 Merge pull request #10524 from YossiYad/feat/kernel-sys-console-identity
feat(libkernel_sys): implement sceKernelIsCEX, sceKernelIsDevKit, get_authinfo and sceKernelGetOpenPsIdForSystem
2026-10-26 17:37:52 +13:00
Dean 3e235180d8 Merge pull request #9922 from UnhealthyKraken/feat/freetype-outline-borders
feat(freetype): implement system outline border queries
2026-10-26 17:37:23 +13:00