Commit Graph
14017 Commits
Author SHA1 Message Date
Adrià 5c7ceb07b0 Merge pull request #3292 from AchrafReyani/carry/libkernel-available-direct-memory-largest-block
fix(libkernel): report the largest free direct memory block from sceKernelAvailableDirectMemorySize
2026-10-11 09:27:09 +02:00
Adrià 74a0ba3965 Merge pull request #2479 from NahuelGenchi/fix/agc-alias-one-slice-array
perf(agc): take a 2D storage image's results for a one-slice array on the device
2026-10-11 09:27:06 +02:00
Adrià 66479c96d0 Merge pull request #3281 from oneandonlydean/up4/amm-placement-3146
fix(libkernel): reserve the AMM virtual address ranges at the top of the guest arena
2026-10-11 09:27:00 +02:00
Adrià 8accbdaee0 Merge pull request #3287 from AchrafReyani/carry/conventions-comment-apostrophes
fix(tools): keep apostrophes in comments from opening character literals
2026-10-11 09:26:31 +02:00
Adrià cfcffebd0f Merge pull request #3290 from AchrafReyani/carry/relinker-windows-tls-thread-pointer
fix(relinker): place the Windows thread pointer after the TLS size rounded to its own alignment
2026-10-11 09:26:24 +02:00
Adrià f0d15c3d81 Merge pull request #3261 from MarcZX100/codex/libc-dirname-ppsA99764
feat(libc): implement dirname
2026-10-11 09:25:39 +02:00
Adrià 8975b59980 Merge pull request #3188 from gookie-dev/perf/agc-initial-context-registers-once
perf(agc): build the initial context registers once
2026-10-11 09:25:11 +02:00
Adrià fbcdf1a804 Merge pull request #2992 from CnRJay/fix/agc-sparse-heap-cut
fix(agc): copy a sparse descriptor heap only up to its last backed byte
2026-10-11 09:24:32 +02:00
Abdulrahman Elkordy aa653ec50e fix(agc): import a span's ranges one at a time when Windows refuses its alias
#3158 imports a run of address-adjacent registered ranges as one span.
On Windows a shared mapping in the span needs a read-write alias, and
MapAlias refuses one unless the range is a single contiguous run of
views of one section. Ranges that are adjacent in guest address can be
separate views, so the refusal escaped from importAllocation and
agc_driver_dcc_keys_first_write failed on main with "read-write alias
of shared guest memory ...: the range is not one contiguous run of
views of a section".

A span whose alias is refused is now remembered, and its ranges are
imported one at a time as before spans; a single range that is refused
still throws.

Claude-Session: https://claude.ai/code/session_012SLQbhAiexxW6TtjYToW8a
2026-10-11 10:24:24 +03:00
Adrià 5a9c61a9c0 Merge pull request #3239 from Tamalero/fix/agc-null-indirect-base
fix(libSceAgc): accept a null base in sceAgcDcbSetBaseIndirectArgs
2026-10-11 09:24:07 +02:00
raghav314andClaude Opus 5.5 ef3a381824 test(agc): flat store stamped blocks skip when host imports are compared, not watched
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 12:54:02 +05:30
raghav314andClaude Opus 5.5 c0348a02bf fix(agc): note BDA-written pages at full address width and read back only the claimed ones
A shader store through the BDA table records its 4 KiB page in the fault
buffer, and the driver marks those pages written after the use. The page
number was truncated to 32 bits, so a store above 16 TiB marked a page at
another address. And the driver scanned all 4096 slots after every use,
even when nothing was stored.

