Commit Graph
7183 Commits
Author SHA1 Message Date
AlxcBTW 5da6de62ad fix(agc): count stage-A drops of a dispatch move as refusals
The [dispmove] line printed refused 0 next to a rebuild count that came mostly from PrepareDispatch dropping the hit. The line now reports the refusals at stage A and at record separately, each with its reasons.
2026-10-17 19:32:05 +02:00
AlxcBTW 350b8d2b88 fix(agc): keep the template of another address when a dispatch move is refused
Read-only addresses are not part of the dispatch key, so the fresh build after a refused
move replaced the template that serves the other address, and the two addresses
rebuilt each other. A refused dispatch now uses or builds an entry under the exact key
(read-only bases included) and leaves the movable template alone. The [dispmove] line
counts the rebuilds after a refusal, the builds inserted beside the template and the
dispatches served by an exact entry. Restores the MarkGpuWrites comment.
2026-10-17 13:52:16 +02:00
AlxcBTW a58a709116 fix(agc): compare moved dispatch buffers at their build-time clamped size
A read-only V# the build clamps (size above the descriptor range limit cut to the
mapped end, stride overhang cut to the allocation end) was compared with the template
by its raw size, so an unchanged buffer counted as moved, was refused over the limit
and the dispatch rebuilt every time; a moved one with an overhang was snapshotted past
the allocation end. The build and the move proof now take the range from one function
(ShaderResources::guestBufferBytes), compare clamped with clamped and snapshot the
clamped range.

An overlay without a descriptor set is refused like one that could not be made, and
recording one throws instead of binding the template's set.
2026-10-17 11:23:47 +02:00
AlxcBTW 89d255c5f3 perf(agc): serve compute dispatches whose read-only buffers moved from the cached template
The content key of a compute stage leaves the base address and size of its
read-only guest buffers out, as a draw's key does. A template hit whose such
buffers moved is proved the way a draw's is (ShaderResources::MovedDispatchBuffers:
read-only, read in place when built, in reach, nothing pending over the new range)
and binds snapshots of the new ranges in a descriptor set of its own, kept with the
batch that records the dispatch. A refused proof builds the dispatch fresh, as
before. APS5_NO_DISPATCH_MOVE=1 turns the path off, APS5_DISPMOVE_MAX_KIB caps the
bytes snapshotted per dispatch.

A template whose storage image lies over memory that a depth surface covers is no
longer proved from stamps (fastRevalidate): cachedStorageTexture answers such a
binding with the plane's colour mirror, copied in from the depth image for every use,
and nothing stamps the appearance of a depth surface after the build. The full walk
decides, and a stale image can no longer be copied over the depth image.

