Commit Graph
7981 Commits
Author SHA1 Message Date
T3cm0andClaude Opus 5.5 3fd2a2fe23 feat(libSceVrTracker2): answer as the console's module before initialization
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 03:50:03 -05:00
AlxcBTW c20686e114 fix(agc): run the unwatch hook before the import when the page walk already fails
An import that should stay watched runs the unwatch hook only when its range
leaves the write watch, after the import. When the range is partly outside the watch
or the walk before the import fails, the range leaves the watch whatever the import
does, so the hook can run first, as it does for the import that does not stay
watched.

After the import, the walk that tells an import's own page marks from CPU writes
(the window compare) is skipped in this case, so the hook collects those marks as CPU
writes. A driver that marks the pages of an import written (the NVIDIA driver on
Windows does, see Pages under an import window) makes the hook keep the blocks they
cover for the CPU unless their bytes are proven unchanged, and those blocks do not
receive the GPU results. A failure of the walk after the import still runs the hook
after it.

The check of #6308 also requires the hook to have run before the import.
2026-10-18 10:47:22 +02:00
Scramblrrrr 5a35a71116 feat(videoout): allow opting out of HDR presentation 2026-10-18 05:43:09 -03:00
Jan ŠléglandClaude Opus 5.5 5c29d125e1 fix(shader): leave out the all-zero position distance when guest distances fill all eight
A vertex or tessellation evaluation program whose PA_CL_VS_OUT_CNTL
enables eight guest clip distances (CLIP_DIST_ENA 0xff, both distance
vectors) failed to compile with "guest clip distances plus the all-zero
clip position distance exceed 8 clip distances", at registration and at
the draw. A program whose guest clip and cull distances together take
eight (four of each, say) compiled, but its draw failed in the pipeline
validator with "more than eight clip and cull distances in one shader".

The all-zero position distance is now added only while the guest clip and
cull distances leave one of the eight slots free. Otherwise the program
keeps its guest distances, and a primitive with a vertex at clip position
(0,0,0,0) is not removed; the EmitSetAttribute debt entry says so.

agc_position_invariance compiles one program with seven and eight clip
distances, and with three and four clip distances beside four cull
distances: the clip distance arrays are 8, 8, 4 and 4, so the all-zero
position distance is in the first and third only.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:40:52 +02:00
AlxcBTW fd1714a657 perf(recompiler): leave the descriptor-range comparison out of direct buffer loads when the device zeroes past the range
With robustBufferAccess2 and a robustStorageBufferAccessSizeAlignment of 1, the device
returns zero for a storage buffer load past the descriptor range, so the shader's own
OpArrayLength comparison against the same range is redundant. The guest V# bound check
stays. A guest buffer's and a draw snapshot's descriptor range of 4 bytes or more is
rounded down to whole dwords so both zeros agree. APS5_NO_EXACT_ROBUST_LOADS keeps the
comparison. The flag is part of the shader cache key.
2026-10-18 10:29:37 +02:00
Lberonio 241429c45c fix(agc): clear a queue's flip event latch once its own interrupts stop
A queue that delivered an end-of-pipe interrupt from its own release stopped
delivering the flip's event for the rest of the run, so a title that raises a
release interrupt once and then waits on the flip event never saw it again.

Count the flips a queue has taken since its last delivered release interrupt:
four consecutive flips keep the latch, a fifth clears it and raises the event,
so the queue recovers within five flips. Gran Turismo 7 (PPSA01317) pairs two
flips with one release interrupt per frame, which stays under the limit, and a
title that flips without further release interrupts recovers.

