Commit Graph
14017 Commits
Author SHA1 Message Date
Werner d15c38b4de fix(relinker): compare page indices of one type when building Windows sections
dataEnd was a std::uint64_t and last a std::size_t, which are different
types on macOS, so std::min did not compile with Apple clang.
2026-10-19 05:22:58 +00:00
Dean 4ffb0cd12b Merge pull request #7377 from EagleBearerYS/fix/shader-pixel-bda-single-exit
fix(shader): end a pixel shader's failed BDA reads through one exit
2026-10-19 18:22:07 +13:00
Dean ade174f250 Merge pull request #7050 from SP4C3B4R-8/fix/depth-retire-whole-plane
fix(agc): retire a depth surface on a storage write only when the write covers a whole plane
2026-10-19 18:22:02 +13:00
Dean bc9b1e6d74 Merge pull request #6917 from milescoviello/perf/guest-lease-snapshot
perf(libc): keep the guest allocation lease snapshot until the registry changes
2026-10-19 18:21:58 +13:00
fogydes fcdf046855 feat(libSceSysmodule): register missing user and internal sysmodule IDs 2026-10-19 10:51:17 +05:30
Adrià 50d269e1a4 Merge pull request #5138 from veosett/codex/guest-relative-section-symbols
fix(relinker): accept section-relative guest module relocations
2026-10-19 07:16:19 +02:00
Adrià Franch 59449dcf00 test(shader): downgrade fixtures drop the f32 flush flag byte 2026-10-19 07:05:57 +02:00
Dean Galvin 80fc1061c7 docs(env): list APS5_NO_BARRIER_BATCH in the environment reference
The environment-reference check now requires a row for every APS5_* name a pull request reads; main added that check after this branch was written.
2026-10-19 18:05:27 +13:00
Dean Galvin fac38912d9 Merge main into pr-7489
# Conflicts:
#	core/libs/prx/libSceAgcDriver/CMakeLists.txt
2026-10-19 18:04:50 +13:00
ionut27001 8f93589389 test(libkernel): pick a foreign process group guest_kill cannot own
guest_kill requires killpg(1000, ...) to fail with ESRCH, but getpid
returns the host process id. When Windows gives the test process id
1000, group 1000 is the caller's own, killpg succeeds as the test itself
requires for killpg(self, 0), and Require aborts with 0xc0000409. Use
self + 1000, which is never the caller's group.
2026-10-19 08:01:26 +03:00
Adrià Franch 3c95095c21 test(shader): read a version 35 request without the f32 flush flag 2026-10-19 07:00:21 +02:00
ThatsLeo ac14d6317d perf(shader): flush f32 denormals in hardware when a startup probe matches the emulation
Devices with DenormFlushToZero for f32 run the mixed denormal-flush programs with and
without the hardware mode at startup; when every result matches, add, sub, mul, fma,
floor and ceil in the default rounding mode drop their software flush.
2026-10-19 07:00:13 +02:00
Yunus Shaikh ef6ec1e242 test(agc): check coverage enters per-sample shaders in guest order and exports in host order
A per-sample shader under a non-uniform quad sample mask keeps only the invocations whose guest sample the mask names, since gl_SampleMaskIn is reordered before it gates them. The depth export is reordered back, so a depth probe at the mask's host samples runs exactly the guests the mask kept.
2026-10-18 21:58:24 -07:00
Yunus Shaikh 44e8786ba0 test(agc): require the position input when the sample order alone reorders
The pixel input collector requests FragCoord for a position input, dithered alpha to coverage, a quad mask, varying sample locations or ReordersSamples. The last term is the only one that applies to a shader carrying just an order word, so a pass with an ancillary input and a reordered order must read FragCoord while the same pass with a kept order must not.
2026-10-18 21:58:23 -07:00
Yunus Shaikh 9b7f8cd2e3 test(agc): check the location table's index against the sample order
An iterated PERSP_SAMPLE on a reordered order that varies across the 2x2 grid indexes locations[quad * 8 + guest]. The check parses the recompiled module and follows each InterpolateAtOffset's offset operand back through its OpLoad to the table's OpAccessChain index, which must be the order word's nibble at the shader's SampleId (GuestSampleIndex, not the host index) or'd with the FragCoord-derived quad term, and the selected order words must be the ones the pass carried.
2026-10-18 21:58:22 -07:00
Adrià 72a3d9f2a4 Merge pull request #6534 from dogukanatlihan/fix/windows-stack-anonymous-mmap
fix(libkernel): replace anonymous Windows stack mappings
2026-10-19 06:58:04 +02:00
Jota 44304875c3 test(agc): keep the queue-idle store out of the file write cases
agc_driver_storage_file_write expects the unrelated surface's image to
stay pending through all twelve cases, and the source image to stay
pending until the write flushes it. Queue 0 stores every pending image
once the queues stay quiet for 50 ms (IdleResultsQuietPeriod), so any
pause of that length on a loaded host flushes them and the test fails
with "an unrelated pending GPU image was flushed".

