Commit Graph
14017 Commits
Author SHA1 Message Date
Yunus Shaikh 4bd379b6ed Merge main into perf/agc-remember-evicting-refusals
Resolves the AGC driver debt file bullet by bullet.
2026-10-18 17:12:07 -07:00
Yunus Shaikh 4bbb952fac Merge main into perf/agc-host-import-aligned-blocks
Resolves the AGC driver debt file bullet by bullet.
2026-10-18 17:11:27 -07:00
Yunus Shaikh 03fab5cffc Merge main into perf/agc-host-import-blocks
Resolves the AGC driver debt file bullet by bullet.
2026-10-18 17:10:33 -07:00
Dean a373e85e56 Merge pull request #7194 from XairRrR/fix/agc-htile-later-slice-clear
fix(agc): take a later slice's HTILE clear when every word has ZMask 0
2026-10-19 13:09:45 +13:00
Dean 60fb8078c7 Merge pull request #6067 from meh7an/perf/libs-mimalloc-windows
feat(libs): let relinked Windows games opt into mimalloc
2026-10-19 13:09:36 +13:00
Dean fea306dff7 Merge pull request #7681 from MarcZX10/codex/fix-agc-register-defaults2-layout-7678
fix(libSceAgc): preserve versioned register defaults layout
2026-10-19 13:09:32 +13:00
Adrià 55a3ac6440 Merge pull request #6405 from fdfawef324/claude/shader-structurizer-branching-returns
fix(shader): give a selection a merge when one arm returns through nested branches
2026-10-19 02:07:54 +02:00
Adrià Franch da5b7e3334 docs(debt): note that macOS output traps GS-prefixed instructions without a memory operand too 2026-10-19 02:06:49 +02:00
David 414c1f96a6 docs(debt): record that guest GS accesses trap in macOS output 2026-10-19 02:06:44 +02:00
David 6f89fd706f test(relinker): trap a GS access in a macOS module without a TLS segment
The macOS writer sets up guest TLS only for a module with a non-empty PT_TLS. A GS access in a module without one must still be trapped.
2026-10-19 02:06:44 +02:00
David 8da24830ac test(relinker): cover GS loads, stores and ALU reads trapped in macOS output
macos_gs_traps converts the forms Wine's ntdll in Prospero Win (PPSA99995) uses, a store, an ALU read and a register-address form shorter than a jump, and checks that each becomes ud2 and NOP padding of its own length before the next instruction, with none of the original bytes left.
2026-10-19 02:06:43 +02:00
David 55c6254ee6 fix(relinker): trap guest GS accesses in macOS output instead of refusing the module
On x86-64 macOS, including under Rosetta, the host owns GS (it holds the
pthread TSD base, which the macOS TLS stubs read), so a guest instruction
that reads or writes through GS cannot be translated, and the TLS scan
refused the whole module. Prospero Win's (PPSA99995) Wine ntdll has six.
Overwrite each in place with ud2 and NOP padding of its own length, as the
Windows writer does in #6102, and refuse one that is also an AMD-only
trampoline site.
2026-10-19 02:06:43 +02:00
Yunus Shaikh 106b79e007 Merge main into perf/shader-image-table-reuse-v3-pr
The data-hit verification keeps this branch's pending-span query on its ShaderMemory and takes #5958's CaptureInvocation, which retries a capture with converted samples.
2026-10-18 17:04:23 -07:00
Yunus Shaikh 10b798fb99 Merge main into perf/shader-image-table-reuse-v3-pr
Keeps this branch's tagVariantRuns declaration next to main's dumpRequest suffix parameter in Driver.hpp, and reads #6232's pointer-chain test words from its table's snapshot, where this branch keeps them.
2026-10-18 17:03:39 -07:00
Yunus Shaikh 970e81443d test(agc): create the driver before the queued-draw vouch takes its stamp
The first vouch's pending-write query created the driver, and the driver's construction ends a guest-allocation mutation, which moves the layout generation the stamp holds. The second vouch then refused the table on a layout change the queued draws didn't make. The test now creates the driver first, so both vouches compare the stamp against the layout the draws run under.
2026-10-18 17:03:09 -07:00
Muhammad Wasif Ali WasifandClaude Opus 5.5 ddb774ad26 feat(libkernel): map regular files with mmap on Windows
A shared mapping is a view of a file section created on the descriptor's
handle, read-write when the descriptor is, otherwise read-only. A private
mapping is a copy of the file read at mmap, as POSIX allows. Anonymous
shm_open objects and JIT shared memory descriptors are temporary files on
Windows, so mmap now maps them too (it failed with EOPNOTSUPP before).
mprotect of a mapped view above the view's protection fails with EACCES
before any bookkeeping changes. The cases Windows cannot represent are
listed in the libkernel debt.