Tests: Graphics.cpp (verdicts of the proof), execution DispatchMove (real device:
moved, exact, shortened, stored-over, own-output and written-range refusals) and
DispatchMoveDepth (a depth surface appearing over a template's plain storage image,
planes inside and outside the write watch, imports watched and unwatched).
2026-10-17 09:08:47 +02:00
Dean f8b22edfb7 Merge pull request #6988 from MarcZX100/codex/stabilize-preparation-scope-settle-6984
test(agc): wait for preparation workers before linking
2026-10-17 19:51:49 +13:00
Dean 6e7ba928a2 Merge pull request #6227 from Celegans12/fix/netctl-empty-info-strings
fix(libSceNetCtl): answer the DHCP host name, PPPoE name and proxy server as empty strings
2026-10-17 19:40:31 +13:00
Dean 6a32550fd1 Merge pull request #6699 from MarcZX100/codex/sampler-heap-32-6692
fix(shader): support 32 logical samplers in runtime heap
2026-10-17 18:45:02 +13:00
Dean 2bfe0045d8 Merge pull request #5940 from zmeizy/claude/pknorm-f16-denormal-inputs
fix(shader): flush v_cvt_pknorm_*_f16 denormal inputs by FLOAT_MODE
2026-10-17 18:21:25 +13:00
Dean aae9f379ed Merge pull request #6950 from MarcZX100/codex/carry-connect-listener
fix(libkernel): return EOPNOTSUPP when connecting to a listener
2026-10-17 18:00:50 +13:00
Dean 52ed3da697 Merge pull request #6744 from Ondra97/codex/fix-store-untracked-lifetime
test(agc): wait for the tested surface's pending image
2026-10-17 17:56:11 +13:00
Adrià 37f0253ce8 Merge pull request #5980 from Ondra97/codex/fix-ftruncate-invalid-descriptor
fix(libkernel): reject invalid ftruncate descriptors safely
2026-10-17 06:53:47 +02:00
Adrià 49f5dc1a58 Merge pull request #5979 from alfalfa-star/perf/agc-rect-list-indirect-gpu
perf(agc): draw an indirect rect list from its records on the GPU
2026-10-17 06:53:38 +02:00
Adrià 8730dde45f Merge pull request #5973 from pipe1os/feat/libkernel-kevent-pipe-read
feat(libkernel): support EVFILT_READ on the read end of a pipe
2026-10-17 06:53:33 +02:00
Adrià a7f27eb352 Merge pull request #6070 from fdfawef324/claude/libkernel-windows-precise-poll-waits
fix(libkernel): use precise waits for select and poll on pipes on Windows
2026-10-17 06:53:29 +02:00
Adrià e2e3d71ac2 Merge pull request #6072 from notaxeltv/feat/libc-logic-error-doraise-ppsa34015
feat(libc): raise logic_error::_Doraise and _Xruntime_error
2026-10-17 06:53:23 +02:00
Adrià c47a4dca52 Merge pull request #5967 from EagleBearerYS/fix/libscenet-timeval-timeouts
fix(libSceNet): read SO_RCVTIMEO and SO_SNDTIMEO as a timeval in sceNetSetsockopt
2026-10-17 06:53:19 +02:00
Adrià 83b233a010 Merge pull request #6063 from snipeTR/feat/opus-sample-rates-v2
feat(opus): decode at 8, 12, 16 and 24 kHz
2026-10-17 06:53:14 +02:00
Adrià 46be9d32e8 Merge pull request #6056 from notaxeltv/feat/libSceNpManager-unknown-fc27-exports
feat(libSceNpManager): export two unknown NIDs so PPSA34015 can load
2026-10-17 06:51:48 +02:00
Adrià 7c3bfa8632 Merge pull request #5962 from nikowolf123/feat/libc-crash-register-text
feat(libc): print the text that registers point at in Windows crash reports
2026-10-17 06:51:43 +02:00
Adrià a15c6fb961 Merge pull request #6062 from notaxeltv/feat/libSceVdecsw-sync-decode-ppsa34015
feat(libSceVdecsw): block on SyncDecodeInput/Output like TrySync
2026-10-17 06:51:39 +02:00
Adrià cfe6683f4b Merge pull request #6064 from JAB-dev/perf/sysmodule-unwind-region-cache
perf(libSceSysmodule): cache the unwind region of loaded images on Windows
2026-10-17 06:51:34 +02:00
Adrià bb6bea8093 Merge pull request #5966 from EagleBearerYS/fix/libscenet-unbound-datagram-receive
fix(libSceNet): let a datagram receive on an unbound socket wait on Windows
2026-10-17 06:51:29 +02:00
Dean 16c607a937 Merge pull request #6925 from LeandroLP23/fix/agc-shader-helpers-shutdown
test(agc): shut libc down before agc_shader_helpers returns
2026-10-17 17:29:05 +13:00
Adrià 0906c64501 Merge pull request #6040 from Ondra97/codex/fix-ajm-opus-gapless-reset
fix(ajm): honor Opus gapless resets
2026-10-17 06:11:48 +02:00
Adrià 830edf86c6 Merge pull request #6049 from notaxeltv/feat/libSceNpPartner001-has-ea-access-ppsa34015
feat(libSceNpPartner001): answer sceNpHasEAAccessSubscription without an EA Access server
2026-10-17 06:11:44 +02:00
Adrià 142f7555aa Merge pull request #6051 from Ondra97/codex/fix-ajm-live-instance-handles
fix(ajm): preserve live decoder handles across ID wrap
2026-10-17 06:10:21 +02:00
Adrià 31f02805fc Merge pull request #6029 from Ondra97/codex/fix-ngs2-callback-waveform
fix(ngs2): stop stale rendering after waveform callbacks
2026-10-17 06:10:16 +02:00
Adrià ed1beacd10 Merge pull request #6034 from notaxeltv/feat/libSceLoginService-ppsa34015
feat(libSceLoginService): load Initialize/Terminate so PPSA34015 can start
2026-10-17 06:10:11 +02:00
Dean 07e7414819 Merge pull request #6261 from EdouardSence/fix/sparse-import-test-budget
test(agc): lift the host import budget in the sparse dma-buf import test
2026-10-17 16:48:16 +13:00
Dean 739eb2eab4 Merge pull request #6993 from thuanquang/fix/gpu-map-on-fiber-thread
test(agc): map GPU memory on fibers with and without a host stack
2026-10-17 16:36:47 +13:00
Dean 2a2724ae75 Merge pull request #6359 from Amoenus/codex/test-untracked-store-pending-owner
test(agc): wait for the actual image in repeated untracked stores
2026-10-17 16:36:25 +13:00
TamaleroandClaude Opus 5.5 97a84e3261 fix(recompiler): hold 32 samplers in the runtime sampler heap
A pixel shader of PPSA16833 binds more than 16 samplers outside the
sampler tables. Each takes two heap entries, one per descriptor variant,
so the 32-entry heap refused it with "shader sampler pairs exceed runtime
heap capacity" and the title aborted when a new game started.