Each case now takes the GPU mutex, which StoreIdleResults also takes,
right after its producer, and produces again an image the idle store
reached before the hold. The unrelated check moves inside the case,
under the same hold.
2026-10-19 01:56:57 -03:00
Yunus Shaikh 245cec763f Merge main into fix/agc-sample-location-grid-exact
Resolves sameDecode in DrawRegisterKey.cpp, keeping this branch's sample-order comparison and #6530's merged-coverage comparison.
2026-10-18 21:53:18 -07:00
MarcZX10 31483262cf fix(libc): avoid coarse Windows C++ condition waits 2026-10-19 04:52:44 +00:00
Dean 574762f121 Merge pull request #6659 from JJenkx/perf/spirv-single-input-validation
perf(shader): validate optimizer input once
2026-10-19 17:52:07 +13:00
Dean b2a3cd8b17 Merge pull request #6690 from xXPBSXx/test/netctl-callbacks-plain
test(libSceNetCtl): cover the plain callback registration in guest_sce_net
2026-10-19 17:52:04 +13:00
Dean 859017b4ce Merge pull request #7698 from tibzejoker/perf/f16-single-convert
perf(shader): convert one f16 value instead of an (x, 0.0) pair
2026-10-19 17:52:01 +13:00
Jota 21325fba43 test(relinker): give the desktop entry test its own temporary directory 2026-10-19 04:51:37 +00:00
Adrià Franch 95751ecab8 fix(libkernel): drop duplicate include after rebase 2026-10-19 06:42:38 +02:00
Doğukan Atlıhan 1ad6c746b8 fix(libkernel): replace anonymous Windows stack mappings 2026-10-19 06:42:30 +02:00
MarcZX10 f7cef86629 fix(cmake): link MinGW spirv validator exit test runtime 2026-10-19 04:33:56 +00:00
Werner 9f4c27190e fix(relinker): keep zero-filled PT_LOAD memory out of the Windows load image
WindowsLoadImage backed each PT_LOAD up to its memory size, so the
zero-filled tail of a segment was allocated and copied into its section
before the writer dropped it again: 64 MiB of zero-filled memory cost
131 MiB and 0.2 s for --windows and --macos. Only the file-backed pages are
stored now; a pointer written into zero-filled memory backs just the pages
it touches, and the section keeps the rest as virtual size. A relocation
into the end of a zero-filled area no longer pulls the whole area into the
executable file.
2026-10-19 04:29:35 +00:00
Adrià 676d423968 Merge pull request #6532 from ArjenS-LA/feat/guest-bcopy
feat(libc): implement overlap-safe bcopy
2026-10-19 06:09:37 +02:00
ionut27001andClaude Opus 5.5 46f518997e fix(libc): return jrand48 and mrand48 zero-extended as measured on a PS5
In a payload process on a PS5 (firmware 12.70), jrand48 and mrand48
return the high 32 bits of the new 48-bit state zero-extended to the
64-bit long, as FreeBSD 11.0 does, so a result with bit 31 set comes
back between 0x80000000 and 0xFFFFFFFF. Here they sign-extended it, as
FreeBSD 11.1 and later do with an (int32_t) cast. lrand48 and nrand48
already matched the payload process. The tests now pin its results for
three seeds and the first six mrand48 values after srand48(1), compare
with the host as 32-bit values, and the debt entry records the
measurement.

