Commit Graph
14017 Commits
Author SHA1 Message Date
Adrià b6406a1715 Merge pull request #5792 from SaloQT/feat/prebuilt-shader-packs
feat(recompiler): load prebuilt shader packs before the writable cache
2026-10-14 21:26:42 +02:00
Adrià e23eff5f49 Merge pull request #5386 from simonbronk/fix/relinker-macos-weak-imports
fix(relinker): keep weak imports weak in macOS binds
2026-10-14 21:25:57 +02:00
akkadbakkad89 bf4945eabd feat(libc): export the fmin and fmax family
Adds fmin, fminf, fminl, fmax, fmaxf and fmaxl, the remaining
missing members of the C99 minimum/maximum family, with the NaN
propagation and signed-zero handling guest_fminf pins down (host
std::fmin does not guarantee the sign of a zero result). The
previous libSceLibcInternal copy of fminf is removed so the export
stays single-owner. PPSA28319 imports fmaxf from libc.prx; the
other five names were exported by nothing.
2026-10-14 19:25:39 +00:00
Adrià 101c23a813 Merge pull request #5378 from MiniRML/fix/conventions-bom-shebang
fix(conventions): accept first-line BOM shebangs
2026-10-14 21:25:39 +02:00
Semir Kabir 6e3152f0e6 fix(agc): print the stored worker failure before WaitIdle can return 2026-10-14 19:24:49 +00:00
Nahid DelicandClaude Opus 5.5 3a7e82a178 fix(shader): address ordered counts by offset0 alone
On ds_ordered_count M0 holds the ordered wave ID, not a GDS address as
for ds_append: radeonsi and ACO pass the wave ID as the intrinsic's
pointer and keep the counter address in offset0. Reading M0 as the base
and size skipped the add whenever M0[15:0] was 0, so every wave got the
same range. The test now runs the ordered pass with M0 = 0 and M0 = 7.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 21:23:52 +02:00
Nahid DelicandClaude Opus 5.5 46a1cc0fc3 feat(shader): add GDS ordered counts and ordered-append dispatches
ds_ordered_count adds the first active lane's value to a GDS counter and
returns the previous value, like ds_append adds the lane count. Waves are
not serialized in launch order: each still gets its own range. Ordered
swap and multi-dword counts stay refused. DISPATCH_DIRECT and
DISPATCH_INDIRECT accept ORDERED_APPEND_ENBL (bit 3) of the initiator.
Compute shaders of MXGP 26 (PPSA30839) use both.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 21:23:52 +02:00
Nesyth ea3a2152d7 perf(agc): write back a storage image spanning adjacent registered ranges on the GPU through each range's import 2026-10-14 21:23:36 +02:00
Adrià 55549e7892 Merge pull request #5365 from MiniRML/fix/overlap-unicode-paths
fix(tools): preserve Unicode paths in PR overlap checks
2026-10-14 21:23:23 +02:00
Adrià 23c8c4a390 Merge pull request #5318 from David-cmrg/fix/tests-mlock-asan
fix(tests): skip the host mlock checks of guest_mlock in the ASan build
2026-10-14 21:22:25 +02:00
ThatsLeo 8ddd1f92e4 fix(shader): keep resource plans in their arena through the disk cache
EncodePlan and DecodePlan from #4883 walked valueStorage as a vector of
owned values; they now use IrValueArena, and decoded operands are detached.
2026-10-15 08:22:09 +13:00
ThatsLeo cc4d3edb28 fix(shader): judge an extract by its source in MayEvaluate
EvaluateExtract evaluates only through its source, so an extract of a
non-invariant counter made a loop's latch condition look evaluable.
2026-10-15 08:22:09 +13:00
ThatsLeo 26f0331094 perf(shader): keep only evaluable branch conditions in resource plans
A plan copied every control-flow condition with all its operands, though one
that depends on a vector register is never evaluated. Such conditions are
dropped, and the copied values live in one arena without use lists.
2026-10-15 08:22:09 +13:00
wh1tropeandCursor b44ee9c45b perf(shader): intersect dominator sets as bitsets
Structurizing recomputes dominators after every CFG rewrite, and each block started from a vector of every block id. The same fixed point now runs on bitsets and still writes the sorted id lists.

