Commit Graph
14017 Commits
Author SHA1 Message Date
Avijit Singh cb17f624cc feat(web): show folder cleanup progress 2026-10-14 20:54:00 +02:00
Avijit Singh da1a2e02a7 ci(web): test folder recovery on pull requests 2026-10-14 20:53:49 +02:00
Avijit Singh b82adb6721 test(web): run folder recovery checks with web suite 2026-10-14 20:53:49 +02:00
Avijit Singh bcedeba6a7 fix(web): abort active writes before output cleanup 2026-10-14 20:53:49 +02:00
Avijit Singh 6447310e24 fix(web): remove partial folder output on failure 2026-10-14 20:53:49 +02:00
Avijit Singh fd78859b66 refactor(web): track folder output ownership 2026-10-14 20:53:49 +02:00
Avijit Singh 9457a93d8d feat(web): model transactional folder output 2026-10-14 20:53:49 +02:00
Adrià 6117ba743e Merge pull request #5283 from Ondra97/codex/fix-audit-dynamic-terminator
fix(tools): stop ELF dependency audits at DT_NULL
2026-10-14 20:53:44 +02:00
Adrià 93cd77a0c0 Merge pull request #5281 from parl0v/feat/copy-hle-stream-kernel
feat(agc): copy HLE for the 16-byte stream copy kernel
2026-10-14 20:53:16 +02:00
Adrià 918565b662 Merge pull request #5273 from Ondra97/codex/fix-import-audit-module-collisions
fix(tools): reject ambiguous guest modules in import audit
2026-10-14 20:52:47 +02:00
Adrià a1b6be7ef0 Merge pull request #5269 from Nixitov/feat/relinker-weak-imports
fix(tools): do not report weak imports as a title's current stop
2026-10-14 20:52:19 +02:00
Adrià 5010908d6d Merge pull request #5225 from devavijitsingh/fix/web-linux-input-budget
fix(web): exclude Windows-only icon from Linux conversion budgets
2026-10-14 20:50:09 +02:00
XairRrR cf914b5102 fix(agc): write nothing for an empty register list
sceAgcCbSetShRegistersDirect and the other register list writers threw on
a count of 0 although the matching size functions report 0 words for it.
PPSA05684 calls the writer with an empty list at its main menu and
terminated. An empty list now writes no packet and returns the cursor,
as its size says; a null buffer still throws.

AI-assisted: yes
2026-10-14 20:50:00 +02:00
Adrià 1a2d01ab03 Merge pull request #5211 from veosett/codex/recorder-coverage
test(agc): register the full recorder run with CTest
2026-10-14 20:49:28 +02:00
XairRrR 9206b5ae4b fix(libSceFiber): run a fiber on its own context when the context is large
Since 794714983 every fiber ran on an mmap'd host stack so that host calls
cannot overrun the small contexts PPSA01341 packs next to each other. A
title that derives state from the stack pointer then reads the wrong
memory: PPSA05684's job fibers have 512 KiB contexts at 1 MiB-aligned
addresses and find their job record by masking rsp with ~0xfffff, so the
job system lost track of a GameInit job and the game waited forever
right after loading big4r/actor76.txt. Its 64 KiB fibers fault later on
a host stack too.

A fiber now gets a host stack only when its context is smaller than
64 KiB; a larger context is the stack again, as on the console. The
limit sits between the 16 KiB contexts that need protection and the
64 KiB ones that need the guest stack (technical debt entry). The fiber
test runs a 512 KiB fiber and checks that its stack is in its context;
it fails without this change.

AI-assisted: yes
2026-10-14 20:47:25 +02:00
Adrià 2b7e3ce69f Merge pull request #3899 from GalaxyGamingFR/fix/progress-wrapper-call-match
fix(progress): ignore member and qualified calls to stub wrappers
2026-10-14 20:46:48 +02:00
RedNixer 73e843bfde fix(tools): accept BOM in performance summaries 2026-10-14 20:46:29 +02:00
KernelPanicNTandClaude Opus 5.5 7d42db40a3 feat(libSceAppContent): implement sceAppContentGetAddcontDownloadProgress
The signature (uint32_t service label, const NpUnifiedEntitlementLabel*,
progress*) follows SharpProspero Interop/AppContent/AppContent.cs.
dlc_emu dlc_content.cpp (fcf69b16) answers PARAMETER for a null label or
progress and NOT_FOUND for a label that is not installed additional
content. No additional content is ever installed here, as
sceAppContentAddcontMount, sceAppContentAddcontEnqueueDownload and
sceAppContentAddcontDelete already model, so every other call answers
NOT_FOUND and the progress, whose 16-byte layout SharpProspero gives,
is never written.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 18:44:42 +00:00
KernelPanicNTandClaude Opus 5.5 cf762829d1 feat(libSceFont): implement sceFontCharactersRefersTextCodes and text code stepping
sceFontCharactersRefersTextCodes fills a 64-byte FontTextCodes with the
order and code of a text character and keeps the current, start and
term characters at +0x28, +0x30 and +0x38. The traversal follows the
PS4 11.00 libSceFont.sprx disassembly posted in the review of #4050,
which implemented the same rules: Refers never compares the character
with the term and returns null for a clustered or synthetic character,
sceFontTextCodesStepNext returns null at the term after visiting it,
sceFontTextCodesStepBack returns null at the start character, and both
steps skip synthetic characters. Null from StepNext at the end of the
chain and from StepBack at the head of the chain is assumed and not
covered by the report.

