7996 Commits
Author SHA1 Message Date
Adrià e0b8be9dc5 Merge pull request #6530 from milescoviello/feat/smoothing-mixed-samples
feat(agc): draw radeonsi line and polygon smoothing (SAMPLE_COVERAGE, merged mixed samples)
2026-10-19 06:06:26 +02:00
Adrià 9cc0f16f6e Merge pull request #6533 from ArjenS-LA/feat/guest-getopt-long-only
feat(libc): implement getopt_long_only
2026-10-19 06:04:23 +02:00
Adrià 3904ce6cf5 Merge pull request #6505 from keravyn-ops/fix/htile-pending-fill
perf(agc): take the HTILE words pending fills leave instead of reading them
2026-10-19 06:03:19 +02:00
Adrià d72c9e3728 Merge pull request #6527 from SandstromPL/feat/libscediscmap
feat(libSceDiscMap): report no disc bitmap from the two disc map queries
2026-10-19 06:02:18 +02:00
Dean 3ddbc4accc Merge pull request #4650 from Mouad-Scriptz-0/feat/agc-depth-range-remap
feat(agc): remap a viewport depth range the device cannot express into the vertex shader
2026-10-19 16:52:31 +13:00
Dean 3fda339541 Merge pull request #7169 from Ondra97/codex/fix-command-batch-fence-failure
fix(agc): ignore failed fence creation outputs
2026-10-19 16:52:12 +13:00
Dean c815dd278b Merge pull request #7724 from karimibrahim07/fix/agc-image-table-reuse-windows
test(agc): expect one resolution for a CPU write beside an image table on Windows too
2026-10-19 16:52:05 +13:00
Dean fd423f9b2e Merge pull request #7709 from Scramblrrrr/codex/agc-shared-log-flush-main
fix(agc): flush the shared logger from native clients
2026-10-19 16:25:06 +13:00
Dean 3259e4c3ea Merge pull request #7701 from jotitadev/fix/agc-async-log-test-skip-crash-handler
fix(tests): keep the async log test's aborting children away from the crash handler
2026-10-19 16:22:10 +13:00
Dean 8687da6c0e Merge pull request #7711 from jotitadev/fix/guest-dynamic-loader-resource-lock
test(libkernel): serialise the two dynamic loader tests that share their files
2026-10-19 16:22:06 +13:00
keravyn-opsandClaude Opus 5.5 8854867021 test(agc): cover the depth and stencil fast clear a recorded HTILE fill leaves
RecordedFillClearsWithoutWait now also runs with a D32_SFLOAT_S8_UINT target: a
recorded SMem 0 fill (0xf0) over the HTILE clears depth and stencil at the bind
without a GPU wait, and is stored back as expanded (0xfffff3ff). The stencil case
alone fails with APS5_NO_PENDING_HTILE_FILLS=1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 05:16:01 +02:00
keravyn-ops fac1979549 perf(agc): take the HTILE words pending fills leave instead of reading them
A depth target's bind (storeBackClearedHtile) reads its HTILE words to find a fast clear and
stores them back expanded. When a recorded fill over the HTILE was still pending, that read
made the flush hook submit the open batch and wait for the GPU, under the GPU mutex. A title
that clears its depth targets with buffer fill kernels pays that wait at every clear.

Uniform fills now note their 32-bit word with the pending write (NotePendingWordFill; the byte
value the DCC key paths use is unchanged). When every pending write over the HTILE is such a
fill and the rest of the range already holds the same word, the bind takes the landed word
from the notes, and stores the expanded words as a GPU fill recorded behind the pending ones.
Any other pending write keeps the read. APS5_NO_PENDING_HTILE_FILLS=1 always reads.