Co-authored-by: Cursor <[email protected]>
2026-10-14 21:20:45 +02:00
Adrià Franch 5aa886ee96 fix(web): drop code comment 2026-10-14 21:20:10 +02:00
VitzS7 c721f16bc4 fix(web): name SELF containers instead of counting them as missing ELFs
Before: a dump taken straight from a package holds SELF containers, so the app
root has no ELF, and converting it answered "Expected exactly one executable ELF
in the app root; found 0" while the Convert button stayed disabled, with nothing
pointing at what was wrong. A sce_module entry that is a SELF was dropped as well
without a word, although docs/user/USAGE.md documents the relinker skipping
SELF/fSELF containers with a warning.

Now the first bytes of each root file are matched against SELF_MAGIC_PS4 and
SELF_MAGIC_PS5 (the two containers pkg-to-anyps5 unwraps), so an executable case
names the file and asks for the app to be unwrapped first, and a skipped module
joins the same warnings list the conversion gate already reads, which makes the
acknowledge box appear for it too.
2026-10-14 21:20:10 +02:00
Adrià 19fc5a8eda Merge pull request #5228 from LeandroLP23/ci/skip-redundant-jobs
ci(build): skip test jobs a push to main does not touch, and duplicate relinker hosts
2026-10-14 21:19:48 +02:00
Dean b1d07f8b12 Merge pull request #3607 from itsbo5/feat/libSceNpCommerce-dialog-open2
feat(libSceNpCommerce): implement sceNpCommerceDialogOpen2
2026-10-15 08:19:19 +13:00
Evgeniy KazarinandClaude Opus 5.5 17ded56f12 feat(libkernel): apply SO_RCVTIMEO and SO_SNDTIMEO on a guest socket
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 22:18:23 +03:00
TaymKal 1f11d60fee fix(conventions): check only changed lines in renamed files 2026-10-14 21:18:21 +02:00
Evgeniy KazarinandClaude Opus 5.5 7e79f36ed8 feat(libkernel): answer TCP_NODELAY, SO_NOSIGPIPE and SO_NBIO on a guest socket
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 22:17:26 +03:00
codingreapermapsandClaude Opus 5.5 f8e8aca5c1 fix(agc): accept fractional-even tessellation partitioning
VGT_TF_PARAM.PARTITIONING 3 now compiles to Vulkan's fractional-even
spacing, which radeonsi programs as PART_FRAC_EVEN. Its factors are
bounded at 64 like integer partitioning; Vulkan raises the remaining
ones to at least 2, the D3D11 range for this mode.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 21:16:21 +02:00
Semir Kabir ea13f6a4b5 fix(agc): print a GPU queue worker failure when it is first stored 2026-10-14 19:15:53 +00:00
Dean 4c1de0c0ca Merge pull request #4706 from TripyFox/fix/3274-indirect-calls
feat(shader): link callees of calls whose target is loaded from a table
2026-10-15 08:15:26 +13:00
Avijit SinghandCopilot e7fb683655 test(web): cover rate-limit retry responses
Assert both GitHub rate-limit response statuses can use the published, checksum-verified site libraries.

