Commit Graph
17691 Commits
Author SHA1 Message Date
Adrià 2df319e55c Merge pull request #11704 from JJenkx/fix/agc-srgb-msaa-dcc-clear
fix(agc): import exact sRGB multisampled DCC clears
2026-10-28 05:10:37 +01:00
Adrià b4b0c220a9 Merge pull request #11706 from jotitadev/fix/agc-guest-memory-lifetime-macos-loader
test(agc): load the Vulkan loader by its macOS name in the host import and producer gate helpers
2026-10-28 05:08:31 +01:00
Adrià 11760ab51b Merge pull request #11708 from jotitadev/fix/agc-depth-plane-test-detiler
test(agc): give the read-only depth plane flush test a texture detiler
2026-10-28 05:07:27 +01:00
Adrià 7fe69e276f Merge pull request #11707 from milescoviello/test/font-terminate-code
test(libSceFont): cover the terminate code and position a font string records
2026-10-28 05:04:26 +01:00
Adrià ac6441d2e3 Merge pull request #11703 from milescoviello/test/agc-atomic-mem
test(agc): cover the graphics and compute ATOMIC_MEM packets
2026-10-28 05:04:21 +01:00
JJenkxandClaude Opus 5.5 c581723557 test(agc): build the page-unwatch depth unit with Windows block granularity
On Windows, GuestMemory::Unwatch excludes every page of each 64 KiB
block it touches, so unwatching one page of the descriptor unit left the
whole unit unwatched and the "descriptor page lost write watching" check
failed. Unwatch the unit and return only its descriptor page with
Rewatch there, which is page-granular, so the unit is partly watched on
every platform. Linux keeps the single-page Unwatch.

