Commit Graph
14017 Commits
Author SHA1 Message Date
Dean 8c9a1f70f0 Merge pull request #8328 from ymatrix1/feat/nptus-missing-exports
feat(libSceNpTus): export missing firmware NP TUS interfaces
2026-10-21 11:45:19 +13:00
orezraeyandClaude Opus 5.5 3489bf4eb7 fix(libSceRtc): parse the DNT, NFT, NOR and SET zone names as measured on a PS5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 19:45:17 -03:00
Dean 01fbf1060d Merge pull request #8580 from veosett/codex/windows-prebuilt-cache-discovery
fix(shader): discover prebuilt caches through native Windows paths
2026-10-21 11:45:12 +13:00
p3nicillin dde6b34d37 feat(libc): implement unlocked stream status queries 2026-10-20 23:41:22 +01:00
orezraeyandClaude Opus 5.5 4b8f05e3e1 fix(libSceSystemService): answer sceSystemServiceParamGetString's errors and padding as measured on a PS5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 19:41:19 -03:00
Hermes Agent 0273c1479f feat(libkernel): expose kern.osreldate sysctl 2026-10-20 18:29:40 -04:00
Yuri Olive 9d824e2261 Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into feat/nptus-missing-exports
# Conflicts:
#	docs/dev/debt/libSceNpTus.md
2026-10-20 19:25:05 -03:00
Dean e25333e39a Merge pull request #8600 from ebarr24/ws/libc-fopen-streams
fix(libc): share delete access when freopen reopens a stream onto a file on Windows
2026-10-21 11:24:47 +13:00
Dean 466ce3ac45 Merge pull request #7474 from Dripl1x/codex/ui-lab-immediate-exit-cache
fix(agc): preserve pipeline caches on immediate guest exit
2026-10-21 11:23:40 +13:00
Dean 548d50ca5b Merge pull request #8242 from santhoshkumar-dev/codex/np-tus-title-context-cleanup
feat(libSceNpTus): delete title contexts and their requests
2026-10-21 11:23:34 +13:00
Slick Daddy 51c6b38978 fix(libSceVideodec): take the coded picture size the decoder reports
Videodec2 opens FFmpeg with apply_cropping = 0, so the frame it reports is
the coded picture and its crop fields describe the cropping rectangle. The
coded size was derived from the frame size and the crop, which counted the
crop a second time when it added up to a multiple of 16: a picture cropped
four units at the top and four at the bottom was reported 16 rows taller
than the coded picture, and every picture was then refused for a frame
buffer that was sized for the coded picture. The frame size is the coded
size, so the crop only fills the crop offsets.

The fixture's sequence parameter set is also decoded with a crop of four
units at the top and four at the bottom now, which covers the case in the
guest test.
2026-10-21 01:13:00 +03:00
janzezno bc49073a2b test(agc): resubmit a retired SGPR pattern fill a bounded number of times and cover it deterministically 2026-10-21 00:12:40 +02:00
Dean 339217ebc9 Merge pull request #8331 from ymatrix1/feat/audio-missing-exports
feat(audio): export missing firmware AudioIn, Audio3d and Voice interfaces
2026-10-21 11:01:53 +13:00
janzezno e64d42be1f test(agc): resubmit an SGPR pattern fill whose batch retired before the read saw it 2026-10-20 23:57:48 +02:00
Adrià d97361bd0d Merge pull request #8567 from imellag/perf/agc-highest-index-vectorized
perf(agc): find a draw's highest index with a loop the compiler vectorizes
2026-10-20 23:54:21 +02:00
Dean 6830c91641 Merge pull request #8603 from xXPBSXx/fix/libkernel-sys-readlink-size-first
fix(libkernel_sys): check the readlink size before the path
2026-10-21 10:50:49 +13:00
Dean bcdb033754 Merge pull request #7560 from parl0v/perf/window-store-liveness
perf(shader): drop window stores no relative read can see
2026-10-21 10:48:39 +13:00
Dean Galvin 3117837b35 docs(dev): list APS5_NO_HW_F32_PRESERVE in ENVIRONMENT.md 2026-10-21 10:45:24 +13:00
Dean Galvin a07ad30578 feat(shader): request DenormPreserve 32 where the device preserves f32 denormals
The recompiler asked for DenormPreserve only for 16-bit and 64-bit floats,
so a device that flushes 32-bit denormals by default (RADV, MoltenVK) flushed
them whatever the guest's float mode said. target.float32DenormPreserve is set
from shaderDenormPreserveFloat32 when denormBehaviorIndependence allows a 32-bit
mode, is part of the cache key and of the request serialization (version 41),
and makes the module declare DenormPreserve 32 unless the 32-bit flush is
already taken in hardware. APS5_NO_HW_F32_PRESERVE=1 turns it off.
2026-10-21 10:45:24 +13:00
memob 95050dda24 fix(libkernel): tick the process time counter at the TSC frequency
sceKernelGetProcessTimeCounter counted nanoseconds and
sceKernelGetProcessTimeCounterFrequency returned 1 GHz, while
sceKernelGetTscFrequency reports the host TSC rate. On the console the
process time counter runs at the TSC frequency, so a title may scale
the counter by sceKernelGetTscFrequency. PPSA34501 does, and its clock
ran 3.4 times slow on a 3.4 GHz host: it paced its 60 Hz frames to
17.6 fps and its game time and audio drifted apart.

