Commit Graph
8546 Commits
Author SHA1 Message Date
Adrià 439aee20e1 Merge pull request #6709 from johnmaia/feat/videodec2-10bit
feat(libSceVideodec2): output 10-bit pictures as low-bit 16-bit words
2026-10-19 11:47:14 +02:00
Adrià 3050105f24 Merge pull request #6707 from karimibrahim07/feat/libc-qsort-s
feat(libc): implement qsort_s
2026-10-19 11:47:03 +02:00
Alexandre Sanchez 67c7190223 fix(agc): preserve image table semantics in cached MSAA guards
Mark described image-table ranges explicitly and apply the eager color-target guard only to ordinary image bindings. Cover native multisample table validation and record the separate table registration gap.
2026-10-19 11:41:30 +02:00
Dean Galvin 8a77927841 Merge main into pr-7340
# Conflicts:
#	core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
#	core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
2026-10-19 22:23:55 +13:00
JJenkx a20968ee25 fix(shader): retain adjacent anchor byte loads on RADV 2026-10-19 05:22:39 -04:00
Dean 7f37d45ed3 Merge pull request #6451 from EagleBearerYS/fix/agc-sample-location-grid-fallback
fix(agc): fall back to pixel (0,0)'s sample locations where the device has no 2x2 grid
2026-10-19 22:22:04 +13:00
Dean Galvin 3b68e8c19e Merge main into pr-6730
# Conflicts:
#	docs/dev/debt/libSceAgcDriver.md
2026-10-19 22:12:19 +13:00
Dean Galvin f879cd713c Merge main into pr-6479
# Conflicts:
#	core/libs/prx/libSceAgcDriver/Graphics/include/GuestBufferMemory.hpp
#	docs/dev/debt/libSceAgcDriver.md
2026-10-19 22:12:19 +13:00
Dean Galvin a48e28a632 Merge main into pr-6457
# Conflicts:
#	docs/dev/debt/libSceAgcDriver.md
2026-10-19 22:12:18 +13:00
Adrià 13cf6954a3 Merge pull request #6674 from veosett/codex/fmask-image-reads
fix(agc): read uncompressed FMASK images from guest memory
2026-10-19 11:05:57 +02:00
Rajkamalcode 2224903528 test(libkernel_sys): remove links and the fixture without std::filesystem on Windows
The MinGW libstdc++ reports a dangling symbolic link as missing and clears
the error, so std::filesystem::remove neither deletes it nor fails, and
remove_all loops forever over a tree that contains one. Remove reparse
points with DeleteFileW and RemoveDirectoryW and the fixture through the
shell; record the gap in the libs technical debt.
2026-10-19 14:34:35 +05:30
fogydes ee7280c873 fix(libkernel): prevent use-after-free on event flag deletion and multi-waiter race 2026-10-19 14:32:12 +05:30
Chikimaro a84a2b1240 feat(libSceNet): implement sceNetUsleep and sceNetInetPtonEx
sceNetUsleep fails with EINVAL for a negative count and otherwise sleeps
through libkernel's sceKernelUsleep, a cancellation point. sceNetInetPtonEx
converts as sceNetInetPton does when its flags are 0 and throws for any
other flags, whose meaning is unknown. The signatures follow shadPS4 and
are recorded as unverified in the libSceNet technical debt.
2026-10-19 09:01:14 +00:00
Savvanis SpyrosandClaude Opus 5.5 cda8e66ccd fix(agc): keep the pipeline library extensions enabled under APS5_NO_GPL
APS5_NO_GPL opened a device without VK_EXT_graphics_pipeline_library and
the five extensions that go with it. The AMD Windows driver shares its
on-disk pipeline cache between devices with and without those extensions,
so a compute pipeline compiled on one kind of device and loaded on the
other ran with the wrong descriptor layout. The startup f32 flush probe
(#6503) runs the same compute pipelines on every device. In a parallel
test run, every APS5_NO_GPL test therefore page-faulted at 0xbeefdeadbeef,
an address read from the probe's own 0xdeadbeef fill. Each fault reset the
GPU, and twice the reset hung the machine.

The device now enables the extensions and their features whenever the
GPU supports them. APS5_NO_GPL only turns off their use, so every device
on a GPU builds the same pipelines.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 12:00:26 +03:00
Adrià 959cfdd1c5 Merge pull request #6686 from DavidSamir/fix/libc-mktime-before-1900-macos
fix(libc): convert mktime before 1900 from the zone's own offsets on macOS
2026-10-19 10:59:57 +02:00
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