Diagnosed by maskym on Windows 11 26300 with an RTX 2070 SUPER.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 00:03:20 -04:00
Adrià 68200c47ea Merge pull request #11705 from jotitadev/fix/agc-deferred-resolver-after-last-device
fix(agc): check the deferred destruction resolver only against live devices
2026-10-28 05:02:15 +01:00
Adrià 061cdb66b0 Merge pull request #11702 from milescoviello/test/agc-rewind-patch
test(agc): cover the REWIND packet and its rewind state patches
2026-10-28 05:00:13 +01:00
Adrià ed94f8443f Merge pull request #11699 from Filip722/perf/shader-pixel-entry-mask
perf(shader): reuse starting pixel lane predicates
2026-10-28 04:59:08 +01:00
Nicolas GonzalezandClaude Opus 5.5 c89d1467de test(recompiler): shut the driver down at the end of the user-data call after branch test
Without it the driver's device is destroyed after main returns, and the
Vulkan validation layer aborts the test on exit.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 00:57:26 -03:00
Adrià 2a81f0969f Merge pull request #11691 from hugodearaujo/fix/agc-msaa-format36-sampled
fix(agc): sample a multisampled 11_11_10 float texture in its sampled format
2026-10-28 04:57:02 +01:00
Adrià a31b527125 Merge pull request #11693 from milescoviello/test/agc-dma-data-patches
test(agc): cover the address words the DMA data patch setters write
2026-10-28 04:55:58 +01:00
Adrià dd508d19e2 Merge pull request #11701 from milescoviello/test/agc-create-shader
test(agc): cover sceAgcCreateShader's relative pointers, program address patch and registration
2026-10-28 04:54:54 +01:00
Adrià 6db75895fb Merge pull request #11695 from milescoviello/test/ampr-event-queue-size
test(libSceAmpr): check the measured kernel event queue command size against the recorded one
2026-10-28 04:51:48 +01:00
Adrià a00e826a27 Merge pull request #11690 from JJenkx/fix/agc-depth-plane-fresh-collect
fix(agc): collect fresh CPU writes before depth plane stores
2026-10-28 04:49:43 +01:00
Felipebmaitan 4ba0a6f9c4 chore: integrate current main for guest-signal-cancellation 2026-10-28 00:48:38 -03:00
Adrià 957a22d51f Merge pull request #11688 from milescoviello/test/batch-map-fixed
test(libkernel): cover sceKernelBatchMap mapping and unmapping at the given starts
2026-10-28 04:41:33 +01:00
Adrià 6694ea83ba Merge pull request #11687 from milescoviello/test/ampr-write-address
test(libSceAmpr): cover the versioned write-address command, its sizes and the buffer type
2026-10-28 04:40:26 +01:00
XairRrR 86f97e8ac4 fix(recompiler): take a paired wave64 zero branch when some invocations are inactive
A wave64 program held as 32 invocations x 2 lanes decided s_cbranch_execz,
s_cbranch_vccz and s_cbranch_scc0 by balloting the per-lane "zero"
condition and requiring all 64 bits set. OpGroupNonUniformBallot sets the
bit of an inactive invocation to 0 (SPIR-V specification,
OpGroupNonUniformBallot: "The bit is set to one if the corresponding
invocation is active and the Predicate for that invocation evaluated to
true; otherwise, it is set to zero"), and an invocation that returned
from the entry point is no longer active. When one invocation stopped,
e.g. after a BDA fault, the zero branch was never taken for the others:
a loop leaving through s_cbranch_execz never ended.

The RDNA2 ISA branches when the whole register is zero ("if (EXEC == 0)",
"if (VCC == 0)", "if (SCC == 0)", SOPP S_CBRANCH_EXECZ / VCCZ / SCC0), so
the branch now asks whether any active invocation still has a lane with
the bit set, as the wave32 path does: not any(own lane set || other
lane set). Inactive invocations then count as lanes with the bit clear.
The non-zero kinds keep any(own || other).

The execution test runs a wave64 program in which lane 0 faults and
stops its invocation, then takes each zero and non-zero branch; before
this change the other lanes fell through all three zero branches.

AI-assisted: yes
2026-10-28 04:37:56 +01:00
Dean facac6a4c5 Merge pull request #12192 from oneandonlydean/revert-10809-direct-memory
Revert "report 12 GiB of direct memory" (#10809): PPSA21564 runs out of direct memory
2026-10-28 16:29:14 +13:00
Adrià f321bb8d56 Merge pull request #11674 from milescoviello/test/agc-acquire-mem
test(agc): cover the DCB and ACB acquire-mem packets, their range rounding and refusals
2026-10-28 04:28:09 +01:00
Adrià 5c8beca92c Merge pull request #11676 from al3w0f205/test/net-getsockopt-null-and-bad-descriptor-coverage
test(libSceNet): cover null length pointer and invalid descriptor in socket option calls
2026-10-28 04:27:01 +01:00
Adrià 1a551c48ee Merge pull request #11675 from milescoviello/test/agc-dispatch-packets
test(agc): cover the graphics and compute dispatch-indirect and direct dispatch packets
2026-10-28 04:26:56 +01:00
XairRrR c6e74df78d fix(agc): run queue 0 work after earlier wait-free async submissions
Wait-free submissions on other queues ran on their own workers with no
order against queue 0, so a queue 0 submission received after them
could execute first. Uncharted: The Lost Legacy submits small compute
jobs on queue 0x50 and reuses their command and descriptor memory once
later queue 0 work has passed; with the async job up to a second late,
it read recycled memory (garbage descriptors, BDA faults, a zeroed PM4
buffer) while loading Sri Lanka. A queue 0 submission now waits until
no wait-free submission received before it is pending or executing on
another queue. Submissions that wait for something, and the wait-free
ones queued behind them, are not waited for, since they can wait for
this queue 0 work.

Uncharted 4's menu fps is unchanged (10.21 vs 10.24, two runs each).
Tests: testQueue0SubmissionAfterEarlierWaitFreeWork and
testQueue0SubmissionBehindWaitingQueue.

AI-assisted: yes
2026-10-28 04:22:20 +01:00
Adrià 439d03db38 Merge pull request #11663 from Danigamer05/feat/libc-stdc-count-ones
feat(libc): add C23 count-ones exports
2026-10-28 04:19:47 +01:00
Felipebmaitan aa64282ba1 fix(libSceFreeType): declare advance queries in public API 2026-10-28 00:19:30 -03:00
Felipebmaitan c4e614037b Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into feat/freetype-advance-queries 2026-10-28 00:15:18 -03:00
Adrià ae0e0a284b Merge pull request #11660 from al3w0f205/test/file-timestamps-invalid-fd-coverage
test(libkernel): cover invalid usec and bad descriptor validation in futimes
2026-10-28 04:08:25 +01:00
Yunus Shaikh 332b5f3d28 Merge main into fix/agc-draw-cache-byte-budget
# Conflicts:
#	core/libs/prx/libSceAgcDriver/Execution/src/Driver/Draw/DrawCacheStatistics.cpp
2026-10-27 20:08:17 -07:00
Adrià f1f1737371 Merge pull request #11647 from B-Howell/codex/libc-strtoq
feat(libc): implement strtoq
2026-10-28 04:06:20 +01:00
Adrià 1092ba2720 Merge pull request #11658 from al3w0f205/test/net-socket-invalid-descriptor-coverage
test(libSceNet): cover bad file descriptor rejection in socket close
2026-10-28 04:01:22 +01:00
Adrià 3bbb68c187 Merge pull request #11657 from al3w0f205/test/current-cpu-null-thread-affinity
test(libkernel): cover null thread handle and mask validation in thread affinity
2026-10-28 04:01:17 +01:00
Adrià 5175257b05 Merge pull request #11652 from al3w0f205/test/pthread-cond-recursive-mutex-null-coverage
test(libkernel): cover null pointer and invalid type validation in mutex attributes
2026-10-28 04:01:12 +01:00
Adrià 5402720e5d Merge pull request #11654 from al3w0f205/test/cpu-time-clocks-invalid-id-coverage
test(libkernel): cover null pointer and invalid clock id in clock gettime and getres
2026-10-28 04:00:12 +01:00
Adrià 4a4c260603 Merge pull request #11659 from al3w0f205/test/directory-rewind-invalid-fd-coverage
test(libkernel): cover double close and invalid file descriptor rejection in sceKernelClose
2026-10-28 03:59:07 +01:00
Adrià 09d952f0eb Merge pull request #11651 from al3w0f205/test/audio3d-parameters-null-coverage
test(libSceAudio3d): cover terminate when uninitialized and positive reserved parameter
2026-10-28 03:53:51 +01:00
Adrià 19f71094a7 Merge pull request #11650 from al3w0f205/test/font-style-info-null-checks-coverage
test(libSceFont): cover invalid font handle in font scale slant and dpi getters
2026-10-28 03:50:04 +01:00
Adrià 9f8c14959e Merge pull request #11649 from al3w0f205/test/font-outline-profile-null-checks-coverage
test(libSceFont): cover parameter validation in sceFontDestroyLibrary and sceFontMemoryTerm
2026-10-28 03:49:59 +01:00
Adrià 603d4ccc66 Merge pull request #11648 from al3w0f205/test/font-metrics-null-checks-coverage
test(libSceFont): cover invalid font handle in effect weight and scale setters
2026-10-28 03:49:53 +01:00
Adrià a37797da92 Merge pull request #11637 from B-Howell/codex/videoout-display-index-current-main
feat(libSceVideoOut): allow selecting the initial display
2026-10-28 03:49:48 +01:00
Adrià 06b8a508aa Merge pull request #11646 from al3w0f205/test/ces-mbc-null-source-coverage
test(libSceCesCs): cover null source buffer rejection in mbc conversions
2026-10-28 03:49:43 +01:00
Adrià 747bc3a65d Merge pull request #11645 from al3w0f205/test/ces-japanese-null-checks-coverage
test(libSceCesCs): cover null source and destination checks in Japanese conversions
2026-10-28 03:46:39 +01:00
Dean Galvin 97f1d41a2c Revert "Merge pull request #10809 from frankea/fix/direct-memory-12gib"
This reverts commit 780b33aea3, restoring the 13824 MiB direct memory pool.

With the pool at 12288 MiB, Astro Bot (PPSA21564) can no longer load its
level: DirectMemoryAllocator asserts "Can't allocate direct memory" for a
64 MB VideoPlayerTexture with 12228 of 12288 MB in use, then the process
faults about 26 s in (2 of 2 runs, RTX 4090, Linux, main cccdaa2734).
The same tree with only this merge reverted runs the full 150 s with no
direct memory assert (2 of 2 runs).
2026-10-28 15:45:26 +13:00
Adrià 17058c004c Merge pull request #11641 from al3w0f205/test/camera-settings-invalid-channel-coverage
test(libSceCamera): cover out-of-range channel rejection in settings getters and setters
2026-10-28 03:38:29 +01:00
Nicolas GonzalezandClaude Opus 5.5 2f25ab919f fix(shader): fence the LDS lock's critical section on MoltenVK
SPIRV-Cross emits the lock's acquire compare-exchange and release
exchange as relaxed Metal atomics, so the plain LDS loads and stores of
a locked 64-bit update were not ordered against the lock and contended
ds_add_u64 lost updates on an Apple M5 Pro. On MoltenVK the driver now sets
SpirvTarget::ldsLockFences, and the lock brackets its critical section
with workgroup-scope acquire and release OpMemoryBarriers, which become
threadgroup atomic_thread_fence with no execution barrier.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 23:37:56 -03:00
Adrià 61924d4637 Merge pull request #11643 from al3w0f205/test/ces-wide-null-profile-coverage
test(libSceCesCs): cover null source and profile checks in utf16 and utf32 sbc conversions
2026-10-28 03:35:28 +01:00
Adrià b5873b4ce4 Merge pull request #11594 from milescoviello/test/read-tsc
test(libkernel): cover sceKernelReadTsc's rate against sceKernelGetTscFrequency
2026-10-28 03:35:23 +01:00
Adrià 3da9cba895 Merge pull request #11642 from al3w0f205/test/ces-unicode-zero-length-coverage
test(libSceCesCs): cover null source buffer in utf16 and utf32le conversions
2026-10-28 03:34:19 +01:00
Adrià 3850cc86f5 Merge pull request #11640 from al3w0f205/test/cdlg-g2p-dialog-reopen-finished-coverage
test(libSceCdlgG2P): cover reopen and null parameter behavior in finished dialog state
2026-10-28 03:27:54 +01:00
Adrià 3a4206eb64 Merge pull request #11635 from AlexFigas/feat/npcppwebapi-sessionmanager-parameter-lifecycles
feat(libSceNpCppWebApi): track the SessionManager V1 parameter lifecycles as the module does
2026-10-28 03:27:48 +01:00