The counter now ticks at sceKernelGetTscFrequency, over the same
monotonic clock and APS5_TIME_SCALE, and its frequency is that rate.
2026-10-20 17:43:18 -04:00
Adrià 42427a6a45 Merge pull request #8556 from teepean/perf/one-fold-per-store-run-5f7e
perf(agc): fold the occlusion dumps of a queued store run once
2026-10-20 23:42:44 +02:00
Dean 2962d21065 Merge pull request #6522 from meh7an/fix/agc-multisample-commands-on-target-device
fix(agc): record a multisampled target's commands on its own device
2026-10-21 10:35:29 +13:00
bluandClaude Fable 5.1 3ed129ab33 fix(agc-driver): make the presenter wait for a full frame dump queue
With APS5_DUMP_FRAMES, FrameDumpWriter::Enqueue threw "frame dump queue exceeded 64 MiB" when the
writer thread fell more than 64 MiB behind, which failed the presentation and ended the title.
#4320 made that rare at the default APS5_DUMP_SCALE=4; at APS5_DUMP_SCALE=1 a 1920x1080 title
reaches it within nine frames and a 3840x2160 one on the third.

Enqueue now waits on the writer's condition variable until the frame fits, and the writer
notifies after each file; a single frame larger than the queue still throws. The VideoOut frame
dump queue test gets a wait mode at scale 1 whose third frame has to wait for the held first one.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-20 14:29:09 -07:00
Adrià e48bbff9ff Merge pull request #8578 from imellag/perf/agc-f32-flush-probe-moltenvk
perf(agc): probe the f32 denormal flush on MoltenVK
2026-10-20 23:27:16 +02:00
juanpimg 795961352b fix: restore the voice chat debt entry and tidy the new declarations
The change removed a technical-debt entry from origin/main that documents four
libSceVoiceChat exports it does not touch, left the new include out of the
quoted include group, put a forward declaration away from the other type
declarations, and cited a prototype source without a line anchor.
2026-10-20 23:22:18 +02:00
juanpimg 63af1bfcf8 fix(libScePosixForWebKit): export the host-named functions through a renamed helper
gethostbyname_r and sysinfo are names of host C library functions. Defining
them in libScePosixForWebKit made the library's own call to
::gethostbyname_r in Resolver.cpp bind to the new declaration, and the
guest_resolver test failed with "gethostbyname_r not implemented". Export
the two NIDs through a helper with the library's own prefix, the way
libSceAmpr re-exports the libc functions.
2026-10-20 23:22:18 +02:00
juanpimg 1f1add461e feat(prx): declare the missing PS5 3.20 system exports in the next tier of libraries
AnyPS5 resolves a title's imports by NID, so a title that imports a system
function that no AnyPS5 library provides fails to load with an unresolved
import. This declares 222 such exports across 11 PS5 system libraries that
AnyPS5 implements but does not provide.

Each declaration calls NotImplemented_nid_no_patch and returns 0; none of
them implements the function. A declaration with a credible prototype uses
it and cites the source with a pinned commit; the rest are declared without
parameters, which resolves the import without making an ABI claim. The
technical-debt files record the limitation per library.

The list is the intersection of the export table of the console's library
(function symbols only), the pinned aerolib names and the functions not yet
defined anywhere in the repo. Every name recomputes to its NID with
tools/nid_names.py.

