Commit Graph
6874 Commits
Author SHA1 Message Date
xdCloudy 86083c6267 feat(libs): declare PS5 system service firmware exports 2026-10-19 09:56:57 +01:00
Dean 1ee7891d0f Merge pull request #7749 from xdCloudy/feat/ps5-verified-exports
feat(prx): declare evidenced PS5 pending exports
2026-10-19 21:52:58 +13:00
Adrià e0adc075a2 Merge pull request #6697 from karimibrahim07/feat/relinker-named-host-imports
fix(relinker): resolve symbol-name imports through NIDs on Windows
2026-10-19 10:49:05 +02:00
Adrià 1f9e35036e Merge pull request #6685 from DavidSamir/fix/netctl-default-route-macos
fix(libSceNetCtl): read the default route from the routing table on macOS
2026-10-19 10:49:00 +02:00
Adrià 48f436406b Merge pull request #6663 from karimibrahim07/feat/libkernel-ipv6-v6only
feat(libkernel): set and read IPV6_V6ONLY on a guest socket
2026-10-19 10:44:37 +02:00
Adrià f161098d3b Merge pull request #6563 from notaxeltv/feat/agc-msaa-enable-rect-list
fix(agc): allow MSAA_ENABLE single-sample rect lists
2026-10-19 10:44:32 +02:00
Josip Parlov 80a53faa3c docs(debt): cite radeonsi for the front half's OC_LDS_EN in shader fusion 2026-10-19 10:40:31 +02:00
Josip Parlov c855edec22 docs(env): describe the default host import budget as HostImportBudget computes it 2026-10-19 10:21:18 +02:00
Adrià 408455bdac Merge pull request #6667 from DavidSamir/fix/libkernel-sys-macos-posix
fix(libkernel_sys): build and check fchdir search permission on macOS
2026-10-19 10:18:13 +02:00
f6c8e8474f fix(agc): wait for address-based writers before reading indirect dispatch arguments
A CPU read of DISPATCH_INDIRECT arguments waited only through the flush
hook, which waits for the ranges recorded work noted as pending writes.
An address-based store (FLAT/GLOBAL, or through a descriptor the
recompiler cannot resolve to a static buffer) is not recorded as a
pending write: its batch leases the registered allocations, and only the
guest pin waiter finished that batch. So the thread-dimension,
misaligned and disabled paths, the fill-kernel path and the device's CPU
fallback read the arguments from before an address-based producer ran.
GTA V (PPSA04264) dies loading Story on such a read: a 64-thread clear
kernel read {160, 288, 0xffffffff} as thread dimensions
(3x288x4294967295 groups), bytes its 1-thread setup kernel had not yet
overwritten with {n, 1, 1}, and threw "workgroup count
3x288x4294967295 exceeds device limits".

Every CPU read of dispatch arguments at execution now first finishes the
recorder up to the newest batch recorded with a lease
(Graphics::FinishLeaseWork). The group read-ahead still reads without
waiting; a dispatch it resolved is adopted only when the execution-time
read gives the same counts, and one that differs is dropped and counted
in the [groupcap] line. The device limit error names the argument
address and cpuReason, and the driver adds the queue, path and
read-ahead outcome. The [indirect] read time includes the lease wait,
and the [recorder] sync-site table records the offset of
FinishLeaseWork's caller. The CPU reads that still miss address-based
writes (indirect draw arguments and count, the copy kernel's count
record, the awaits-title checks) are listed in the technical debt.