The heap now holds 64 entries (32 samplers). Its metadata array is part
of ShaderData, which grows from 14528 to 16064 bytes, still within the
16 KiB uniform buffer every Vulkan device supports; the runtime ABI
version moves to 13 so shaders cached with the old layout are rebuilt.
The overflow message names the sampler count.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 16:36:17 +13:00
Dean dfdc3dec4d Merge pull request #5280 from santhoshkumar-dev/codex/sandbox-ca-trust
feat(libkernel): serve the sandbox CA bundle from host TLS roots
2026-10-17 16:35:44 +13:00
Dean 29bfe31dd8 Merge pull request #6083 from n-delic/pr/sampler-pairs-v2
fix(shader): allow 32 sampler pairs per shader
2026-10-17 16:34:56 +13:00
Dean e4c10b56e5 Merge pull request #6589 from hashaam1217/test/intentional-abort-skips-crash-handler
test(libc): keep intentional aborts away from the system crash handler
2026-10-17 16:34:32 +13:00
Dean f99f3d1dca Merge pull request #6694 from MarcZX100/codex/coredump-config-dump-mode-6688
fix(libkernel): export sceCoredumpConfigDumpMode as an explicit stub
2026-10-17 16:34:12 +13:00
Dean e847d19793 Merge pull request #6225 from Amoenus/codex/test-recorder-gpu-selection
test(agc): honor GPU selection in recorder fixtures
2026-10-17 16:33:40 +13:00
Adrià 30dadc2494 Merge pull request #6024 from KernelPanicNT/feat/libsceampr-cxa-call-unexpected
feat(libSceAmpr): implement __cxa_call_unexpected
2026-10-17 05:27:54 +02:00
Adrià 2083bc700f Merge pull request #6020 from KernelPanicNT/feat/libsceappcontent-addcont-download-progress
feat(libSceAppContent): implement sceAppContentGetAddcontDownloadProgress
2026-10-17 05:15:31 +02:00
Dean bfcf02e3a8 Merge pull request #6385 from Neithennn/fix/store-over-untracked-neighbour-wait
test(agc): keep waiting for the neighbour copy case's result
2026-10-17 15:58:07 +13:00
thuanquangandClaude Opus 5.5 d5dbce438a test(agc): map GPU memory on fibers with and without a host stack
Since #6003 a fiber with a context of 64 KiB or more runs on the
context itself, so the 64 KiB fiber of agc_driver_gpu_map_on_fiber
imports its mapping on a host thread on Windows too, and the test's
Windows-only expectation of no thread failed. The test now also maps
on a 16 KiB fiber, which keeps a host stack and imports on it on
Windows, and expects one import thread for the 64 KiB fiber on every
platform.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 09:50:32 +07:00
Santhosh Kumar eb26fb97f8 fix(libkernel): filter sandbox TLS roots and preserve path overrides 2026-10-17 02:25:41 +00:00
screammandClaude Fable 5.1 9f4a8d6ec5 feat(libkernel): serve the console CA list from the host trust store
Titles that bundle OpenSSL load the console's CA file from the sandbox
directory and fail every HTTPS request without it. ProsperoRadio
(PPSA99001, libcurl 8.18.0 + OpenSSL 3.5.2) on main + #4796 + #4525:

  [ProsperoRadio][http] https://all.api.radio-browser.info/json/servers: Problem with the SSL CA cert (path? access rights?) (error adding trust anchors from file: /gkbHtXc3Wq/common/cert/CA_LIST.cer)