libSceAudio3d and libSceVoice are left out because #8331 declares them.
2026-10-20 23:22:17 +02:00
MarcZX10 11adccfe15 fix(relinker): preserve detailed header diagnostics 2026-10-20 21:16:19 +00:00
MarcZX10 8625b4802b fix(relinker): normalize input prefix paths 2026-10-20 21:07:53 +00:00
MarcZX10 fc046e621b test(relinker): reject large non-ELF inputs before allocation 2026-10-20 21:07:34 +00:00
MarcZX10 33c1f2365f fix(relinker): validate ELF prefix before reading full input 2026-10-20 21:07:34 +00:00
Ethan Barr 4f6a37d790 fix(libc): share delete access when freopen reopens a stream onto a file on Windows
On Windows, freopen reopened a stream through _wfreopen, which opens the file without FILE_SHARE_DELETE, so remove or rename of the file failed while the stream was open, unlike fopen streams and POSIX unlink/rename of an open file. freopen now closes the previous stream and opens the new file through the same CreateFileW path fopen uses, so the reopened stream shares delete access. Host standard streams and an empty filename keep the _wfreopen path. Reference: FreeBSD 11 unlink(2) and rename(2) succeed on a file that is open.
2026-10-20 17:07:21 -04:00
Adrià 73b6a4cc71 Merge pull request #8066 from HQasper/perf/gpu-thread-dimensions
perf(agc): resolve DISPATCH_INDIRECT thread dimensions on the GPU
2026-10-20 23:06:48 +02:00
Adrià be1ce988d4 Merge pull request #7870 from ionut27001/perf/image-memory-pool
perf(agc): keep released image memory in the buffer pool for reuse by type and size
2026-10-20 23:05:43 +02:00
Adrià 9d5099f5e7 Merge pull request #6785 from milescoviello/perf/srt-guard-fault-helper
perf(shader): name a poisoned guarded SRT read in the fault buffer
2026-10-20 23:00:29 +02:00
MarcZX10 6736aa663d test(tools): resolve temp paths in missing library hint 2026-10-20 22:55:30 +02:00
Yuri Olive 68f9b47be0 Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into feat/audio-missing-exports
# Conflicts:
#	docs/dev/debt/libSceAudio3d.md
2026-10-20 17:55:03 -03:00
Adrià ca74ef2177 Merge pull request #6148 from 011010/feat/audio3d-mix
feat(libSceAudio3d): mix the bed and deliver audio through AudioOut
2026-10-20 22:53:16 +02:00
MarcZX10 05cc68cd95 style(libkernel): keep regression comments out of code 2026-10-20 20:52:44 +00:00
MarcZX10 e1e20f0f2e fix(libkernel): match module info segment records 2026-10-20 20:50:05 +00:00
xXPBSXxandClaude Sonnet 5.5 1e969c1c80 feat(tools): point import_audit at a missing library's module directory
A needed library with no file in --libs or --modules is reported, but when the
file sits elsewhere in the converted title's folder the report gave no way to
find it. import_audit now looks for it, case-insensitively, up to four levels
below each registry's folder and names the directory to pass with --modules.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-20 22:44:23 +02:00
Dean c6145997ef Merge pull request #8270 from thuanquang/fix/relinker-module-name-input-path
fix(relinker): name the guest module in its output filename errors
2026-10-21 09:39:58 +13:00
MarcZX10 745ff15b80 test(agc): skip unsupported sampled color images 2026-10-20 20:39:55 +00:00
Dean 50e0624d7a Merge pull request #7154 from XairRrR/fix/agc-depth-plane-buffer-coherence
fix(agc): keep depth planes coherent with buffer reads and writes of their memory
2026-10-21 09:38:25 +13:00
MarcZX10 ee2d9a4876 test(agc): avoid unsupported color image format 2026-10-20 20:38:17 +00:00
Dean 26740077bd Merge pull request #8144 from TheSovietWaffle/fix/recompiler-domain-computed-control-point
feat(shader): read domain inputs at a control-point index computed from data
2026-10-21 09:31:11 +13:00
Adrià eb73c168bb Merge pull request #7431 from milescoviello/perf/srt-patch-insert-before
perf(shader): insert patched SRT reads before their use without appending first
2026-10-20 22:29:45 +02:00
Adrià 0c54584946 Merge pull request #6611 from meh7an/perf/shader-validate-vertex-inputs
perf(shader): validate vertex stage inputs without building them
2026-10-20 22:28:45 +02:00
xXPBSXxandClaude Sonnet 5.5 e078bc4439 fix(tools): report an unusable build directory in select_tests
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-20 22:27:30 +02:00
Ondra97 278721a708 chore: merge current main into epoll lifetime fix 2026-10-20 22:24:13 +02:00