Slots now hold a 128 KiB chunk (its number plus one, 32 bits for any
address below 512 TiB) and a mask of its 4 KiB pages. A shader that
claims a slot appends it to a list, with a count. The driver reads the
count, decodes only the claimed slots, marks each run of pages once and
clears only those slots. A writable BDA range past 512 TiB is refused
when the table is built.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 12:54:02 +05:30
Adrià 6968564656 Merge pull request #2790 from tototomate123/fix/hfw-shader-split
fix(shader): evaluate signed minimum in runtime SRT expressions
2026-10-11 09:23:58 +02:00
xXPBSXxandClaude Sonnet 5.5 1fb359b959 fix(content): export the content calls PPSA06465 imports
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-11 09:23:39 +02:00
Adrià ecd82056fa Merge pull request #3189 from gookie-dev/perf/ngs2-parse-waveform-file-headers
perf(libSceNgs2.native): parse waveform files without reading their s…
2026-10-11 09:23:30 +02:00
Adrià 4484ddc0bf Merge pull request #3105 from parl0v/feat/np-get-sandbox-info
docs(npmanager): name ZVZ++68nNI8 sceNpGetSandboxInfo, imported by PPSA28416
2026-10-11 09:23:05 +02:00
Adrià ccb299cbca Merge pull request #2756 from TheAggie/feat/agc-radv-vkquake-dispatch
feat(agc): accept the dispatch and indirect packet forms vkQuake's RADV emits
2026-10-11 09:22:58 +02:00
Adrià be8a67db1c Merge pull request #3228 from GustavoGamarra95/feat/agc-alpha-to-coverage
feat(agc): emulate undithered alpha-to-coverage
2026-10-11 09:22:23 +02:00
Adrià 386cf26fc7 Merge pull request #3066 from MarcZX100/codex/libc-lround-range-3045
fix(libc): match FreeBSD lround errors on Windows
2026-10-11 09:21:54 +02:00
Adrià 47c8e19eb7 Merge pull request #1619 from fisherjoey/fix/depth-compare-copy
perf(agc): sample comparison-read R32F/R16 surfaces from a GPU depth copy of their storage image
2026-10-11 09:21:23 +02:00
Adrià 6957bb4ae2 Merge pull request #2785 from tototomate123/fix/hfw-relinker-split
fix(relinker): preserve Linux executable exports and ELF section addresses
2026-10-11 09:20:45 +02:00
Adrià df23cab62b Merge pull request #3211 from Scramblrrrr/codex/recorder-buffer-only-budget-main
fix(agc): enforce the kept-byte budget before buffer-only work
2026-10-11 09:20:12 +02:00
DariusHQ e720d3cd61 fix(relinker): skip zero-return guest libc exports for internal libc imports
Since #1454, a libSceLibcInternal import that no native library exports
on Windows falls back to the title's own libc.prx. The loader shim that
ps5-native-app-boilerplate builds into homebrew titles exports 1874
functions at three addresses whose code is `xor eax, eax; ret` or
`pxor xmm0, xmm0; xor eax, eax; ret`. Such an import then binds to a
function that returns 0, and the title starts instead of stopping with
`unresolved ELF import`.

The Windows guest module writer records the exported functions whose
code is one of these two sequences, and the entry stub leaves the guest
libc.prx out of the search for those names. A guest export with code of
its own still provides a missing libSceLibcInternal function, and native
libraries keep their priority.
2026-10-11 09:20:00 +02:00
Adrià effc61e4cd Merge pull request #2787 from tototomate123/fix/hfw-filesystem-split
fix(libkernel): return guest chmod errors and implement sceKernelFutimes
2026-10-11 09:19:44 +02:00
Adrià 840fb0f574 Merge pull request #3279 from oneandonlydean/carry/alx-ancillary-masked-lanes
fix(shader): prove masked lanes unread across exec phis, loops and image operations
2026-10-11 09:19:40 +02:00
Adrià c757e8eaa7 Merge pull request #3220 from kr4y4/fix/agc-sampler-border-color-class
fix(agc): pick float or integer sampler border colours from the paired images
2026-10-11 09:19:14 +02:00
Adrià 0c63c83882 Merge pull request #3227 from GustavoGamarra95/perf/unwind-info-procmap-query
perf(libkernel): look up unwind mappings with PROCMAP_QUERY
2026-10-11 09:18:50 +02:00
Adrià 379e5d8795 Merge pull request #3280 from MarcZX100/codex/libc-memset-s-freebsd-3166
fix(libc): follow FreeBSD memset_s errors
2026-10-11 09:18:14 +02:00
Adrià 5b5220ccfd Merge pull request #3276 from MarcZX100/codex/test-filesystem-native-error-3178
test(libkernel): report native filesystem errors
2026-10-11 09:17:50 +02:00
Adrià 010fad317a Merge pull request #3194 from XairRrR/feat/agc-8-8-swap-alt-blending
feat(agc-driver): blend into COLOR_8_8 SWAP_ALT targets with a separate alpha equation
2026-10-11 09:17:35 +02:00
Adrià a3aca02c5a Merge pull request #3273 from MarcZX100/codex/fix-relinker-gnu-hash-3224
fix(relinker): read GNU hash symbols during code analysis
2026-10-11 09:17:31 +02:00
MarcZX100 c6c9e51439 docs(libkernel): document oversized select timeout 2026-10-11 09:17:07 +02:00
Adrià d508b44a20 Merge pull request #3259 from AchrafReyani/feat/libc-log1p-expm1
feat(libc): implement log1p, log1pf and expm1
2026-10-11 09:17:07 +02:00
MarcZX100 e864e687b3 fix(libkernel): saturate oversized select timeouts 2026-10-11 09:16:59 +02:00
Adrià a258e5e3e7 Merge pull request #3222 from fma-rc/fix/shader-implicit-lod-2d-on-1d
fix(shader): sample a 1D T# through a 2D implicit-LOD image_sample
2026-10-11 09:16:28 +02:00
Adrià a41bad9771 Merge pull request #3141 from MarcZX100/codex/carry-sce-dyn-3093
fix(relinker): read SCE dynamic tables from PT_SCE_DYNLIBDATA
2026-10-11 09:15:56 +02:00
raghav314andClaude Opus 5.5 024cb1feda perf(agc): cache resources whose only completion work is the fault check
A draw or dispatch whose shaders have guarded descriptor slots (or a rect
list) but no BDA table gets a fault buffer, and with it NeedsCompletion(),
which kept its resources out of the resource cache, and NeverReusable
skipped the cache lookup for it. In PPSA36082 nearly every draw in the hub
is such a build, so the cache served none of them.

