Commit Graph
20967 Commits
Author SHA1 Message Date
VingelvattenandClaude Fable 5.1 68f5474263 fix(relinker): accept PT_DYNAMIC data after DT_NULL
The dynamic-segment parsers refused a PT_DYNAMIC whose p_filesz is not a
multiple of 16 before reading it. elfldr v0.27 from ps5-payload-dev declares
0x1468 bytes, the tail of its PT_LOAD, with DT_NULL at entry 21; FreeBSD rtld
and glibc stop at DT_NULL and never read p_filesz. Read whole 16-byte entries
within the declared size, stop at DT_NULL, and keep refusing a segment that
ends without one, in the executable reader, the code analysis, the relative
relocation index, the strict NID filter and the guest module reader.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-24 12:06:55 +02:00
Bram910 ae32db8df4 fix(tools): avoid repeated GNU hash chain walks 2026-10-24 12:04:38 +02:00
roboterspinne e5697e7f55 fix(relinker): reject overlapping PT_LOAD segments in Linux output
The Linux patcher sorted the PT_LOAD segments by address but never
checked that their memory ranges are disjoint, while the Windows and
macOS images and guest modules reject overlapping loads. The Linux
output kept both headers, the kernel mapped the later segment over the
earlier one, and the program crashed at start. Adjacent loads whose
ranges overlap now fail with "Overlapping PT_LOAD memory ranges", the
message the other targets use.
2026-10-24 10:03:49 +00:00
Adrià 60465afd3a Merge pull request #7307 from Zenodeon/agc-submit-progress-pr
feat(agc): add opt-in bounded submission progress
2026-10-24 11:59:57 +02:00
milescovielloandClaude Opus 5.5 9f9c60fa0f test(agc): align the depth copy draw test's depth plane at run time
The test declared its depth plane alignas(65536). WinLibs GCC 15.2
rejects static objects aligned above 8192 bytes ("requested alignment
'65536' exceeds object file maximum 8192"), so agc_driver_depth_copy_draw
did not build on Windows. The plane is now a 64 KiB aligned span inside
a larger array, as #8310 does for the array window test, and the test
checks the alignment.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 11:59:00 +02:00
milescovielloandClaude Opus 5.5 2181bfc345 feat(agc): draw DB depth copies with a driver pixel program
A draw with DB_RENDER_CONTROL.DEPTH_COPY ran as a compute pass over the
whole surface, chosen when the viewport and scissor covered it. It now
runs as the title's own draw: the precheck rewrites the draw's registers
to bind no depth target and a driver-authored guest pixel program, then
draws it through the normal path. The program reads POS_FIXED_PT, loads
one sample of the Z_32_FLOAT plane through a T# built from the DB
registers (DepthCopySourceWords), and exports it to color target 0 as
32_R, so only the pixels the draw covers are written, and the normal draw
path orders it after the draws that rendered the plane.

- The plane is decoded by decodeDepthPlane, factored out of decodeDepth,
  so its address, pipe-bank XOR and slice match the registered surface.
- Two programs, one per source kind: image_load 2D_MSAA with the sample in
  s8, and image_load 2D. They are published with the null pixel program
  and prepared at use.
- A multisampled plane is read from its host image or sample shadow
  without the guest-memory import checks of native multisample sampling,
  inside a DepthCopySourceScope opened by Graphics::Draw for draws whose
  decode found the multisampled copy program (State::depthCopySource).
- The compute pass, its shader and the CopySample path are removed.
- A new execution test draws depth over a triangle, copies it with the
  same triangle and compares the covered texels with a reference draw.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 11:59:00 +02:00
Yunus Shaikh c097fca028 Merge main into fix/agc-sync-settle-initial-dcc-main2 2026-10-24 02:58:50 -07:00
Adrià 924b5628b3 Merge pull request #8632 from JJenkx/fix/srt-unsigned-bound-compare
fix(shader): decide an unsigned bound compare from its extreme operand
2026-10-24 11:56:35 +02:00
orezraeyandClaude Opus 5.5 09048e3278 Merge main into fix/libkernel-socket-address-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 06:56:16 -03:00
Adrià 672c38f703 Merge pull request #9077 from thuanquang/docs/debt-agc-htile-msaa-stale
docs(agc): correct five stale statements in the HTILE and multisampled target entries
2026-10-24 11:54:34 +02:00
Adrià a78fed26df Merge pull request #8639 from Tripchipp/docs/debt-type0-null-image-link
docs(debt): link the TYPE=0 null image entry to the recompiler
2026-10-24 11:54:29 +02:00
JJenkxandClaude Opus 5.5 462f8dff1f fix(libkernel): skip unallocated pages in sceKernelReleaseDirectMemory
The unchecked release passed its whole range to ForgetDirectMemory,
which throws on any page that is not allocated, so releasing a range
that is partly or wholly free aborted the process. Release only the
allocated runs, as shadPS4's unchecked free does; the checked variant
still returns ENOENT for them.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 05:54:17 -04:00
Adrià 893f1a067a Merge pull request #10496 from milescoviello/fix/share-identical-resource-plans
fix(shader): share resource plans loaded from the same disk cache payload
2026-10-24 11:54:07 +02:00
krishalivaibhavandClaude Sonnet 5.5 7f4d4aff89 fix(libSceLibreSsl): build the AES substitution table within the constexpr step limit
The table searched all 255 candidates for each inverse, which exceeds the
constexpr step limit of AppleClang. The inverse is now computed as x^254 in
GF(2^8), which gives the same table.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-24 15:21:49 +05:30
Adrià 7f3e661a17 Merge pull request #10555 from adriadam10/fix/select-tests-excluded-definitions
fix(tools): build excluded executables a selected test gets as definitions
2026-10-24 11:50:08 +02:00
bluandClaude Opus 5.5 e040d1191b Merge branch 'boykopovar:main' into feat/libc-siginterrupt
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 02:49:01 -07:00
xTRACKGOD 8ee49632b0 fix(tools): detect host and title changes in interval digests 2026-10-24 15:17:58 +05:30
Adrià FranchandClaude 82b3e66f29 fix(tools): build excluded executables a selected test gets as definitions
Co-Authored-By: Claude <[email protected]>
2026-10-24 11:46:56 +02:00
Yossi Yadgar 37f340b4e6 docs(debt): record the libSceGnmDriverForNeoMode embedded shaders 2026-10-24 12:46:41 +03:00
Yossi Yadgar 085e6b008e test(libSceGnmDriverForNeoMode): check the embedded shader packets and code 2026-10-24 12:46:41 +03:00
Yossi Yadgar b4955f234b feat(libSceGnmDriverForNeoMode): set the embedded fullscreen VS and PS shaders 2026-10-24 12:46:41 +03:00
JJenkxandClaude Opus 5.5 0d6a6f96ee fix(agc): reclaim idle device buffers up to the storage cache's current cap
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 05:40:10 -04:00
thuanquangandClaude 5536623f6c docs(agc): correct five stale statements in the HTILE and multisampled target entries
Co-Authored-By: Claude <[email protected]>
2026-10-24 11:37:08 +02:00
Dean Galvin eaf4a711e5 Merge main into fix/one-sample-ancillary-unsampled 2026-10-24 22:36:23 +13:00
Adrià 5d3ab7791d Merge pull request #9016 from dantdmdarealguy/docs/build-python-launcher-windows
docs(build): run the Python tools with python or py -3 on Windows
2026-10-24 11:35:41 +02:00
Adrià 68ed66980e Merge pull request #9036 from dantdmdarealguy/docs/environment-row-corrections
docs(environment): correct the crash indirect memory, log timestamp, language and label flush rows
2026-10-24 11:34:14 +02:00
Adrià 86203bafc1 Merge pull request #9022 from LeandroLP23/docs/agc-drop-cmask-gpl-off-debt
docs(debt): drop the CMASK clear pass entry for AMD without pipeline libraries
2026-10-24 11:33:17 +02:00
JJenkxandClaude Opus 5.5 0f2f387159 Merge main into PR #10387
LocaleSupport.cpp: keep this branch's console class masks for the ctype
classifiers and main's new isascii and toascii.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 05:31:19 -04:00
Adrià 7be57380e3 Merge pull request #8619 from mantavisual/docs/build-antivirus-relinker-test-temp
docs(build): point the antivirus note at the relinker tests' test-temp
2026-10-24 11:31:10 +02:00
Itamar Medyoni d590a3ef6f fix(libkernel): round an unaligned munmap address down like FreeBSD
munmap failed with EINVAL for an address that is not page aligned.
FreeBSD 11's sys_munmap rejects only a zero length and an address wrap;
it moves the address down to its page and grows the length by the same
offset before rounding it up, so the pages the range touches are
unmapped.
2026-10-24 12:30:23 +03:00
Adrià 892b4ec4a7 Merge pull request #8851 from JJenkx/windows/ngs2-debt-ppsa33655-modules
docs(debt): list the NGS2 custom modules of PPSA33655
2026-10-24 11:29:17 +02:00
Adrià 0210d3b878 Merge pull request #8909 from dantdmdarealguy/docs/usage-mimalloc-dlls
docs(usage): name the mimalloc DLLs a self-built Windows libs/ needs
2026-10-24 11:29:00 +02:00
Adrià f23ed4533d Merge pull request #8921 from xXPBSXx/docs/udp-disconnect-windows-bound-address
docs(debt): record what a Windows UDP socket keeps after connect(AF_UNSPEC)
2026-10-24 11:28:43 +02:00
Adrià 6d025ee2cd Merge pull request #8657 from xXPBSXx/docs/environment-aps5-no-wgi
docs(env): document APS5_NO_WGI
2026-10-24 11:27:28 +02:00
Adrià 4dac9d2eba Merge pull request #6657 from xQuakes/fix/shader-local-relative-index
fix(shader): accept a local tessellation index that nothing observes
2026-10-24 11:26:52 +02:00
Adrià fe204e1a8d Merge pull request #8568 from mantavisual/docs/build-windows-script-policy
docs(build): note the Group Policy script block on libusb's version step
2026-10-24 11:26:29 +02:00
Adrià bfb504fc78 Merge pull request #8533 from Retr0G28/docs/libkernel-dup-directory-debt
docs(debt): drop the Windows directory dup gap from libkernel
2026-10-24 11:25:49 +02:00
Tripchipp f346a79f76 docs(debt): keep the TYPE=0 entry clear of the unnormalized S# line 2026-10-24 11:25:41 +02:00
Tripchipp a5c8c3249d docs(debt): link the TYPE=0 null image entry to the recompiler 2026-10-24 11:25:41 +02:00
Adrià ecdee3b51a Merge pull request #8453 from thuanquang/docs/debt-acb-atomic-gds-signature
docs(agc): drop the stale signature note from the ACB atomic GDS NID entry
2026-10-24 11:25:23 +02:00
Adrià 2af46e4bcf Merge pull request #8450 from thuanquang/docs/debt-converted-unorm-image-loads
docs(shader): remove the stale converted unorm image loads entry
2026-10-24 11:24:57 +02:00
Adrià bed6e7258f Merge pull request #8451 from thuanquang/docs/debt-buffer-label-eop-flip
docs(videoout): point the buffer label entry at sceVideoOutSubmitEopFlip
2026-10-24 11:24:53 +02:00
Adrià feffbca83e Merge pull request #8425 from thuanquang/docs/debt-packed-ancillary-whole-word
docs(shader): say that the whole packed ancillary word carries the layer field too
2026-10-24 11:24:32 +02:00
Adrià 1c9ccc7386 Merge pull request #8420 from thuanquang/docs/debt-ngg-registered-programs
docs(agc): say that registered NGG vertex programs take the mesh path too
2026-10-24 11:24:10 +02:00
Adrià 67bcd19b8b Merge pull request #8424 from thuanquang/docs/debt-alpha-to-coverage-dithered
docs(agc): drop the stale "only" from the alpha-to-coverage entry
2026-10-24 11:24:04 +02:00
Adrià 20af9f8aa3 Merge pull request #8423 from thuanquang/docs/debt-depth-surface-retire-whole-plane
docs(agc): say that only a whole-plane storage write retires a depth surface
2026-10-24 11:23:42 +02:00
Adrià ca9543ea5a Merge pull request #8419 from thuanquang/docs/debt-agc-allocation-host-fallback
docs(agc): say that a refused device allocation falls back to host memory before throwing
2026-10-24 11:21:53 +02:00
Adrià 7eda9aad20 Merge pull request #8412 from thuanquang/docs/debt-depth-storage-other-level
docs(agc): drop another level from the reused depth storage refusals
2026-10-24 11:21:36 +02:00
Adrià 11d08593b6 Merge pull request #8410 from thuanquang/docs/debt-f32-compare-denormal-modes
docs(shader): say that the f32 compares do not throw in f32 denormal modes 1 and 2
2026-10-24 11:21:31 +02:00
Adrià 6b4cf8c731 Merge pull request #8408 from thuanquang/docs/debt-amm-submit-queue
docs(libkernel): say that an AMM command buffer may run after its submission returns
2026-10-24 11:21:27 +02:00