Co-authored-by: Copilot <[email protected]>
2026-10-15 00:40:27 +05:30
Avijit Singh f496c08547 fix(web): continue conversion when release API is rate limited
Use the published, checksum-verified library archive when GitHub's public rate limit prevents the latest-release check. Keep rejecting other request failures and version mismatches, and cover both paths in the worker test.\n\nCo-authored-by: Copilot <[email protected]>
2026-10-15 00:40:27 +05:30
Adrià a050f856f1 Merge pull request #5233 from hugodearaujo/fix/user-service-lifecycle
fix(libSceUserService): report initialization the way the console does
2026-10-14 21:07:55 +02:00
Adrià b0a4753de1 Merge pull request #5230 from hugodearaujo/fix/inherit-creator-priority
fix(libkernel): give an inheriting thread its creator's priority
2026-10-14 21:07:30 +02:00
Dean f72b62ff2a Merge pull request #5790 from Amoenus/codex/test-untracked-store-lifetime
test(agc): keep untracked store surfaces alive through queued work
2026-10-15 08:06:24 +13:00
Adrià 9811e9d4b7 Merge pull request #5218 from YossiYad/fix/guest-arena-mapping-hint
fix(libkernel): fall back below a mapping hint with no room above it
2026-10-14 21:05:23 +02:00
Adrià 066442c961 Merge pull request #5143 from xXPBSXx/fix/mprotect-unmapped-einval-v2
fix(libkernel): fail sceKernelMprotect over an unmapped range with EINVAL instead of aborting
2026-10-14 21:05:05 +02:00
Mehran 5b53712c7c perf(agc): present 8-bit integer resident images without a readback 2026-10-14 22:04:55 +03:00
Adrià c70051255c Merge pull request #5077 from 0xRickx/fix/libscevideodec2-coded-size
fix(libSceVideodec2): report the coded picture size
2026-10-14 21:03:52 +02:00
Adrià 5922a728c6 Merge pull request #5020 from xXPBSXx/fix/socket-fd-flags
fix(libkernel): answer F_GETFD and F_SETFD on a guest socket
2026-10-14 21:03:19 +02:00
Adrià 16d7ad035c Merge pull request #4933 from nicolasfalesy/fix/libkernel-poll-scenet-sockets
fix(libkernel): poll libSceNet sockets with the host wait
2026-10-14 21:02:57 +02:00
Adrià 6e30d6423b Merge pull request #5373 from MiniRML/fix/debt-external-url-links
fix(tools): preserve external URLs during debt migration
2026-10-14 21:01:03 +02:00
Adrià 8f51d3b91e Merge pull request #5370 from MiniRML/fix/web-reserved-device-names
fix(web): reject superscript Windows device names in archives
2026-10-14 21:00:42 +02:00
Yunus Shaikh 5b49ab30b2 fix(agc): show the last frame's numbers in the performance overlay below 1 fps
Below 1 fps no one-second window holds two presents, so the overlay
showed FPS: 0.0, GPU: 0.0 MS and DRIVER: 0.0 MS, which is the common
case for titles that run slowly today. When the last second holds fewer
than two presents, FPS is now the last frame's rate, 1000 divided by its
time in ms, and GPU and DRIVER are that frame's growth of each total.
With two or more presents in the last second the numbers are the last
second's as before, so the two modes meet at 1 fps.

FPS below 1 is shown with two decimals: a frame every 2 s reads 0.50 and
one every 12 s reads 0.08. Times keep their format and their 9999 cap,
which USAGE.md now states for frames of 10 s or more. Nothing changes
while the overlay is hidden.
2026-10-14 19:00:29 +00:00
Adrià fd6c5ad9c1 Merge pull request #5363 from MiniRML/fix/progress-transitive-stub-helpers
fix(progress): follow chains of local stub helpers
2026-10-14 20:59:16 +02:00
Dean 3bb8b6c198 Merge pull request #5760 from oneandonlydean/fix/storage-gpu-store-saved-bytes
fix(agc): save the bytes a GPU-side store writes outside the write watch
2026-10-15 07:58:34 +13:00
Adrià 067d13037e Merge pull request #5362 from thuanquang/test/guest-module-args-data-segment
test(relinker): keep the guest_module_args fixture's GOT out of executable memory
2026-10-14 20:58:30 +02:00
Adrià 2b0d680903 Merge pull request #5360 from thuanquang/fix/conventions-type-change
fix(conventions): pair each type change with both of its patch headers
2026-10-14 20:58:06 +02:00
Adrià 6fe6764b9b Merge pull request #5354 from pushkarreddyy/fix/conventions-modern-agent-files
fix(conventions): reject modern agent instruction files
2026-10-14 20:57:48 +02:00
Adrià e6e36c1187 Merge pull request #5321 from lubaxe/fix/agc-registered-cover-adjacent-ranges
fix(agc): count adjacent registered allocations as covering a storage-image write-back
2026-10-14 20:57:28 +02:00
Kang, Harry Zixuan b2c9e91102 fix(relinker): audit dependencies without imported functions 2026-10-14 20:57:16 +02:00
Adrià 9d48178c55 Merge pull request #5310 from Ondra97/codex/fix-audit-elf-versions
fix(tools): reject unsupported ELF versions in import audits
2026-10-14 20:56:41 +02:00
Adrià 06ae8eebed Merge pull request #5308 from Ondra97/codex/fix-audit-hash-load-bounds
fix(tools): keep ELF hash metadata inside load mappings
2026-10-14 20:55:54 +02:00
Adrià 08a7f7a8cf Merge pull request #5298 from Ondra97/codex/fix-macos-runpath-lists
fix(relinker): emit separate macOS run paths from ELF lists
2026-10-14 20:55:24 +02:00
Adrià 6bb4fdc4f3 Merge pull request #5286 from Ondra97/codex/fix-windows-icon-chunk-types
fix(relinker): reject invalid PNG icon chunk types
2026-10-14 20:54:27 +02:00
Avijit Singh 7cc555561f docs(web): describe failed folder output cleanup 2026-10-14 20:54:00 +02:00