AI-assisted: yes

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 07:09:32 +03:00
Adrià ceab3dd674 Merge pull request #6523 from billythemenace2/fix/agc-mesh-support-before-validation
fix(agc): refuse mesh-path draws on a device without mesh shaders before validating them
2026-10-19 06:08:33 +02:00
Adrià e0b8be9dc5 Merge pull request #6530 from milescoviello/feat/smoothing-mixed-samples
feat(agc): draw radeonsi line and polygon smoothing (SAMPLE_COVERAGE, merged mixed samples)
2026-10-19 06:06:26 +02:00
Adrià 9cc0f16f6e Merge pull request #6533 from ArjenS-LA/feat/guest-getopt-long-only
feat(libc): implement getopt_long_only
2026-10-19 06:04:23 +02:00
Adrià 3904ce6cf5 Merge pull request #6505 from keravyn-ops/fix/htile-pending-fill
perf(agc): take the HTILE words pending fills leave instead of reading them
2026-10-19 06:03:19 +02:00
Adrià d72c9e3728 Merge pull request #6527 from SandstromPL/feat/libscediscmap
feat(libSceDiscMap): report no disc bitmap from the two disc map queries
2026-10-19 06:02:18 +02:00
xXPBSXxandClaude Sonnet 5.5 ba9dbc208a test(libSceNetCtl): cover the plain callback registration in guest_sce_net
sceNetCtlRegisterCallback and sceNetCtlUnregisterCallback share the
callback table logic with the V6 pair, which guest_sce_net checks, but
the plain pair is not called by any test. The new block mirrors the V6
one (null function, null output, eight slots, the ninth refused, invalid
ids, slot reuse) with the guest-ABI IgnoreNetCtlEvent callback, and checks
that the two tables are separate.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-19 06:01:26 +02:00
Yunus Shaikh acf80cc109 docs(agc): describe the 2x checkerboard in the sample-location debt entry without title ids 2026-10-18 20:58:27 -07:00
MrMha c72ccac3e6 feat(pad): queue timed controller button sequences 2026-10-19 07:58:16 +04:00
Yunus Shaikh a932bcc7d6 fix(agc): take shader cache FormatVersion 41 and word the grid-reference skip as a device limitation
main took FormatVersion 40 with #6486, so this branch moves to 41. The grid-reference test's skip now reads as a device that does not keep depth at custom sample locations, the wording tools/check_skips.py accepts as a device limitation. The sample-location debt entry describes the 2x checkerboard without naming titles.
2026-10-18 20:57:10 -07:00
Yunus Shaikh 18463ff5c2 Merge main into fix/agc-sample-location-grid-exact
#4650 took request serialization version 35 for its depth remap flag, so this branch's sample order moves to 36. The serialization tests drop #4650's trailing byte from every older version they build, as main's do, along with the iteration fields and the sample order.
2026-10-18 20:56:57 -07:00
elliot 40d4cc03f5 fix(agc): move workgroup offset specialization IDs to 8241-8243
8237 and 8238 are taken by MeshLayerBase and MeshLayerCount in #6959 and 8240 by DepthRemapBase in another open PR, so buildSpecializedModule would read a mesh module's IDs as workgroup offsets once both land.
2026-10-18 22:54:44 -05:00
elliot 11a7b61d72 fix(agc): split oversized dispatches with workgroup offset specialization
A dispatch over maxComputeWorkGroupCount was split into vkCmdDispatchBase
chunks whose base reached the limit, which VUID-vkCmdDispatchBase-baseGroupX-00421
forbids, and NVIDIA refused the split outright.

Compute modules now declare WorkgroupOffset specialization constants (default 0)
that the recompiler adds to WorkgroupId and GlobalInvocationId and keeps
unmaterialized. Each chunk is recorded with vkCmdDispatch from group 0, bound to
a pipeline variant specialized with the chunk's base. The NVIDIA throw is gone;
device-memory LDS splits still throw.

Fixes #7375
2026-10-18 22:54:33 -05:00
Dean 3ddbc4accc Merge pull request #4650 from Mouad-Scriptz-0/feat/agc-depth-range-remap
feat(agc): remap a viewport depth range the device cannot express into the vertex shader
2026-10-19 16:52:31 +13:00
Dean f4970371da Merge pull request #6459 from angleboyndn-stack/fix/trace-digest-largest-interval-phase
fix(tools): select largest interval phase by duration
2026-10-19 16:52:27 +13:00
Dean b375e11806 Merge pull request #6621 from klosixgaming-arch/fix/unwrap-self-place-by-record-index
fix(tools): read unwrap_self's vaddr-less segments from where the SELF stores them
2026-10-19 16:52:24 +13:00
Dean df10565063 Merge pull request #6578 from GalaxyGamingFR/fix/nid-names-cli-suffix
fix(nid_names): accept NIDs with a #lib#mod suffix in --nid
2026-10-19 16:52:20 +13:00
Dean 7b3d5b4a48 Merge pull request #7159 from MarcZX10/codex/import-audit-pe-modules-6378
fix(tools): audit converted PE guest modules
2026-10-19 16:52:17 +13:00
Dean 3fda339541 Merge pull request #7169 from Ondra97/codex/fix-command-batch-fence-failure
fix(agc): ignore failed fence creation outputs
2026-10-19 16:52:12 +13:00
Dean f5c0fab105 Merge pull request #7161 from MrMha/fix/audit-utf8-diagnostics-20261017
fix: preserve Unicode paths in import audit errors
2026-10-19 16:52:08 +13:00
Dean c815dd278b Merge pull request #7724 from karimibrahim07/fix/agc-image-table-reuse-windows
test(agc): expect one resolution for a CPU write beside an image table on Windows too
2026-10-19 16:52:05 +13:00
Kovalev Vladislav 269a59e23a fix(relinker): preserve defined RELATIVE symbols with section markers 2026-10-19 09:46:47 +06:00