The signatures follow Orbital's IDA type database and SharpProspero. A
null cursor or output returns null as in KytyPS5; a null text character
throws. guest_font_tests gets configure_windows_unwind so the expected
exception reaches the test on Windows.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 18:44:41 +00:00
SaloQT 93ab137194 test(recompiler): cover prebuilt shader pack loading
Build packs from EncodeEntry output and check the hit and miss paths,
an entry stored under another key, a truncated entry, a damaged index,
an out-of-range record, a foreign compiler source version and an
unknown format. A child process covers pack discovery on a real disk
load, the ANYPS5_NO_PREBUILT_SHADERS opt out and fall-through to the
writable cache. ARCHITECTURE.md describes where the prebuilt lookup
sits.
2026-10-15 05:44:34 +11:00
SaloQT 24c934a770 feat(recompiler): load prebuilt shader packs before the writable cache
Read-only packs of encoded cache entries are mapped once at startup from
the shader cache prebuilt directory (plus ANYPS5_PREBUILT_SHADER_CACHE,
opt out with ANYPS5_NO_PREBUILT_SHADERS). Disk loads try packs and loose
prebuilt folders first and fall through to the writable cache and the
compiler on a miss. Keys, source version, format and payload checksums
are validated exactly as for writable entries, and interval logs report
prebuilt hits, misses, rejections and load timings.