SwanStation (PPSA98510) stops on the same file (#5001).

The guest path resolver now accepts exact-path providers, and libkernel
registers one for /<sceKernelGetFsSandboxRandomWord()>/common/cert/CA_LIST.cer.
On first use it writes a PEM bundle once per process to
cert_cache/CA_LIST.cer in the run directory, read-only: on Windows the
current user's ROOT and CA system stores, elsewhere SSL_CERT_FILE or the
first distro bundle that exists. Without a certificate the path keeps
resolving under the guest root and does not exist, as before. Every other
path under the sandbox word is unchanged. The console file's format and
the rest of its common/cert directory are unverified and recorded in
docs/dev/debt/libkernel.md.

With this change, #4796, #4525 and #5025 on Windows 11, 60 s each:

  [ProsperoRadio][http] 11846160 bytes in 1458 ms: 1161 passes, 803 waits (679 woken) for 1428 ms
  [ProsperoRadio][catalog] page offset=0 bytes=11846160 objects=10000 accepted=9549 total=9549
  ...
  [ProsperoRadio][catalog] page offset=60000 bytes=1712035 objects=1494 accepted=1436 total=59371

  [SwanStationPS5] update: latest 1.2.5, this 1.1.3, available
  [SwanStationPS5] gamedb: index written

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-17 02:24:02 +00:00
Adrià 1cdaed073d Merge pull request #6016 from akkadbakkad89/feat/missing-lib-exports
feat(libc): export the fmin and fmax family
2026-10-17 04:14:54 +02:00
Adrià 8566becc1c Merge pull request #6019 from KernelPanicNT/feat/libscefont-text-codes
feat(libSceFont): implement sceFontCharactersRefersTextCodes and text code stepping
2026-10-17 04:14:50 +02:00
Adrià c9cabcaf84 Merge pull request #6008 from zmeizy/claude/ldexp-f32-denormal-modes
fix(shader): translate v_ldexp_f32 in f32 denormal modes 1 and 2
2026-10-17 04:14:45 +02:00
Dean f643e61d9c Merge pull request #1693 from julienlgy/feat/razor-cpu-named-sync
fix(libSceRazorCpu): add sceRazorCpuNamedSync export
2026-10-17 15:02:12 +13:00
MarcZX100 871232eede test(agc): wait for preparation workers before linking 2026-10-17 02:00:23 +00:00
Dean 2d16248a25 Merge pull request #6153 from MarcZX100/codex/fix-toggle-mouse-capture
fix(libSceVideoOut): preserve mouse-to-stick relative mode
2026-10-17 14:36:50 +13:00
Adrià fd9e577d98 Merge pull request #6007 from zmeizy/claude/cmp-f32-denormal-modes
fix(shader): translate f32 compares in f32 denormal modes 1 and 2
2026-10-17 03:10:56 +02:00