PPSA12544 on a Radeon 780M (Windows): 1271 pending-write syncs per 10 s waited 5.5 s at the
bind, about 4.3 ms each; with this change there are none, and the scene runs at 60-61 fps
instead of 44-46.
2026-10-19 05:16:01 +02:00
Adrià 062706c56f Merge pull request #6514 from JJenkx/test/gpu-timing-incomplete-batch
test(agc): cover incomplete GPU timing batch completion
2026-10-19 05:02:18 +02:00
Adrià ba63d412cd Merge pull request #6511 from JJenkx/fix/ssl-ps5-reader-context
feat(ssl): implement context-scoped PS5 certificate PEM reading
2026-10-19 05:01:14 +02:00
Karim Ibrahim e3dd06fea6 test(agc): expect one resolution for a CPU write beside an image table on Windows too
Since #6346 a CPU write elsewhere in an image table's 64 KiB block no
longer fails the table's unchanged proof on Windows, because the proof
is answered per page there too. The Windows-only expectation of a second
resolution is stale and agc_driver_image_table_reuse fails on Windows.
Expect the Linux count on every host.
2026-10-18 22:59:54 -04:00
Adrià e488debe6d Merge pull request #6508 from fogydes/feat/agc-dcb-atomic-gds
feat(libSceAgc): implement DCB atomic GDS operations and correct size accessor
2026-10-19 04:59:06 +02:00
Dean fa0ac6d5ce Merge pull request #5926 from xXPBSXx/fix/agc-vertex-fetch-overhang
fix(libSceAgcDriver): zero the overhanging record of a vertex fetch
2026-10-19 15:56:44 +13:00
Adrià c8e3fcb703 Merge pull request #6507 from karanvora2599/perf/videoout-unordered-cpu-flips
perf(videoout): don't hold a flip thread's CPU flips behind queued work
2026-10-19 04:49:51 +02:00
Adrià d23ed99f84 Merge pull request #6472 from ahir061/fix/agc-host-import-budget-half-heap
fix(agc): keep half the host heap out of the host import budget
2026-10-19 04:49:45 +02:00
Adrià 8a526d4495 Merge pull request #6504 from 0xRickx/feat/libsceimedialog-host-keyboard
feat(libSceImeDialog): take the dialog's text from the host keyboard
2026-10-19 04:39:46 +02:00
fogydes cf994f1f60 feat(libSceAgc): implement DCB atomic GDS operations and correct size accessor 2026-10-19 04:37:29 +02:00
Adrià ccbd40240f Merge pull request #6497 from giovanniadamo/feat/libsceregmgr
feat(libSceRegMgr): add sceRegMgrNonSysGetInt stub
2026-10-19 04:36:35 +02:00
Dean Galvin 41764f27ac Merge main into pr-4650
# Conflicts:
#	core/shader/recompiler/ShaderDiskCache.cpp
2026-10-19 15:36:07 +13:00
Adrià 2ed7048426 Merge pull request #6495 from winstrex/perf/agc-pattern-fill-compare-order
perf(agc): match the dword pattern-fill kernel with its two compares in either order
2026-10-19 04:35:31 +02:00
Adrià baec31ba6c Merge pull request #6442 from JJenkx/fix/retain-import-window-failures
fix(agc): retain failed import windows across unrelated mappings
2026-10-19 04:33:22 +02:00
Adrià 25648aa121 Merge pull request #6494 from Ondra97/codex/fix-net-accept-inherited-mode
fix(libSceNet): inherit nonblocking mode on accepted sockets
2026-10-19 04:30:22 +02:00
Adrià decb14c505 Merge pull request #6491 from Ondra97/codex/fix-flexible-fixed-remap-budget
fix(libkernel): account for fixed flexible memory replacements
2026-10-19 04:30:17 +02:00
Adrià bcd473dbb4 Merge pull request #6490 from parl0v/perf/write-back-into-slabs
perf(agc): retile storage write-back windows straight into their unit-shadow slabs
2026-10-19 04:30:12 +02:00
Adrià de611511de Merge pull request #6486 from karanvora2599/perf/agc-stage-swept-raw-buffers
perf(agc): stage raw buffer elements a dispatch sweeps
2026-10-19 04:29:08 +02:00
Adrià 7bc7905978 Merge pull request #6489 from fogydes/feat/agc-dcb-context-state-op
feat(libSceAgc): implement unversioned context state operations
2026-10-19 04:24:41 +02:00
Adrià 1377213ab7 Merge pull request #5957 from xXPBSXx/cand/guest-abort-report-r6
fix(libc): name a guest abort() in the crash report
2026-10-19 04:24:37 +02:00
Dean 43797ca8a9 Merge pull request #6198 from valenciana-nc/fix/aio-batch-cap
fix(libkernel): check the AIO Multiple batch limit before reading the requests
2026-10-19 15:22:04 +13:00
Dean 0a3ba87dcc Merge pull request #6200 from valenciana-nc/fix/symlink-parent-escape
fix(libkernel_sys): reject parent-directory components in symlink targets
2026-10-19 15:22:00 +13:00
JJenkx e8ec260bae fix(ssl): use context-scoped PS5 certificate reader arguments 2026-10-18 22:17:13 -04:00
JJenkx f2d31a0b14 test(ssl): exercise PS5 certificate reader call shapes 2026-10-18 22:17:12 -04:00
fogydes c2a158415d feat(libSceAgc): implement unversioned context state operations 2026-10-19 04:13:09 +02:00
AhirandClaude Opus 5.5 f970620d95 fix(agc): keep half the host heap out of the host import budget
Imports, type-3 mirrors and the buffers and textures placed in host memory share the driver's system memory heap. On Windows that heap is half the physical memory, so on a 16 GiB machine the old budget (the heap less 2 GiB) let imports hold about 6 of its 8 GiB, and host buffer allocations then overflowed into the 256 MiB device-local host-visible heap and failed. The budget now reserves the larger of 2 GiB and half the largest host heap.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 04:11:15 +02:00
Scramblrrrr 88c8320e35 fix(agc): flush the shared logger from native clients 2026-10-18 23:03:58 -03:00
Adrià 40393b0f95 Merge pull request #6487 from klosixgaming-arch/fix/pthread-detach-joiner
fix(libkernel): refuse to detach or rejoin a thread that is being joined
2026-10-19 04:03:57 +02:00
Adrià b4d517ed10 Merge pull request #6334 from hypermoist/feat/libc-dinkumware-atomics
feat(libc): implement the remaining Dinkumware _Atomic helpers
2026-10-19 04:03:52 +02:00
xXPBSXxandClaude Sonnet 5.5 d01548e81b fix(libSceAgcDriver): zero the overhanging record of a vertex fetch
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 03:47:33 +02:00
Karan Vora 6d92220829 perf(agc): stage raw buffer elements a dispatch sweeps
Since 2688b7646 a read and written V# element is staged in device memory
up to 16 MiB when the direct dispatch's threads times the V# stride cover
at least half of it. A raw buffer has stride 0, so it never passed and
kept the 2 MiB written window: GL storage buffers compiled by Mesa stay
bound in place in the host import however hard a dispatch sweeps them.