Extend agc_driver_eop_interrupts: a latched queue still delivers its own
releases, flips keep reaching the video output while their event is suppressed,
an event returns once the latch clears, and a release followed by two flips
raises none.
2026-10-18 11:13:59 +03:00
011010 47710d8013 docs(environment): add the rows for the helper and wide-string readers 2026-10-18 02:13:39 -06:00
David b37ca1961f Merge remote-tracking branch 'origin/main' into feat/shader-barycentric-tessellation-last-vertex
# Conflicts:
#	core/shader/recompiler/SpirvBackend/src/BarycentricGeometryShader.cpp
2026-10-18 12:06:43 +04:00
Alex ColliniandClaude Opus 5.5 ef3cb7c9ef docs(agc): bound the released-texture sweep by the grown resource cache
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:04:28 +02:00
Dean ed01d79d3c Merge pull request #7271 from gjonn/feat/agc-format43-native-repack
feat(agc): sample texture format 43 through a lossless B10G11R11 copy
2026-10-18 20:51:59 +13:00
Yunus Shaikh 3ea0be6488 docs(agc): say a settled import under a storage image stays compared
ARCHITECTURE.md and the libSceAgcDriver debt entry now say that a
settled Windows import under 1 MiB returns to the write watch only when
no storage image overlaps it, and why.
2026-10-18 00:47:31 -07:00
011010 479847104a docs(environment): name the readers the scanner recognises 2026-10-18 01:24:50 -06:00
011010 5f10ea8fbf docs(environment): add the rows for the names main added since the last rebase 2026-10-18 01:20:56 -06:00
husari.orozco fc14940647 docs(environment): add the rows the readers on main need 2026-10-18 01:14:35 -06:00
husari.orozco abec10fe2d fix(tools): catch the EnvInt and GetEnvironmentVariableA readers and take the review rows 2026-10-18 01:14:35 -06:00
husari.orozco d49b0fecf5 docs(environment): add the APS5_* and ANYPS5_* reference and check it 2026-10-18 01:14:35 -06:00
Romans Pokrovskis a2d6c16bcd fix(audio): route legacy vibration PCM with per-port timing 2026-10-18 10:07:29 +03:00
Dean 1c523bdb48 Merge pull request #6437 from fma-rc/fix/libkernel-amm-range-256
fix(libkernel): report a 256 GiB AMM range starting on a 64 GiB boundary
2026-10-18 20:03:09 +13:00
Dean Galvin e886b91fab Merge branch 'main' into 6492 2026-10-18 19:07:59 +13:00
mrfelekandClaude Opus 5.5 3f33dcf951 fix(libSceNgs2): clear the voice callback on sampler and mixer setup
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BywPXoZACVi8ALV4JKvuPZ
2026-10-18 08:07:27 +02:00
Dean Galvin 5db206aba0 fix(agc): read the depth remap scale and offset from push constants at run time
The remap mode stays a specialization constant and cache key input. Scale and
offset are two push words at byte 104, patched per draw, so draws that differ
only in depth range share one pipeline. The recipe, journal and serializer
carry the mode only.
2026-10-18 19:01:14 +13:00
Dean d704b808e3 Merge pull request #6828 from loyalburrito/claude/brave-ride-lz92qi
feat(ssl): run TLS 1.2 client connections over Mbed TLS
2026-10-18 18:58:26 +13:00
David 814f17982b Merge remote-tracking branch 'origin/main' into feat/shader-barycentric-tessellation-last-vertex
# Conflicts:
#	docs/dev/debt/libSceAgcDriver.md
2026-10-18 09:40:45 +04:00
David f3bf216868 Merge remote-tracking branch 'origin/main' into fix/netctl-default-route-macos
# Conflicts:
#	docs/dev/debt/libSceNetCtl.md
2026-10-18 09:37:31 +04:00
Yunus Shaikh cd89b29c52 Merge perf/agc-host-import-aligned-blocks into perf/agc-remember-evicting-refusals 2026-10-17 22:27:11 -07:00
Yunus Shaikh 82cf694bb8 Merge perf/agc-host-import-aligned-blocks into perf/agc-host-import-blocks 2026-10-17 22:26:38 -07:00
Yunus Shaikh 0b84427db3 Merge main into perf/agc-host-import-aligned-blocks 2026-10-17 22:25:50 -07:00
Dean 66e71b63d1 Merge pull request #5390 from hugodearaujo/feat/agc-sparse-unaligned-import
feat(agc): import shared ranges whose backing offset is not 64 KiB aligned
2026-10-18 18:22:50 +13:00
Yunus Shaikh a508aa03c4 Merge main into perf/shader-image-table-reuse-v3-pr 2026-10-17 22:15:10 -07:00
milescovielloandClaude Opus 5.5 bdead6944b fix(libkernel): handle fcntl and FIONREAD on a host socket descriptor
On Linux and macOS, fcntl and ioctl threw "descriptor N is neither a
file, a directory, a pipe nor a character device" for a host socket that
is not a guest socket. That is what a standard descriptor is when a
service manager connects it to its journal, or when a test runner starts
the process with a socket as stdin; guest_kernel_fcntl's standard input
check aborts then.

