Commit Graph
6874 Commits
Author SHA1 Message Date
Adrià ef337cd082 Merge pull request #8104 from Celegans12/perf/agc-address-build-staging
perf(agc): stage the written elements of address-based compute builds in device memory
2026-10-23 13:28:29 +02:00
hypermistandClaude Opus 5.5 547e0b74dd docs(libc): record the console evidence for the sized __atomic calls
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_013XFS3FUfBtqCVfwmBrRQ6q
2026-10-24 00:28:24 +13:00
hypermistandClaude Opus 5.5 372d0738e9 Merge remote-tracking branch 'upstream/main' into feat/npcommon-runtime
#9037 landed as this branch already carried it, so keep this branch's pending exports and debt entries and add the runtime test beside main's.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_013XFS3FUfBtqCVfwmBrRQ6q
2026-10-24 00:28:23 +13:00
Evgeniy KazarinandClaude Opus 5.5 c442afa5d1 docs: name shared views as the pages the Windows write watch leaves read-only
CONVENTIONS.md still listed stable resident runs of at least 256 KiB as
the pages the write watch can leave read-only between collections on
Windows, and pointed at the debt/libc.md entry this PR removes. Resident
runs are no longer write-protected. What stays read-only between
collections on Windows are the pages of shared views (shared memory,
shared file mappings, and direct memory mapped at more than one guest
address), which Collect arms; the Windows direct-memory backing entry in
debt/libc.md describes the direct-memory case.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 19:27:37 +08:00
orezraeyandClaude Opus 5.5 d3f7b11e85 docs(libSceCesCs): record the measured Shift-JIS decoding sweep
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 08:27:22 -03:00
orezraeyandClaude Opus 5.5 4ec8b2d289 fix(libSceCesCs): encode EUC-JP and Shift-JIS as measured on a PS5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 08:27:22 -03:00
orezraeyandClaude Opus 5.5 23411115af refactor(libSceCesCs): let every MBCS string form check its output through the shared loop
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 08:27:15 -03:00
Dean c928aeb0a2 Merge pull request #10029 from oneandonlydean/fix/convertkeycode-ime-keyboard-type
fix(libSceConvertKeycode): map the user's keyboard type to the IME keyboard type
2026-10-24 00:21:18 +13:00
orezraeyandClaude Opus 5.5 5b014ba000 fix(libSceCesCs): terminate and count MBCS string conversions as measured on a PS5
The UTF-16 and UTF-32 string forms and the UTF-8 to Shift-JIS and EUC-JP
calls now share the measured string loop and UTF-8 decoder, and the
Japanese tests expect JIS X 0212 to be neither decoded nor encoded.
sceCesMbcsUcsContextInit rejects a null profile.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 08:17:51 -03:00
Adrià 0a5d810e9d Merge pull request #7659 from thuanquang/fix/db-plane-clear-state
fix(agc): start DB_Z_INFO and DB_STENCIL_INFO at their clear-state value
2026-10-23 13:17:23 +02:00
Santhosh Kumar 7f5367d4e4 chore: sync current main for PR 8286 2026-10-23 16:46:34 +05:30
Adrià af4700b98d Merge pull request #7692 from PhialsBasement/fix/agc-versioned-defaults-compact-types
test(libSceAgc): find MRT0 through the compact versioned register defaults
2026-10-23 13:14:16 +02:00
eliasbruno124-dev 9d4a0ebfcd docs(agc): describe deferred settle submission ordering 2026-10-23 13:10:59 +02:00
orezraey 0a33d53861 Merge branch 'fix/libscecescs-eucjp-measured-ps5' into fix/libscecescs-mbcs-strings-measured-ps5
# Conflicts:
#	core/libs/tests/GuestCes.cpp
2026-10-23 08:06:41 -03:00
atharv-honestly 30ab85a8db feat(libressl): implement certificate verification error strings 2026-10-23 16:33:43 +05:30
Dean f40cdebce2 Merge pull request #9208 from YossiYad/feat/gnm-neo-draw-packets
feat(libSceGnmDriverForNeoMode): write the draw, dispatch, compute wait and VGT control packets
2026-10-24 00:02:58 +13:00
orezraey 7735835ba8 Merge remote-tracking branch 'origin/main' into fix/libscecescs-eucjp-measured-ps5
# Conflicts:
#	core/libs/tests/GuestCes.cpp
#	docs/dev/debt/libSceCesCs.md
2026-10-23 08:02:15 -03:00
orezraey 803744fe85 Merge remote-tracking branch 'origin/main' into fix/libscecescs-scalar-measured-ps5
# Conflicts:
#	core/libs/prx/libSceCesCs/Export.cpp
#	core/libs/tests/GuestCes.cpp
#	docs/dev/debt/libSceCesCs.md
2026-10-23 07:55:22 -03:00
Daniele Giovane 13b1892fdd Merge main and address review for PR 8495 2026-10-23 12:45:54 +02:00
Daniele Giovane bc00fafac0 Merge main and address review for PR 9160 2026-10-23 12:45:54 +02:00
Dean e3d03fbae6 Merge pull request #7930 from AnthonyClemens/perf/agc-skip-empty-indirect
perf(agc): skip CPU-path indirect draws that draw nothing before buil…
2026-10-23 23:45:49 +13:00
Dean 812ed15875 Merge pull request #9047 from VakzOs/feat/libressl-des
feat(libSceLibreSsl): implement DES_set_key, DES_ecb_encrypt and DES_set_odd_parity
2026-10-23 23:38:53 +13:00
Santhosh Kumar ba318138b5 chore(libSceFreeType): sync main and preserve bitmap debt placement 2026-10-23 16:03:57 +05:30
JAB-devandClaude Sonnet 5.5 1c335b6ea9 Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into fix/audioout2-speaker-info-errors
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 12:33:19 +02:00
BunnyFlandClaude Opus 5.5 9aa0f22dc7 feat(libkernel): implement the system-ex version, lower-limit and trace memory queries
sceKernelGetSystemExVersion, sysKernelGetLowerLimitSysexVersion,
sysKernelGetLowerLimitUpdVersion and sceKernelGetTraceMemoryStats were
NotImplemented stubs in libkernel_sys. libkernel, libkernel_sys and
libkernel_web of firmware 13.42 answer them without asking the kernel:
empty strings, a zero version and zero statistics, with the null checks
and return codes the firmware uses, including the plain 22 of
sceKernelGetSystemExVersion.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 12:29:49 +02:00
Dean Galvin f9cbe3f1ac docs(libSceUserService): keep the keyboard type entry under the length limit 2026-10-23 23:29:29 +13:00
Dean Galvin 9ec09517ee fix(libSceConvertKeycode): treat oversized app metadata as a PS5 title
AppMetadata throws length_error for a title or title ID that does not fit its
buffer, which the title ID lookup did not catch, so a homebrew title with a long
ID made sceConvertKeycodeGetImeKeyboardType throw instead of using the PS5
fallback. Catch it with the other metadata failures and cover oversized,
malformed and missing metadata at the export. sceUserServiceGetKeyboardType also
gets a test that a malformed ANYPS5_LANGUAGE is rejected with the output left
untouched, and the debt entries say so.
2026-10-23 23:25:25 +13:00
Dean 513ca7e558 Merge pull request #9141 from MarrasFederico/feat/kernel-sys-pthread-scope-atfork
feat(libkernel_sys): implement the scePthread scope, atfork and setconcurrency forms
2026-10-23 23:18:24 +13:00
jacob6769 1d5d71aa21 Merge remote-tracking branch 'origin/main' into feat/ces-korean-big5-scalars
# Conflicts:
#	core/libs/prx/libSceCesCs/Export.cpp
#	core/libs/prx/libSceCesCs/PendingExports.cpp
#	docs/dev/debt/libSceCesCs.md
2026-10-23 19:17:52 +09:00
JAB-devandClaude Sonnet 5.5 3a66884153 Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into feat/agc-4-4-4-4-partial-writes
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 12:09:33 +02:00
JAB-devandClaude Sonnet 5.5 8415906b22 Merge branch 'feat/agc-4-4-4-4-color-target' into feat/agc-4-4-4-4-partial-writes
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 12:09:28 +02:00
Dean 59078c05f5 Merge pull request #8972 from simonbronk/feat/libSceCesCs-sbc-mbcs-utf16-utf32
feat(libSceCesCs): add UTF-16 and UTF-32 forms of the SBC and MBCS string conversions
2026-10-23 23:06:53 +13:00
JAB-devandClaude Sonnet 5.5 8b7dd6beb7 Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into feat/agc-4-4-4-4-color-target
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 12:00:34 +02:00
orezraey 5c7cdfda26 Merge remote-tracking branch 'origin/main' into fix/libkernel-close-standard-descriptors-measured-ps5 2026-10-23 06:55:14 -03:00
orezraey afcba0fa55 Merge remote-tracking branch 'origin/main' into docs/libc-math-measured-ps5 2026-10-23 06:55:05 -03:00
thuanquangandClaude 14d263c416 fix(agc): store the exact union of a linear target's drawn rectangles
A drawn target kept the bounding box of its draws' scissors, so a store
at a completion point also wrote the pixels between two disjoint
scissors, over CPU stores made there after the draws.

