Commit Graph
14017 Commits
Author SHA1 Message Date
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 Galvin 489c64ecb5 Merge main into fix/explicit-homebrew-module-directories 2026-10-18 17:43:12 +13:00
Dean 4566cc3377 Merge pull request #6455 from EagleBearerYS/fix/agc-stamp-partly-watched-stores
fix(agc): stamp the watched blocks of a store into partly watched memory
2026-10-18 17:41:49 +13: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 0e03263013 Merge pull request #6095 from meh7an/perf/shader-srt-tape
Merged while @adriadam10 is away; his requested change is in place.
2026-10-18 17:41:16 +13:00
Dean bc25d892cf Merge pull request #7380 from thuanquang/fix/relinker-skip-backup-copies
fix(relinker): skip a dumper's backup copy of a module beside the module
2026-10-18 17:41:00 +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 1b304c8e9f test(agc): keep the copy lifetime test's two ranges out of one aligned import
This branch imports adjacent registered ranges that fill an aligned
power-of-two block as one import, so the copy check's source and
destination, mapped one after the other, became a single 128 KiB
import, and the source's protection change retired the destination
with it. Map them with an unmapped block between them, so each is its
own import and the check still shows that retiring one import leaves an
unrelated one in place.
2026-10-17 21:29:31 -07:00
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 3de84fa106 Merge pull request #7385 from EagleBearerYS/test/agc-depth-bits-guest-memory
test(agc): read the depth bits of a SW_64KB_Z_X surface from guest memory
2026-10-18 17:22:09 +13: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 dbafca0d05 Merge pull request #7193 from XairRrR/perf/image-table-index-scratch
perf(recompiler): keep image-table indexes in per-thread scratch
2026-10-18 17:20:21 +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
Alex Callisaya 9cc8e2c081 fix(tools): clip trace digest totals to the frame window 2026-10-18 00:11:15 -04:00
AlxcBTW bb86b5f357 test(agc): isolate the depth clear cases per recorder and cover plane fills against a UAV clear
Each case re-activates the test device's recorder, and the DCB submit re-activates the recorder of the second device it creates, so the cases no longer depend on the order they run in. PlaneFillCase checks that a plane fill before a UAV clear is overwritten by it and a plane fill after it wins.
2026-10-18 05:56:26 +02:00
Dean Galvin e1dc3c0593 Merge main into fix/select-kqueues-and-devices 2026-10-18 16:55:09 +13:00
Nithishvelan M 432ad48393 test(libSceUserService): unwind guest_user_service_tests on Windows
Register unwind tables on Windows via configure_windows_unwind so that throwing stubs tested in GuestUserService can be caught without unhandled runtime_error aborting the test runner.
2026-10-18 09:23:56 +05:30
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 fd301c78a5 perf(agc): release settle-retired imports after the overlap block of a pin wait
The Windows release of imports retired during a settle read belongs after the whole
overlapsImport block in the not-holding-the-lock branch of WaitForLeasesAndImports, as in
the original change, not inside it. It was placed inside while main was merged in.
2026-10-18 16:47:05 +13:00
thuanquangandClaude Opus 5.5 a7499e072f fix(relinker): skip a dumper's backup copy of a module beside the module
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:41:02 +07:00
Dean Galvin 2ec16fb1c2 test(agc): follow request format 33 in the serializer replay tests
The depth remap fields moved to request format 33 when this branch was rebased onto
main's format 32. The replay tests that rebuild older streams now drop and append the
remap tail on top of the linked call fallbacks and the spanned waves flag, and the
depth remap test downgrades to format 32.
2026-10-18 16:38:36 +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
Dean 43663419cb Merge pull request #7343 from BiladeiroSupremo/fix/agc-row-scan-reduction
fix(shader): reduce a DPP row scan read at a row's last lane over the…
2026-10-18 16:22:23 +13:00
Dean a644767534 Merge pull request #7366 from milescoviello/fix/pthread-join-self-first
fix(libkernel): answer a join of the calling thread before its detach state
2026-10-18 16:22:19 +13:00
Dean 1ab64e7f0e Merge pull request #7365 from milescoviello/fix/sigprocmask-invalid-how
fix(libkernel): fail sigprocmask with EINVAL for an unknown how
2026-10-18 16:22:16 +13:00
Dean d9656f1283 Merge pull request #7353 from T3cm0/bionic/mergesort
feat(libc): implement mergesort
2026-10-18 16:22:12 +13:00
Yunus Shaikh 326104974a test(agc): read the depth bits of a SW_64KB_Z_X surface from guest memory
A compute shader loads every texel of a 256x192 32_UINT, 32_SINT and
16_UINT texture in SW_64KB_Z_X whose memory holds a known pattern and no
depth surface, from untracked memory and from a guest allocation, and
stores what it read. Every texel must keep its stored bits, NaN, infinity
and denormal patterns included; without the 32-bit fix the 32_UINT read
throws.
2026-10-17 20:19:49 -07:00
Evgeniy Kazarin 1d9bf1e029 perf(libc): reuse saved direct-memory buffers when unreferenced 2026-10-18 06:10:30 +03:00
thuanquangandClaude Opus 5.5 8f03282f5e fix(agc): draw geometry programs with the last provoking vertex
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:07:02 +07:00
Dean Galvin 6dde6cf658 Merge main into perf/image-table-index-scratch 2026-10-18 16:05:24 +13:00
Dean Galvin 67e7043332 Merge main into feat/poll-files 2026-10-18 16:04:36 +13:00
Dean Galvin 70e444582d Merge main into perf/agc-async-settle 2026-10-18 16:04:01 +13:00
Evgeniy Kazarin 97c11bcb94 perf(libc): release exact resident mappings without repeated queries 2026-10-18 06:03:30 +03:00
Yunus Shaikhandpoonasor e8b3198337 fix(shader): end a pixel shader's failed BDA reads through one exit
Every guest-memory read of a pixel shader that can fault ended the
invocation with its own OpTerminateInvocation, or OpKill without the
extension. A main-menu pixel shader of NHL 27 (PPSA34063) has 216 such
exits and Demon's Souls (PPSA01342) up to 112, and AMD's Windows driver
crashes in vkCreateGraphicsPipelines on those modules
(amdvlk64.dll+0x9e251f).

The guest code is now emitted as its own function: a failed read sets a
private flag and returns, and the entry point calls it and terminates
once when the flag is set. A pixel shader without a fault site keeps a
plain entry point, with no exit and no SPV_KHR_terminate_invocation.
Primitive-ordered pixel shaders keep the old form, as their interlock
instructions must stay in the entry point.

Based on poonasor's design in poonasor/AnyPS5@eb2e2309, ported to
current main.

Co-authored-by: poonasor <[email protected]>
2026-10-17 19:58:59 -07:00
Dean 2626e5ee7e Merge pull request #7360 from milescoviello/perf/srgb-table-initializer
perf(shader): initialize the sRGB decode table once per module
2026-10-18 15:58:50 +13:00
Dean c4fea909a5 Merge pull request #7335 from EagleBearerYS/prep/np-trophies-part2
feat(libSceNpTrophy2,libSceNpUniversalDataSystem): record trophy unlocks and statistics
2026-10-18 15:58:22 +13:00
Dean fdcc9f70e0 Merge pull request #5780 from MrMha/fix/conventions-duplicate-source-tokens
Merged while @adriadam10 is away; his requested change is in place.
2026-10-18 15:57:48 +13:00
Evgeniy Kazarin d2ca227e8f perf(libkernel): find direct-memory aliases through the physical index 2026-10-18 05:55:38 +03:00