Such an object has no table to revalidate, no stores through BDA and no
copied writes, so it is now reusable. Each use of a reused object checks
the fault record when its batch completes (CheckFaults) instead of
running the once-only write-back; draw recipes over such a template
register the same check, and dispatch recipes still skip templates with
completion work. NeverReusable now refuses what noteReusable refuses: a
BDA table, or a fault buffer with APS5_LOOP_GUARD set (its fault resets
the buffer).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 09:15:53 +02:00
Adrià 1f2161bf5c Merge pull request #2977 from MarcZX100/fix/shader-f64-denorm-preserve
fix(shader): preserve f64 denormals when supported by Vulkan
2026-10-11 09:15:32 +02:00
Adrià 7b98a306c0 Merge pull request #3160 from babyhuey/feat/libkernel-sys-fork
feat(libkernel_sys): export fork and implement setsid and umask
2026-10-11 09:14:48 +02:00
Adrià 5beb77f0f6 Merge pull request #3231 from Raghav314/perf/agc-pass-fault-only-draws
perf(agc): continue render passes across draws with only a fault buffer
2026-10-11 09:14:20 +02:00
Adrià 6e52fb8f8c Merge pull request #3158 from XairRrR/perf/agc-host-import-spans
perf(agc-driver): import adjacent registered ranges as one host-import span
2026-10-11 09:14:15 +02:00
Adrià 19a3d0c8a9 Merge pull request #3213 from Raghav314/fix/libc-heap-without-gpu
fix(libc): register guest heap blocks without GPU access
2026-10-11 09:14:14 +02:00
Adrià 75c979ad9f Merge pull request #3056 from TheAggie/feat/libkernel-get-app-info
feat(libkernel): implement sceKernelGetAppInfo
2026-10-11 09:12:54 +02:00
Adrià 833e5eb507 Merge pull request #3142 from MarcZX100/codex/carry-sce-scan-3093
fix(relinker): stop code scans at the PLT for PS4 executables
2026-10-11 09:12:30 +02:00
Adrià 1884f17d1e Merge pull request #2140 from overlordxrz-source/fix/shader-volume-address-planar-texture
fix(shader): read 2D-array T#s through 3D image accesses
2026-10-11 09:12:23 +02:00
Adrià bbb9419642 Merge pull request #3129 from CnRJay/fix/windows-start-without-unused-library
fix(relinker): start on Windows without a missing library nothing imports from
2026-10-11 09:11:54 +02:00
Adrià bae9962954 Merge pull request #3108 from AchrafReyani/feat/opus-celt-dec-exports
fix(opus): export the libSceOpusCeltDec module
2026-10-11 09:07:53 +02:00
Achraf ReyaniandClaude Opus 5.5 ffeb263654 feat(libc): implement fabs, trunc and fma
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 15:54:23 +09:00
MrMha 3b21873b35 test(agc): cover shutdown of unsatisfied memory waits
Extend the independently Windows-tested WAIT_REG_MEM candidate 056534a9 with a focused shutdown regression. Keep labels unsatisfied on graphics and two compute queues beyond the configured diagnostic, then require prompt shutdown without executing the commands or pending submissions behind those waits.

The production cancellation path already calls CheckFailure/checkStopping and catches ProcessShutdown in the worker; no runtime behavior is changed. This test does not explicitly open a Vulkan device.

Validation: Linux/GCC 13.3, C++20, -O2 -Wall -Wextra -Werror object compilation against the production headers; conventions and whitespace pass. CMake configuration, runtime linking and execution, and native Windows execution were not performed in this environment. Runtime verification remains pending. Depends on the persistent-wait candidate for #2832/#2985; maintainer policy approval is pending.

AI-assisted: yes.
2026-10-11 10:38:27 +04:00
AlexandClaude Sonnet 5.5 54d4024c2b fix(shader): keep f32 subnormals in v_ldexp_f32 when denormals are kept
With the f32 denormal field of FLOAT_MODE set to keep, v_ldexp_f32
flushed subnormal inputs and results to zero. Keep subnormal inputs and
round a result that lands in the subnormal range in the f32 round mode
of FLOAT_MODE. An overflow follows the round mode as well, with or
without denormals kept: the largest finite value instead of infinity
when the mode rounds that sign toward zero. This matches RDNA2
(gfx1036) on 2163 rows in each round mode. Denormal modes 1 and 2 now
throw.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-11 02:36:48 -04:00