Commit Graph
14017 Commits
Author SHA1 Message Date
Advait Palve d4fdc030e1 feat(netctl): implement Wi-Fi info codes in sceNetCtlGetInfo 2026-10-19 10:02:07 +02:00
Adrià 415cd49fd3 Merge pull request #5913 from JJenkx/test/eop-live-token-filler-current
test(videoout): pin EOP matching across type-2 filler
2026-10-19 10:01:38 +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
Adrià db7763d836 Merge pull request #6623 from IshmamDC217/fix/zlib-truncated-status
fix(libSceZlib): report a truncated stream as fatal when the output is full
2026-10-19 09:59:19 +02:00
Adrià ed8caf6a4f Merge pull request #6619 from Get-fix/ps4/relinker-zero-length-fde
fix(relinker): ignore unwind records that cover no code
2026-10-19 09:59:13 +02: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 eaae7e069d Merge pull request #7753 from xdCloudy/feat/ps5-charset-video-exports
feat(libSceCesCs/libSceVdecsw): declare PS5 charset and video exports
2026-10-19 20:47:43 +13:00
Dean 7c09dfff45 Merge pull request #7750 from xdCloudy/feat/ps5-netctl-ap-exports
feat(libSceNetCtlAp): declare PS5 network-control exports
2026-10-19 20:47:39 +13:00
Dean 9dabcf5258 Merge pull request #7781 from MarcZX10/codex/asan-nothrow-new-7765
fix(agc): match nothrow fixture allocations
2026-10-19 20:47:35 +13: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à d8d0222d02 Merge pull request #6616 from hashaam1217/fix/agc-eop-flip-pipelined-draws
fix(agc): present EOP flips when draws are pipelined
2026-10-19 09:38:12 +02: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à 427194263c Merge pull request #6605 from GalaxyGamingFR/fix/strict-filter-indexed-table-imports
fix(relinker): keep imports reached by indexing a live table base
2026-10-19 09:37:49 +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
Jon Daniel 070a3f12c6 fix(agc): bind image and sampler tables through update-after-bind limits
Image and sampler table capacity came only from the regular descriptor
limits. MoltenVK reports Metal's argument table limits there (256 sampled
images and 16 samplers per stage), below the typed heaps the tables are
reserved on top of, so both capacities were 0 and every table draw or
dispatch was refused as if the device lacked descriptor indexing. Its
update-after-bind limits are 1000000 sampled images and 500000 samplers.

- descriptorBindingSampledImageUpdateAfterBind is queried and enabled, and
  the update-after-bind limits are read when either it or the storage
  buffer feature is present.
- A table whose regular capacity is 0 takes its capacity from the
  update-after-bind limits. Its binding is update-after-bind and its set
  layout and pool are update-after-bind ones, in ShaderResources and in
  DescribeSetLayouts alike. A table that fits the regular limits is
  unchanged.
- An update-after-bind set layout and its allocation are checked against
  the update-after-bind sampled image and sampler limits when the device
  has descriptorBindingSampledImageUpdateAfterBind. Vulkan counts the
  descriptors of such sets against those limits in place of the regular
  ones, and requires them to be at least the regular ones only when the
  feature is supported, so without it, and for storage images, the
  regular limits are kept as before. Storage buffers keep their own
  update-after-bind flag.
- Compute pipeline capture and replay accept update-after-bind sampled
  image and sampler bindings.
2026-10-19 09:34:13 +02:00
plokmklo c1866af79b fix(relinker): synthesize PT_GNU_STACK for Linux outputs without one
Outputs whose input carries no PT_GNU_STACK get one appended with
PF_R|PF_W and alignment 16 so the kernel does not fall back to an
executable stack marking.