Depends on the uncached compile entry point only through the offline
tool that produces these packs; the loader itself is independent.
2026-10-15 05:44:34 +11:00
Adrià e27ff7c545 Merge pull request #5819 from GitamarT045T3R/fix/windows-lstat-symbolic-links
feat(libkernel): report relative symbolic links in lstat on Windows
2026-10-14 20:44:09 +02:00
toxinexx e7219e4bc4 fix(libSceAudioOut): park guest audio calls at exit before the port tables are destroyed
The library registered no shutdown callback, so a guest mixer thread kept calling sceAudioOut2ContextPush while exit ran the static destructors and mixed from the freed port table (#5864). Exports that read the port tables or output audio now hold a guard: once exit starts they park the thread with LibcAwaitExit_nid_postfix, and the shutdown callback waits for the calls already inside. A push waiting for a grain from sceAudioOut2ContextAdvance also wakes on the shutdown token, so the callback does not wait for an advance that is parked.
2026-10-14 20:43:01 +02:00
zmeizyandClaude Opus 5.5 f11382faf4 fix(shader): translate v_ldexp_f32 in f32 denormal modes 1 and 2
Mode 1 keeps subnormal inputs and flushes a result below 2^-126 to a
zero of its sign; mode 2 flushes subnormal inputs and rounds a subnormal
result in the f32 round mode, as measured on RDNA2 (gfx1030) in every
f32 round mode at IEEE=0 and IEEE=1. Both modes threw before.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 21:39:55 +03:00
zmeizyandClaude Opus 5.5 659eddb107 fix(shader): translate f32 compares in f32 denormal modes 1 and 2
v_cmp_X_f32 and v_cmpx_X_f32 flush their denormal inputs by bit 0 of the
FLOAT_MODE f32 denormal field, as measured on RDNA2 (gfx1030): mode 1
keeps them and mode 2 flushes them. Both modes threw before.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 21:39:54 +03:00
NikoandClaude Opus 5.5 68bddf8083 fix(libSceNpCommerce): open sceNpCommerceDialogOpen2 as prosper does
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 07:39:34 +13:00
virp-mta 2b4cb387aa feat(libSceNpCommerce): implement sceNpCommerceDialogOpen2 2026-10-15 07:39:34 +13:00
Dean bebff8b0e8 Merge pull request #3295 from SynnZer0/fix/libkernel-close-host-streams
fix(libkernel): keep host standard streams open on guest close
2026-10-15 07:38:36 +13:00
Dean 43ea7688cf Merge pull request #5511 from JJenkx/perf/spirv-bounded-redundancy
perf(shader): avoid redundancy traversal map copies
2026-10-15 07:38:13 +13:00
Adrià 73efd9407d Merge pull request #5212 from ducloc080202/feat/share-native-capture-status
refactor(libSceShare.native): drop duplicated exports
2026-10-14 20:36:48 +02:00
Adrià 456ce66bb0 Merge pull request #5163 from mazen320/fix/agc-init-fallback-out-of-range
fix(agc): return 0 for out-of-range sceAgcInit without table lookup
2026-10-14 20:35:43 +02:00
Ondra97 fd9525a2ea fix(agc): release sampled views after storage eviction 2026-10-14 20:34:57 +02:00
Adrià 587b63d2a3 Merge pull request #5073 from krishalivaibhav/codex/memory-service-lifetime
fix(memory): preserve process-owned services during exit
2026-10-14 20:33:53 +02:00
Adrià 3433555888 Merge pull request #5072 from 0xRickx/fix/libscejpegdec-reference-abi
fix(libSceJpegDec): use the JpegDec parameter and image info layouts
2026-10-14 20:33:18 +02:00
Adrià 9f373a46a9 Merge pull request #5056 from 0xRickx/fix/libscenetctl-get-info
fix(libSceNetCtl): answer sceNetCtlGetInfo from the host IPv4 interface
2026-10-14 20:32:46 +02:00
Adrià 55320f48b5 Merge pull request #5054 from NFSS10/fix/agc-depth-plane-cube-gather
fix(agc): gather a sampled depth cube at the descriptor's layer offsets
2026-10-14 20:32:28 +02:00
Adrià cb893e0ff3 Merge pull request #5007 from gravelas/fix/agc-await-registration-preparation-at-submit
fix(agc): wait for queued registration preparations before accepting a submission
2026-10-14 20:31:56 +02:00
Adrià c5f6269796 Merge pull request #4767 from Swastik-51/fix/agc-fmask-decompress-msaa
fix(agc): handle FMASK decompress on MSAA targets
2026-10-14 20:31:07 +02:00
Adrià dc89131a1c Merge pull request #3864 from CnRJay/perf/libc-collect-view-walk
perf(libc): remember clean pages once per run in Windows write collects
2026-10-14 20:30:23 +02:00
Dean Galvin da47083cc0 perf(agc): create address-table compute pipelines before the GPU lock from the described set layout 2026-10-15 07:27:37 +13:00
Dean Galvin ae5309e1c5 test(agc): a new compute pipeline is created while another thread holds the GPU mutex 2026-10-15 07:27:37 +13:00
Karan Vora 7fae4549e3 perf(agc): create compute pipelines before taking the GPU lock
PrepareDispatch now creates a missing compute pipeline once the
descriptor set layout is known, so the driver's compile no longer runs
under GuestMemory::GpuMutex. Other queues, presentation and label
writes go on during it, and compiles from different queues overlap.
Two queues that need the same new variant create it once.

The pipeline is still created in dispatch() when the layout is only
built under the lock, or with APS5_LOCKED_BUILD=1. The creation passes
the context's PipelineCacheSynchronization to CreateComputePipeline.
2026-10-15 07:27:37 +13:00
MiniRML e2e57ce142 fix(tools): preserve Unicode paths in PR overlap checks 2026-10-14 20:26:25 +02:00
Adrià ea30c9274a Merge pull request #5214 from houcineBen/fix/agc-tg-size-wave-id
fix(shader): put the compute wave index in TG_SIZE[11:6]
2026-10-14 20:25:31 +02:00
MarcZX100 2898e58357 fix(tools): recognize assembly NID exports 2026-10-14 18:24:55 +00:00
Nesyth 2cf6b09fed test(agc): depth_surface_from_storage pins new depth surfaces taken from storage writes 2026-10-14 20:23:39 +02:00
Nesyth 7d898ae1ab fix(agc): start a new depth surface from the storage writes over its plane 2026-10-14 20:23:39 +02:00
Adrià 706ad6c20c Merge pull request #5198 from eljackjoestar-cmd/codex/audioout2-advance-grains
fix(audio): preserve completed AudioOut2 grains across threads
2026-10-14 20:22:51 +02:00
Adrià f25386b90b Merge pull request #5167 from LeandroLP23/perf/vcmp-test-recompile
test(agc): compile each v_cmp denormals program once for its eight input groups
2026-10-14 20:21:08 +02:00
Adrià 32e810db49 Merge pull request #5113 from XairRrR/fix/agc-depth-store-back-any-storage
fix(agc): store a written storage image over a depth plane into the surface
2026-10-14 20:17:41 +02:00