- The target keeps the clipped scissor rectangles. Two merge only when
  their union is a rectangle: one inside the other, or the same columns
  overlapping or touching in rows, or the same rows overlapping or
  touching in columns.
- The store still copies the rectangles' bounding box out of the image,
  but writes to guest memory, for each row, only the union of the
  column runs of the rectangles that cover that row.
- At most 16 rectangles wait for a completion point: the draw that
  brings a 17th stores the target right after it, with all of them.
- A target the rectangle store does not cover (attachment proxy, several
  mips or layers, 3D or DCC surface, results of a dispatch, fill or
  copy) is stored after each draw again, instead of whole at the next
  completion point.
- LinearTargetRectangleBound draws and waits once before its draws, so
  the target's upload runs before the CPU stores instead of in the same
  batch, adds CPU stores between the two scissors, and adds a case with
  17 one-row scissors and a CPU store between two of them.

Co-Authored-By: Claude <[email protected]>
2026-10-23 16:54:40 +07:00
thuanquangandClaude 24e2c28391 fix(agc): keep drawn linear target results through flush races and CPU-kept hooks
- MarkDrawn registers the scissor while any layer is pending instead of
  while the image is dirty. A flush on another thread can take the image
  out of the pending set between MarkSliceDirty and the registration;
  layerPending changes only under the GPU lock, so the flusher, which
  reads the drawn area after taking that lock, stores the widened area.