The PS5 OpenGL Showcase's particle update (262,144 threads, each loading
and storing its own 32-byte record of an 8 MiB SSBO) took about 53 ms of
GPU per frame on an RTX 4060 bound in place; staged it takes about 0.1 ms
plus 2.2 ms of bulk copies.

The recompiler already records the furthest byte each buffer resource's
accesses reach past their base (maxByteExtent). The binding plan now
carries it per guest buffer element (DescriptorBinding::bufferExtent,
shader disk cache format 37), and a raw element uses it as its record
size in the sweep test. Strided elements are unchanged.
2026-10-19 03:43:19 +02:00
Adrià 324e0e48e0 Merge pull request #6482 from Ondra97/codex/team-20261015-worker-1-ready
fix(libkernel): preserve RTLD_GLOBAL visibility on Windows
2026-10-19 03:39:21 +02:00
Adrià fd2ef7e28e Merge pull request #6465 from milescoviello/fix/free-retired-depth-surfaces
fix(agc): free retired depth surfaces nobody samples
2026-10-19 03:39:16 +02:00
Adrià 9d4382d268 Merge pull request #6475 from EagleBearerYS/fix/agc-guard-lazy-capture-pages
fix(agc): run the read guard over a shader capture's lazy pages and raw word reads
2026-10-19 03:39:11 +02:00
Adrià 23629c2847 Merge pull request #6454 from EagleBearerYS/perf/shader-image-table-reuse-v3-pr
perf(agc): share one image table per heap and write epoch through capture, compare, resolution and descriptors
2026-10-19 03:39:03 +02:00
Adrià 72b0ab3e8e Merge pull request #6312 from meh7an/perf/agc-cut-draw-allocations
perf(agc): cut per-draw heap allocations
2026-10-19 03:38:58 +02:00
Jota 6f94cba100 test(libkernel): serialise the two dynamic loader tests that share their files
guest_dynamic_loader and guest_dynamic_loader_fixed_base run the same
GuestDynamicLoader.cpp in the same working directory, and both copy the
module fixture to anyps5-relinked-module-for-test.prx.guest.prx and
anyps5-host-loaded-module-for-test.prx before loading it. Under ctest
--parallel one test rewrote or removed a file the other had mapped:
Bus error, or failed at GuestDynamicLoader.cpp:92. Give both one
RESOURCE_LOCK.
2026-10-18 22:38:13 -03:00
Adrià 79d7d26b6d Merge pull request #6484 from Ondra97/codex/team-20261015-worker-2
fix(libkernel): share guest rename semantics with sceKernelRename
2026-10-19 03:35:57 +02:00
Dean Galvin 4d4ae6e5eb Merge main into pr-4650
# Conflicts:
#	core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
#	core/shader/recompiler/ControlFlow/src/RequestSerializer.cpp
#	core/shader/recompiler/tests/RequestSerializerTests.cpp
2026-10-19 14:32:36 +13:00