RequiredProgramHeaderCount and WriteLayout now derive from one shared
header list, so the reserved slot and the written header cannot
disagree at any PhNum boundary, when a free input slot should be
reused, or when the RELRO coverage guard reduces the kept count.
Space exhaustion beyond the 16-bit header limit fails loudly instead
of silently skipping the header.
2026-10-19 07:30:56 +00:00
plokmklo d4cdfe0639 test(relinker): locate Linux stub segments via e_phoff
The program header table moves when the layout needs more slots than
the input provides, so the stub lookup must follow the output e_phoff
instead of assuming the table stays at file offset 64.
2026-10-19 07:30:56 +00:00
m2 (AI Agent)andClaude Opus 5.5 d83f541c54 fix(shader): ballot each predicate once per block
Every OpGroupNonUniformBallot now goes through SpirvModule::AddSubgroupBallot.
A repeated ballot of the same predicate in the same block becomes an
OpCopyObject of the first ballot. Within one block the active invocations do
not change, so the result is identical. The cache is cleared at every label,
function boundary, function call and demote, and helper functions keep their
own cache.

When SPIRV-Tools is enabled, block merging and specialization can still put
two ballots of one predicate into the same block after emission, so
ValidateAndOptimizeSpirv collapses repeated block ballots the same way on
every module it returns, optimized or not.

NVIDIA 580's SPIR-V compiler segfaulted (libnvidia-gpucomp+0xe3facc) on GTA V
compute shaders that ballot one predicate many times in a block. One such
shader had 163 repeated ballots across three blocks. With them collapsed, both
crashing captures (compute-fe506552cec99bfc and compute-c02e5e3f35010fa5)
compile.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 09:30:26 +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
thibautandClaude Opus 5.5 61340e24af fix(shader): round normalized storage writes from the exact product
RDNA 2 (RX 6700 XT, native image_store) and Apple M2 store the level
nearest to the exact product x * scale, not the nearest even level of
its f32 rounding. The two differ when fl32(x * scale) lands exactly on
a .5: the fma residual of the product now breaks that tie by its sign.
The residual is decorated NoContraction, without it the Intel UHD 770
does not evaluate the fma exactly. The test expects the level nearest
to the product computed in double, exact for these inputs.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01XBXM4pgkMHYEtqN1EQni2P
2026-10-19 09:29:24 +02:00
xdCloudy 896704b7f2 fix(prx): drop rebased invitation duplicates 2026-10-19 08:28:58 +01:00
xdCloudy 1b5004d77f fix(prx): mark unsupported export prototypes as unknown 2026-10-19 08:28:58 +01:00
xdCloudy 78fc2c1759 feat(prx): declare verified PS5 pending exports 2026-10-19 08:28:58 +01:00
xdCloudy b3ab793191 fix(prx): omit title-shipped face modules from inventory 2026-10-19 08:28:43 +01:00
xdCloudy eadbcc407c fix(prx): leave notification exports to focused change 2026-10-19 08:27:22 +01:00
xdCloudy bec9cf2e5c feat(prx): inventory confirmed PS5 system libraries 2026-10-19 08:27:22 +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 fb0dc118f3 Merge pull request #7782 from parl0v/fix/unwrap-self-unstored-version-segment
fix(tools): unwrap SELF dumps that leave out the version segment
2026-10-19 20:21:32 +13:00
hamb3r 97cf55192c docs: require Khronos validation layer for AGC and shader testing 2026-10-19 10:15:47 +03:00
MarcZX10 1b6d33b43e fix(agc): match nothrow fixture allocations 2026-10-19 07:11:22 +00:00
Josip Parlov d757b66e9a fix(tools): unwrap SELF dumps that leave out the version segment
unwrap_self reads the vaddr-less segments that follow the recorded
comment segment back to back from right after its data, and refuses the
whole container when one of them runs past the end of the file. Some
dumps end right after the last recorded segment and do not store the
version segment at all. The sce_module/libc.prx of PPSA15552 is one:
its last record, the 0x58-byte comment at 0x13b590, ends at 0x13b5e8,
which is the file size, so the 0x1a-byte PT_SCE_VERSION has no bytes
and the tool failed with "segment 12 does not fit the file" although
every load, dynamic and comment segment is complete.

A trailing segment that would run past the end of the file is now
emitted without file bytes, the same way as the PT_NOTE the container
leaves out. The relinker does not read PT_SCE_VERSION
(GuestImageReader skips it). Containers that store the version segment
unwrap byte for byte as before.
2026-10-19 09:09:39 +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