- AccessKeptByCpu no longer skips or evicts a drawn target. Its store
  writes CPU-stamped blocks inside the drawn rectangle, so the hook's
  CPU-kept rule would drop the draw's results.
- A drawn target that is stored whole keeps main's rule that CPU-written
  64 KiB blocks stay the CPU's.
- A linear target that is no longer cached is stored after its draw, as
  before: the pending registry holds raw pointers.
- LinearTargetCompletionPoints skips without host import, where the
  target is never resident. LinearTargetCpuWrites adds a driver read of
  the target between the CPU stores and the store.

Co-Authored-By: Claude <[email protected]>
2026-10-23 16:54:40 +07:00
thuanquangandClaude c7f9eaa30e fix(agc): close two ordering gaps of the drawn linear target stores
- A flush from a thread without the GPU lock takes the lock before it takes a drawn target out of the pending set, so a flip, label or interrupt on the queue worker cannot run between the two and get ahead of the target's store.
- A label written on the GPU stores the drawn targets first and submits that store with the label, so the label's end-of-pipe interrupt is not held back to a later submission.
- The pending-writer check skips the target's own earlier stores only when the flush stores that target alone.

Co-Authored-By: Claude <[email protected]>
2026-10-23 16:54:39 +07:00
Dean c188e01a42 Merge pull request #9315 from MarrasFederico/feat/ngs2-system-rate-grain-codes
fix(libSceNgs2.native): return the module's codes from sceNgs2SystemSetSampleRate and sceNgs2SystemSetGrainSamples
2026-10-23 22:54:32 +13:00
orezraey 82b3fedc95 Merge remote-tracking branch 'origin/main' into fix/libc-strftime-measured-ps5
# Conflicts:
#	docs/dev/debt/libc.md
2026-10-23 06:54:02 -03:00
Adrià e5d9c923db Merge pull request #6951 from alfalfa-star/perf/agc-span-mirror
perf(agc): memoize host import run bounds per lease snapshot
2026-10-23 11:52:55 +02:00
PacukaandClaude Opus 5.5 6edd825f14 fix(libSceAgcDriver): update MEM_SEMAPHORE words atomically
A type 0 signal read the semaphore, added one and wrote it back, so an
increment made by a CPU thread or another queue in between was lost.
Signals now store or add with atomic operations and a wait takes one
with a compare-exchange. The new test races two queues and a CPU thread
incrementing the same word.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 11:52:02 +02:00
thuanquangandClaude 0ec6032d23 fix(agc): store resident linear color targets at completion points, limited to their drawn rectangle
A recorded draw into a resident linear color target stored the whole
image to guest memory right after the draw. Every draw copied the full
surface, waited for the previous draw's store in the open batch (the
pending-writer check of FlushPending), and the recorded copy landed over
CPU stores made after Draw returned (#8152).

A draw now records its scissor, clipped to the image, as a union
rectangle in the target and lists the target as drawn. The listed
targets are stored before each point where the guest can first observe
the draws' completion: a flip (inside its locked block, before the
flip's submit, so the flip's end-of-pipe interrupt and the presenter
follow the store), a drain (which covers APS5_SYNC_FLIP=1),
VulkanDevice::WaitIdle, a label the GPU writes for the graphics queue
(WriteLabelOnGpu), and an interrupt-only RELEASE_MEM in
preparePacketMemory and in commitLabel, which submit the store's batch
before the interrupt can be delivered. The idle store, the access hooks
and the eviction store are unchanged and also store by rectangle.