IndirectArgumentsPendingProducer covers the execution-time CPU argument
reads on compute queues and the pending-label CPU fallback in the Vulkan
device. Its sixth case records a real argument label behind a host Vulkan
event in an earlier batch and an address-based producer in the later open
batch. The event releases only after that producer batch is submitted;
a bounded watchdog releases for cleanup but fails the case. It requires
a deferred producer lease, an unsubmitted producer at the argument
decision, cpuReason 2 and the fresh arguments and counter result. Small
valid stale counts keep a broken-wait control finite on every driver.
Exact CPU-reason and watchdog diagnostics identify the failing path. This
replaces a spinning workload whose earlier label could retire before
the fallback decision on lavapipe, allowing a false green with cpuReason 0.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Co-Authored-By: Codex <[email protected]>
2026-10-19 10:18:11 +02:00
fogydes 093d6a3d4e fix(libSceAgc): align CB memory semaphore with console oracle and document debt 2026-10-19 13:46:46 +05:30
Adrià 4866297fcf Merge pull request #6305 from fogydes/feat/gameintent-firmware-exports
feat(libSceNpGameIntent): export missing firmware game intent interfaces
2026-10-19 10:16:12 +02:00
Adrià b715404323 Merge pull request #6646 from EagleBearerYS/fix/agc-heap-mirror-replan-unwatched
fix(agc): plan a heap again when its mirror's range has left the write watch
2026-10-19 10:15:31 +02:00
Adrià 9a5726cc18 Merge pull request #6601 from Amoenus/codex/feat-msaa-sampled-readback
feat(agc): read individual multisample image samples
2026-10-19 10:14:12 +02:00
David 2b81cc1c64 docs(debt): say how 16-bit interpolation is computed without Float64 2026-10-19 10:10:34 +02:00
Adrià 6030b31e06 Merge pull request #6758 from LeandroLP23/docs/debt-closes-when
docs(debt): let an entry name what would close it with Closes when
2026-10-19 10:09:16 +02:00
Dean Galvin a53c89fee8 Merge main into pr-6730 via the rebased #6457
# Conflicts:
#	core/libs/prx/libSceAgcDriver/Graphics/src/GuestBufferMemory.cpp
#	docs/dev/debt/libSceAgcDriver.md
2026-10-19 21:02:18 +13:00
Dean Galvin 2e329d1179 Merge main into pr-6479 via the rebased #6457
# Conflicts:
#	core/libs/prx/libSceAgcDriver/Graphics/src/GuestBufferMemory.cpp
#	docs/dev/debt/libSceAgcDriver.md
2026-10-19 21:02:08 +13:00
Advait Palve d4fdc030e1 feat(netctl): implement Wi-Fi info codes in sceNetCtlGetInfo 2026-10-19 10:02:07 +02:00
Adrià bda28c62c0 Merge pull request #6653 from JJenkx/fix/agc-fusion-offchip-lds
fix(agc): retain offchip LDS enable during shader fusion
2026-10-19 10:01:33 +02:00
Adrià 079afa9b84 Merge pull request #6649 from ymatrix1/feat/http-uri-copy
feat(libSceHttp): implement sceHttpUriCopy
2026-10-19 10:01:28 +02:00
Adrià 682ac2fab5 Merge pull request #6643 from phoenix-31/main
feat(progress): split history chart into per-measure panels with declared totals
2026-10-19 10:01:23 +02:00
Dean Galvin fe5c276ec7 Merge main into pr-6457
# Conflicts:
#	docs/dev/debt/libSceAgcDriver.md
2026-10-19 21:00:19 +13:00
Werner 4e5eb1c3be fix(libkernel): raise the Windows stdio stream limit to RLIMIT_NOFILE
The C runtime allows 512 stdio streams by default, so after about 509
guest fopen/fdopen streams every further stream failed with EMFILE,
including the std::ifstream APR opens for each read, while getrlimit
reports 8192 open files. Raise the limit to 8192 when libkernel loads,
as the Linux build raises RLIMIT_NOFILE.
2026-10-19 08:00:07 +00:00
john.maiaandClaude Opus 5.5 beba5fad03 feat(libSceVideodec2): output 10-bit pictures as low-bit 16-bit words
A picture deeper than 8 bits threw ("output deeper than 8 bits is not
implemented"), which stops Mortalfin (PPSA99141) as soon as it plays an HEVC
Main10 video (#6640).

A 10-bit picture is now written as 16-bit little-endian words with the sample
in the low 10 bits: Y rows, then interleaved UV rows at framePitchInBytes
times the height. framePitch is in samples and framePitchInBytes in bytes
(twice the width, aligned to 256). QueryDecoderMemoryInfo sizes a frame of an
HEVC or VP9 profile 2 configuration with two bytes per sample.

The layout and sizes follow EVO-PLAYER-PS5, which decodes and presents 1080p
HEVC Main10 on hardware through this path: its 10-bit check
(pitch_bytes >= pitch * 2), its UV offset, its low-bit sampling factor, and
the 1920x1088 Main10 frame buffer its hardware log reports (6128 KB after
rounding to 16 KiB).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 09:58:14 +02:00
Adrià Franch 6a894d4c1c Merge upstream/main into codex/fmask-image-reads 2026-10-19 09:48:51 +02:00
Dean e0a6f31d55 Merge pull request #7760 from MontyMcK/fix/hmd2-no-headset-regression
fix(libSceHmd2): report the PS VR2 runtime as unavailable again
2026-10-19 20:47:29 +13:00
Adrià 13b4f66e12 Merge pull request #6665 from Dellz36/docs/windows-build-setup
docs(build): document Windows Python and Git Bash setup
2026-10-19 09:46:45 +02:00
JJenkx d16e9beed9 fix(ajm): keep batch handles within their creating context 2026-10-19 03:39:00 -04:00
Adrià 9bfbedc562 Merge pull request #6613 from milescoviello/fix/vertex-barrier-before-memory
fix(shader): emit nothing for a vertex s_barrier that precedes every memory access
2026-10-19 09:38:07 +02:00
Adrià 096279ed25 Merge pull request #6610 from JJenkx/fix/linux-sdk-heap-owner
fix(libc): share the guest SDK application allocator
2026-10-19 09:38:02 +02:00
Adrià 58e77bb6e9 Merge pull request #6603 from ymatrix1/feat/net-missing-exports
feat(libSceNet): export missing firmware network interfaces
2026-10-19 09:37:55 +02:00
Adrià a67389debc Merge pull request #6600 from ymatrix1/feat/pad-missing-exports
feat(libScePad): export missing firmware pad interfaces
2026-10-19 09:37:43 +02:00
Adrià 75ec3b5671 Merge pull request #6543 from karanvora2599/fix/agc-radv-fill-memory-hle
fix(agc): take RADV's fill-memory kernel as a buffer fill
2026-10-19 09:37:38 +02:00
Adrià 48335814bc Merge pull request #6592 from LuisAguilarDev/feat/libscenptus
feat(np-tus): add libSceNpTus with offline title user storage
2026-10-19 09:37:33 +02:00
Adrià 3cda671201 Merge pull request #6594 from notaxeltv/fix/ngs2-parallel-listener-orient
fix(libSceNgs2): keep CalcListener basis when front and up are parallel
2026-10-19 09:37:28 +02:00
phoenix-31andClaude Opus 5.5 428132f8ed feat(progress): split history chart into per-measure panels with declared totals
Library functions and shader instructions were drawn on one y-axis with
ambiguous labels and overlapping fills. Each now gets its own panel and
scale, with implemented (solid) against declared (dashed); shaders gain
their declared total from the ISA list. Date labels are horizontal and
every day has a hover tooltip.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 09:30:01 +02:00
xdCloudy 91c931896e fix(prx): retain RegMgr debt and avoid SaveData overlap 2026-10-19 08:29:42 +01:00
xdCloudy 1b5004d77f fix(prx): mark unsupported export prototypes as unknown 2026-10-19 08:28:58 +01:00
T3cm0andClaude Fable 5.1 762410ced4 feat(libSceVideoOut): answer the HMD2 bus open as the console does
sceVideoOutOpen with bus type 0x20, the PS VR2 output PPSA05666 opens as
SCE_VIDEO_OUT_BUS_TYPE_HMD2_MAIN after sceHmd2ReprojectionEnableVrMode, threw
VIDEO_OUT_ERROR_INVALID_VALUE and aborted the title. The console returns that
code to a process that is not a game, with the headset connected and worn or
not, for users 255 and 0 and for a null or zeroed open parameter, so the bus
is answered that way before the other argument checks and the title carries
on with the error as its handle, as it does on the console without a headset.

The debt entry records the sequence the title follows on that handle
(RegisterBuffers2 with category 16 and 4000x2040 descriptors that point at
Hmd2 per-eye textures, ConfigureOutput and IsOutputSupported with 0x2000F, a
GPU wait on buffer 0), which a VR backend will have to model, and the test
covers the bus and the HMD output modes 0x20001 and 0x2000C to 0x20010, which
the console and this implementation answer with VIDEO_OUT_ERROR_UNKNOWN_OUTPUT_MODE
on the TV bus.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-19 02:24:36 -05:00
notaxeltvandCursor 92f11a93ed fix(agc): allow MSAA_ENABLE single-sample rect lists
Filled rectangles (VGT_PRIMITIVE_TYPE 7 and 17) use the same single-sample MSAA_ENABLE path as triangles; PPSA03541 stops on a rect-list draw otherwise.

Co-authored-by: Cursor <[email protected]>
2026-10-19 09:23:53 +02:00
fogydes fa94b2cfc8 feat(libSceNpGameIntent): export missing firmware game intent interfaces 2026-10-19 09:22:26 +02:00
Dean Galvin 23fc286e4c Merge main into pr-6451
# Conflicts:
#	docs/dev/debt/libSceAgcDriver.md
2026-10-19 20:08:05 +13:00
Anton Ermolaev 4450bafec8 fix(libSceHttp): add authentication and cookie cache flush exports 2026-10-19 12:07:02 +05:00
Savvanis Spyros 504c41a9ad Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into fix/sce-code-gaps
# Conflicts:
#	core/relinker/relinker/src/pipeline/RelinkerPipeline.cpp
2026-10-19 10:06:58 +03:00
Dean Galvin 33bbd084b9 Merge main into pr-6457
# Conflicts:
#	core/libs/prx/libSceAgcDriver/Graphics/src/GuestBufferMemory.cpp
2026-10-19 20:05:31 +13:00
Adrià 72aba1dff5 Merge pull request #6571 from klosixgaming-arch/fix/agc-cb-resolve-msaa-disabled
fix(agc): compare a CB resolve's sample count with the rasterizer onl…
2026-10-19 08:58:54 +02:00
Adrià 50a5b435f1 Merge pull request #6596 from ymatrix1/feat/rtc-missing
feat(libSceRtc): implement the remaining firmware exports
2026-10-19 08:57:02 +02:00
Emanuele b687368fac docs(libc): order the macOS unmappable range by macOS version
The range starts at 0x10_0000_0000 on macOS 26.5 and at 0xF_C000_0000 on
macOS 27. The M2 Max on macOS 27.2 shows the same start as the M4 Pro on
27.0.1, so the line lists the macOS version first and the chips only as
the machines it was measured on.
2026-10-19 08:55:20 +02:00
Adrià 64a9caa62d Merge pull request #6499 from parl0v/perf/keep-import-across-split
perf(agc): keep a host import across a split of its guest range
2026-10-19 08:54:36 +02:00