Dusklight (PPSA99305) uses SQLite in WAL mode, which maps its -shm file.
On Windows main f0634088b every start logged "Failed to start
transaction: disk I/O error" for its Dawn and pipeline caches (3 of 3
runs); with this change the caches initialise and their WAL files fill
(4 of 4 runs). The title reaches its menu either way.

A shared mapping may end inside the 16 KiB page that holds the end of
the file, as POSIX mmap allows: the view ends with the file's last 4 KiB
host page, which Windows zero-fills past the end, the rest of the guest
page is private zero pages, and the file never grows. A mapping that
reaches a whole page past the end still fails with EOPNOTSUPP.

PS5LM Plus (PPSA99581) loads its model with llama.cpp, which maps the
whole GGUF file shared and read-only. With a 491,400,032-byte model,
Windows main 5de7a46e0 and this change without the last page logged
"llama_model_load: error loading model: mmap failed: Operation not
supported" (3 of 3 runs); now the model loads and the completion of
"The capital of France is" starts with " Paris" (3 of 3 runs).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 05:02:25 +05:00
Adrià 3b20a366ca Merge pull request #6167 from freshstart2066-create/feat/libc-ceill-floorl
feat(libc): implement ceill and floorl
2026-10-19 02:00:27 +02:00
Adrià 00c948768d Merge pull request #6365 from eljackjoestar-cmd/fix/agc-copied-write-overlap
fix(agc): limit copied-writer waits to copied ranges
2026-10-19 01:59:29 +02:00
Adrià 6493ae1276 Merge pull request #6370 from pushkarreddyy/feat/libSceSysmodule-proprietary-voice-chat-helper
feat(libSceSysmodule): register libSceProprietaryVoiceChatHelperPrx module id 0x132
2026-10-19 01:58:59 +02:00
Adrià ea41ee4031 Merge pull request #6410 from DavidSamir/fix/relinker-macos-tls-overlapping-decode
fix(relinker): skip prefixed decodings inside an earlier instruction in the macOS TLS scan
2026-10-19 01:58:54 +02:00
Adrià 456f8513bc Merge pull request #6400 from Capmare/feat/fontft-support-formats
feat(libSceFontFt): implement the font format support exports
2026-10-19 01:57:51 +02:00
T3cm0andClaude Fable 5.1 e191a132ab feat(libSceHmd2): return the console's display and mirroring buffer sizes
Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-18 18:57:14 -05:00
Adrià a9e7267465 Merge pull request #6418 from jweidenh/codex/optional-rela-table
fix(relinker): accept executables without a RELA table
2026-10-19 01:56:53 +02:00
Adrià ce8c71a78e Merge pull request #6411 from Nixitov/feat/fchown
feat(libkernel_sys): implement fchown
2026-10-19 01:56:48 +02:00
Adrià 925b85e43a Merge pull request #6375 from sanxchep/codex/shader-export-layout-fallback
fix(agc): preserve position export layout on undecodable tail
2026-10-19 01:56:44 +02:00
Adrià 3d0cd98d8e Merge pull request #6363 from hypermoist/fix/agc-timing-queries-no-wait
fix(agc): read GPU timing queries without waiting on unwritten ones
2026-10-19 01:50:36 +02:00
Adrià 7732434367 Merge pull request #6376 from Get-fix/ps4/libscefreetype
feat(libSceFreeType): implement the six FreeType functions OpenOrbis samples use
2026-10-19 01:48:40 +02:00
Adrià 56ea17e5d7 Merge pull request #6369 from JJenkx/fix/ngs2-voice-handle-errors
fix(ngs2): return PS5 errors for invalid voice handles
2026-10-19 01:48:35 +02:00
Adrià 278daa3560 Merge pull request #6381 from SandstromPL/fix/relinker-ps4-needed-module-tag
fix(relinker): read the PS4 needed-module tag in guest modules
2026-10-19 01:47:24 +02:00
Adrià 9d4966c265 Merge pull request #6343 from klosixgaming-arch/feat/kevent-standard-input
feat(libkernel): accept a kevent read event on descriptor 0
2026-10-19 01:46:19 +02:00
Yunus Shaikh 78b0e2f281 Merge main into fix/agc-sample-location-grid-exact
Takes #6215's framebuffer owners and target-owned sampled textures, keeping this branch's sample-order steps after the framebuffer and the sampled-only usage next to the storage order view.
2026-10-18 16:43:28 -07:00
Adrià a6dd29b3da Merge pull request #6215 from Ondra97/codex/fix-msaa-retired-target-lifetime
fix(agc): reclaim retired multisample color targets
2026-10-19 01:37:13 +02:00
Adrià 0f121739ce Merge pull request #6331 from hypermoist/feat/libc-generic-atomics
feat(libc): implement the 16-byte __sync builtins and __atomic_is_lock_free
2026-10-19 01:37:09 +02:00
Adrià 22ed7caf05 Merge pull request #6353 from EdouardSence/feat/pad-keyboard-shake
feat(pad): add a Shake input that swings the reported motion while held
2026-10-19 01:36:04 +02:00
Savvanis Spyros c3d1363df3 Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into fix/sce-code-gaps
# Conflicts:
#	docs/dev/debt/relinker.md
2026-10-19 02:35:44 +03:00
Adrià 2c2abc453b Merge pull request #6354 from SandstromPL/fix/relinker-plt-before-code
fix(relinker): find the PLT before the code in PS4 modules
2026-10-19 01:32:36 +02:00
Adrià 8f49a89958 Merge pull request #6346 from SleglJan/pr/unchanged-shared-block
perf(agc): stores beside a range in its 64 KiB block leave the range unchanged
2026-10-19 01:32:32 +02:00
Adrià 84c1a4d9a2 Merge pull request #6342 from pushkarreddyy/feat/libSceVoice-enable-disable-chat
feat(libSceVoice): implement sceVoiceEnableChat and sceVoiceDisableChat
2026-10-19 01:25:53 +02:00
Adrià 50bb0b95cf Merge pull request #6330 from hypermoist/feat/libc-float-builtins
feat(libc): implement the compiler-rt floating-point builtins
2026-10-19 01:24:52 +02:00
Adrià 58242e7bcb Merge pull request #6320 from fdfawef324/codex/copy-transfer-budget-current-1015
fix(agc): count transient copy buffers toward the recorder budget
2026-10-19 01:24:48 +02:00
Adrià a4a1021208 Merge pull request #6234 from Ondra97/codex/fix-file-write-gpu-coherence
fix(libs): flush pending GPU results before file writes
2026-10-19 01:24:42 +02:00
Adrià 0745b29c90 Merge pull request #6332 from SleglJan/pr/fold-loop-phis
fix(shader): repeat phi folding until no phi folds
2026-10-19 01:23:34 +02:00
Adrià b8b9fed361 Merge pull request #6324 from ps54all/fix/agc-alias-copy-store-destination
fix(agc): store an image-copied buffer copy's destination before later labels
2026-10-19 01:23:29 +02:00
Adrià Franch cb7fd81933 docs(libSceSysmodule): record module 0x132 name under Unknown function info 2026-10-19 01:23:00 +02:00
pushkarreddyy 16df3d1536 feat(libSceSysmodule): register libSceProprietaryVoiceChatHelperPrx module id 0x132 2026-10-19 01:22:53 +02:00
Adrià 64b57d1b02 Merge pull request #6328 from aaro56/fix/relinker-preserve-input-hardlinks
fix(relinker): preserve inputs behind Windows executable hard links
2026-10-19 01:17:35 +02:00
Adrià cf72c02064 Merge pull request #6325 from amirerfantim/refactor/relinker-remove-dead-code
refactor(relinker): remove functions nothing calls
2026-10-19 01:17:30 +02:00
Adrià f849e58cfa Merge pull request #6323 from Gabrieljr42/feat/progress-module-json
feat(tools): add a module filter and JSON output to progress.py
2026-10-19 01:17:26 +02:00
EdouardSenceandClaude Opus 5.5 d71853cf25 feat(pad): add a Shake input that swings the reported motion while held
Some titles stop on a prompt to shake the controller, which keyboard players
and controllers without motion sensors cannot answer. While the Shake input is
held (X by default), the composed pad state reports motion with the
acceleration and angular velocity flipping sign every 50 ms; a controller's own
sensor data is used otherwise.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 01:16:53 +02:00
Adrià 8e7904b201 Merge pull request #6322 from hypermoist/feat/libc-integer-builtins
feat(libc): implement the compiler-rt integer builtins
2026-10-19 01:15:26 +02:00