A store of a drawn target copies the rectangle out of the image and
writes it row by row at the guest pitch into the host import, stamped
with one MarkWritten per run of 64 KiB blocks. A block that only other
driver stores wrote since the target's generation keeps the old rule.
In a block the CPU wrote, or that changed outside the write watch, only
the rectangle's rows are stored, so CPU stores outside the rectangle
stay, and the target re-uploads at its next use. A target with an
attachment proxy, several mips or layers, a 3D or DCC surface, or
results of a dispatch, fill or copy is stored whole at the same points.
A store no longer waits for the same target's previous store: the
pending-writer check skips the write notes of the target's own stores
when it has a host import.

APS5_PROFILE_DRAW adds the drawn targets' stores by reason and the
pending drawn targets (count, MiB, oldest) to the [storage] line.

The tests cover a target that stays pending across draws and labels
until WaitIdle without a submission, #8152's CPU stores after Draw
(ported from #8246, seeded and unseeded, inside and outside the write
watch), CPU stores outside the drawn rectangle and in the gap before a
target that starts past a 64 KiB boundary, and a flip, a drain, a label
and an interrupt-only RELEASE_MEM through AgcDriver::Submit with the
queue held by a WAIT_REG_MEM, inside and outside the write watch.

Co-Authored-By: Claude <[email protected]>
2026-10-23 16:51:34 +07:00
PacukaandClaude Opus 5.5 287e3812e7 feat(libSceAgcDriver): execute MEM_SEMAPHORE signals and waits
MEM_SEMAPHORE (0x39) threw "cooperative command-queue waits are not
implemented". A signal now writes 1 (signal type 1) or adds 1 (signal
type 0) to the 64-bit semaphore; a wait polls until it is non-zero and
takes one. Mailbox waits throw.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 11:48:36 +02:00
Dean ff191e29d1 Merge pull request #9382 from MarcZX10/codex/libkernel-sys-sched-interval
feat(libkernel_sys): implement sched_rr_get_interval
2026-10-23 22:47:27 +13:00
Dean 348157914f Merge pull request #6218 from harry-z-kang/codex/issue-6119-packed-storage
fix(agc): support packed 16-bit storage images
2026-10-23 22:44:30 +13:00
Dean Galvin 835c2995ed feat(libSceUserService): report the keyboard type of the system language
sceUserServiceGetKeyboardType now returns the keyboard type of the configured
system language from the repository owner's table (languages 0 to 29), with 20
(US English) for a language outside it. The input variants stay 0, the only
value the table gives for Japanese and Traditional Chinese.

sceConvertKeycodeGetImeKeyboardType takes the PS4 client rule from the title ID
prefix (CUSA is PS4); a missing or custom ID is treated as PS5. Tests walk the
owner's table through both calls and the title ID cases; both debt entries
updated.
2026-10-23 22:40:29 +13:00
Dean Galvin d517eb7cfe Merge main into fix/convertkeycode-ime-keyboard-type 2026-10-23 22:37:15 +13:00
Dean b3e42bd1eb Merge pull request #8359 from Ragbie/fix/windows-pwrite-append
fix(libkernel): append positioned writes on an O_APPEND descriptor on Windows
2026-10-23 22:23:57 +13:00
Dean 23cc560021 Merge pull request #9037 from YossiYad/feat/npcommon-utilities
feat(libSceNpCommon): implement the online ID utilities and the mutex, condition and clock wrappers
2026-10-23 22:23:14 +13:00