A socket is now its own descriptor kind. Its status and close-on-exec
flags go through the host as for a pipe end, FIONREAD asks the host,
record locks and read-ahead hints fail with EBADF as FreeBSD's
kern_fcntl fails them on a descriptor without a vnode, and O_ASYNC
throws as on a pipe.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 04:44:36 +00:00
Dean 3e32946e66 Merge pull request #5988 from ErenYeager1836/feat/libSceUserService-accessibility-getters
Merged while @adriadam10 is away; his requested change is in place.
2026-10-18 17:41:20 +13:00
Dean bd4ae99709 Merge pull request #7393 from ErenYeager1836/feat/player-selection-dialog-status-and-close
feat(libScePlayerSelectionDialog): export scePlayerSelectionDialogGetStatus and scePlayerSelectionDialogClose
2026-10-18 17:38:13 +13:00
Yunus Shaikh 543d7cf5eb Merge main into fix/agc-heap-mirror-replan-unwatched 2026-10-17 21:33:59 -07:00
Yunus Shaikh 3e2ff056b6 Merge perf/agc-host-import-aligned-blocks into perf/agc-remember-evicting-refusals 2026-10-17 21:32:44 -07:00
Yunus Shaikh 698491c2d6 Merge perf/agc-host-import-aligned-blocks into perf/agc-host-import-blocks 2026-10-17 21:31:56 -07:00
Nithishvelan M dec0e2013c feat(libScePlayerSelectionDialog): export scePlayerSelectionDialogGetStatus and scePlayerSelectionDialogClose
Implement scePlayerSelectionDialogGetStatus and scePlayerSelectionDialogClose in libScePlayerSelectionDialog, matching the common dialog lifecycle convention across player dialogs, and add unit test coverage in GuestPlayerSelectionDialog.
2026-10-18 10:01:34 +05:30
Yunus Shaikh 399cc69e9f Merge main into perf/agc-host-import-aligned-blocks 2026-10-17 21:29:30 -07:00
Yunus Shaikh db622e1c4f Merge main into perf/shader-image-table-reuse-v3-pr 2026-10-17 21:26:16 -07:00
Dean 755fecb333 Merge pull request #6678 from EagleBearerYS/perf/agc-async-settle
perf(agc): settle Windows imports under 1 MiB without waiting
2026-10-18 17:22:05 +13:00
Dean a84027dcba Merge pull request #7248 from HQasper/fix/select-kqueues-and-devices
fix(libkernel): select on kqueues as kqueue_poll answers
2026-10-18 17:22:02 +13:00
Dean Galvin 2edaf44a64 Merge main into claude/brave-ride-lz92qi 2026-10-18 17:20:58 +13:00
pushkarreddyy 813fdda24d fix(json2): return parse error on null text or zero size 2026-10-18 09:50:39 +05:30
Dean bf34e3a009 Merge pull request #7199 from pushkarreddyy/feat/agc-driver-cmask-mipmapped
feat(libSceAgcDriver): support CMASK fast clears on base mip 0 of mipmapped 2D targets
2026-10-18 17:20:25 +13:00
Dean 51a1605731 Merge pull request #5969 from jagrat04/feat/libSceSsl-validity-and-fingerprint
Merged while @adriadam10 is away; his requested change is in place.
2026-10-18 17:18:33 +13:00
Nithishvelan M 738eff083c fix(libSceSaveData.native): return error for uninitialized sceSaveDataSyncSaveDataMemory 2026-10-18 09:42:13 +05:30
Dean Galvin e1dc3c0593 Merge main into fix/select-kqueues-and-devices 2026-10-18 16:55:09 +13:00
Dean a86577e464 Merge pull request #7178 from AlxcBTW/pr/depth-clear-2
perf(agc): replace the plane copies around a depth plane's UAV clear by a depth clear
2026-10-18 16:52:16 +13:00
Dean f28ae2d5a4 Merge pull request #7139 from AlexOfTheForest/feat/poll-files
feat(libkernel): poll files, directories, the random device and stdio as FreeBSD does
2026-10-18 16:52:12 +13:00
Dean Galvin 57d3e85ca8 Merge main into pr/depth-clear-2 2026-10-18 16:37:09 +13:00
Dean 1e2d9b369b Merge pull request #7346 from thuanquang/fix/depth-bits-32-guest-memory
fix(agc): read a 32-bit depth-bits T# over guest memory through a float view
2026-10-18 16:22:26 +13:00