Commit Graph
17691 Commits
Author SHA1 Message Date
Adrià 225ebc5eee Merge pull request #11264 from Gruzzberry/fix/sysctl-faults
fix(libkernel): fail sysctl and sysctlbyname with EFAULT on an unreadable or unwritable pointer
2026-10-27 21:16:21 +01:00
Daniel Castrillon 8c8dfc46a7 test(shader): check shared store calls independently of optimization 2026-10-27 14:58:25 -05:00
PrivacyOnion a6cd8c57c6 feat(libSceFrontPanelDisplay): add skeleton library and 3 ps5rs-listed stubs 2026-10-27 20:53:30 +01:00
Daniel Castrillon b7124fd457 test(shader): bound formatted-store size and reduce cold test cost 2026-10-27 14:34:36 -05:00
JJenkxandClaude Opus 5.5 95e7e78e0e test(libkernel): unlink the timestamp test's symbolic link before cleanup
With symbolic links allowed on Windows, guest_file_timestamps hung until
the CTest timeout: its link.txt is dangling (the relative target resolves
beside the link), MinGW's std::filesystem::remove_all reads links through
stat, sees it as absent and spins on a directory it cannot empty. The
test now removes the link with unlink_nid_postfix first.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 15:24:53 -04:00
Dean Galvin d4a296d863 Merge main into perf-D2-v47: depth export tail moves to request version 49
Main took request serialization version 48 for the fragment barycentric
built-ins flag (#9193). The depth export clamp bounds are now written at
version 49 and read only for versions from 49, so a version 48 request as main
writes it still decodes, with default bounds. Tests: version 49 is the
emitted prefix, 50 the first unsupported one, a depth exporting request
without its bounds decodes at 48, 47 and 46 (the last two without main's
barycentric byte), and a version 48 two-sample dithered request decodes as
written.
2026-10-28 08:24:34 +13:00
KernelPanicNT 625a3fbb62 fix(libkernel): store any scePthreadMutexattrSetkind kind as firmware 13.42 does
scePthreadMutexattrSetkind called NotImplemented_nid_no_patch for a kind
outside 1 to 4. Firmware 13.42's libkernel, run in an emulator, makes it
call pthread_mutexattr_setkind_np, which stores any kind as a signed
16-bit value and returns 0, and turns a null attribute's -1 with errno 22
into 0x8001FFFF. It now forwards to pthread_mutexattr_setkind_np and
converts the result with sceKernelError, so a null attribute or object
still returns 0x8001FFFF and now also sets errno 22.

An out-of-range kind is refused by scePthreadMutexInit with 0x80020016,
leaving the mutex untouched, as measured for the same module.
scePthreadMutexattrGetkind is unchanged; kind 0 now reaches it and
returns 0.
2026-10-27 19:24:23 +00:00
KernelPanicNT 9ed4377be4 Merge main into fix/libkernel-mutexattr-setkind-any-kind 2026-10-27 19:22:42 +00:00
JJenkxandClaude Opus 5.5 6135955c52 test(libkernel_sys): remove the test's symbolic links with guest unlink
With symbolic links allowed on Windows, guest_kernel_sys failed at its
cleanup: MinGW's std::filesystem::remove reads links through stat, so a
dangling link looks absent and is left in place, and the check expecting
true fails. The two links are now removed with unlink_nid_postfix, which
also checks that guest unlink removes a live and a dangling link.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 15:21:51 -04:00
JJenkxandClaude Opus 5.5 708808bd35 fix(libkernel): report ELOOP from truncate on a looping Windows link
sceKernelTruncate and truncate checked for a symbolic link loop only
after the native truncate failed, but on Windows std::filesystem::status
already reports a self-referencing link as missing, so the call returned
ENOENT before reaching that check. The loop check now runs before the
not-found result too.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 15:06:29 -04:00
Dean d13b3d7c55 Merge pull request #10575 from Mouhand-Kaddo/fix/agc-committed-reads-released-pages
fix(agc): read committed guest pages on Windows without faulting on released pages
2026-10-28 07:55:20 +13:00
Adrià 9af563f33d Merge pull request #11284 from iamthehimansh/split/macos-game-start
fix(relinker): reserve space after the Mach-O load commands for the code signature
2026-10-27 19:43:38 +01:00
dantdmdarealguy 95a785104c fix(libkernel): treat a raise target that is already terminating as exited on Windows
SuspendThread fails with STATUS_THREAD_IS_TERMINATING for a thread that
has begun to exit while its handle is not signaled yet. TryDeliver took
only the signaled handle as an exit, so the raise deliverer, which keeps
sweeping a target in host code until delivery or exit, threw "cannot
suspend the target thread" and aborted the process when that target
exited in between. The suspension now reads the NTSTATUS from
NtSuspendThread and treats a terminating target as exited; other
failures still throw.

guest_raise_exiting_thread raises at 32 threads per round that block in
a host wait and exit after it, for 100 rounds.
2026-10-27 13:38:04 -05:00
PrivacyOnion 5c80c032a2 test(libSceBluetoothHid): cover callback lifecycle and parameter validation in GuestBluetoothHid
Cover non-null callback registration before init, post-unregister noCallback state on duplicate unregister and device registration, and null parameter initialization.
2026-10-27 19:25:41 +01:00
PrivacyOnion 3f14d7165b test(libSceRazorCpu): cover null and zero boundary arguments in GuestRazorCpu
Cover null string and zero count/size arguments across job manager, marker, plot, bookmark, logical file access, and data tag functions.
2026-10-27 19:19:18 +01:00
PrivacyOnion a6beaf3acc test(libSceSulphaDrv): expand sceSulphaGetDefaultConfig validation in GuestSulphaConfig
Cover errno preservation across multiple values, exact-size 24-byte and raw 64-bit word buffers, idempotent calls, and expanded alignment/pattern grid.
2026-10-27 19:17:47 +01:00
PrivacyOnion 04bdc8c7e7 test(libSceScreenShot): cover positive IDs in sceScreenShotIsDisabled
Cover positive IDs 1 and 2 in sceScreenShotIsDisabled in GuestScreenShot.
2026-10-27 19:17:38 +01:00
JJenkxandClaude Opus 5.5 56be4608fd fix(nid): move PE library imports whose NID is longer than the name
A library's imports were renamed in place, so any import whose NID is
longer than its name failed the build: libSceHttp2 importing sceNetRecv
(10 characters, NID 11) stopped at "import NID longer than original
name". Such imports now get their hint/name entry in the appended
.nidimp section that --exec mode already uses, with both thunks
repointed; names that fit are still patched in place, so a library
without short imports keeps its layout. Signed, bound and delay-loaded
imports are rejected before anything is written whenever names move.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 14:11:41 -04:00
AndyandClaude Opus 5.5 552d389083 test(agc): disable barycentric built-ins in the mesh barycentric emulation test
#9193 added fragmentBarycentricBuiltins and cleared it in
PixelBarycentricEmulation, but MeshBarycentricEmulation still takes
the flag from the device. On a device with
VK_KHR_fragment_shader_barycentric the host interpolation check then
reads I/J from BaryCoordKHR, the pixel shader does not emulate
barycentrics, and the test fails before its first draw.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 15:06:56 -03:00
Dean 14332cd8d0 Merge pull request #10721 from MarcZX10/marc/avcap2-declarations
feat(libSceAvcap2): declare 7 pending exports
2026-10-28 06:55:01 +13:00
Dean 1819607b25 Merge pull request #10701 from MarcZX10/marc/signatures-libscegnmdriverforneomode
feat(libSceGnmDriverForNeoMode): declare three stubs with shadPS4 signatures
2026-10-28 06:54:28 +13:00
Dean 1d0113de60 Merge pull request #10699 from MarcZX10/marc/signatures-libscenputility
feat(libSceNpUtility): declare two title context stubs with shadPS4 signatures
2026-10-28 06:53:56 +13:00
Dean ab6a87a163 Merge pull request #10460 from Danigamer05/feat/libc-unsigned-max64
feat(libc): implement unsigned 64-bit maximum
2026-10-28 06:53:22 +13:00
Adrià 254240c747 Merge pull request #11045 from roboterspinne/fix/relinker-macos-fixups-writable
fix(relinker): reject macOS fixups outside writable segments
2026-10-27 18:29:51 +01:00
Dean 594214f733 Merge pull request #11357 from oneandonlydean/sa/host-import-frame-eviction
fix(agc): do not evict host imports used in the current or previous frame
2026-10-28 06:23:09 +13:00
JJenkxandClaude Opus 5.5 79d65956a1 fix(libc): compute _Exp and _FExp as titles do
The libc.prx that titles ship evaluates the rational step as
((Q(z) + g*P(z)) + 1) / ((Q(z) - g*P(z)) + 1), with its own ln 2 split
and coefficients in the double case, and returns 1 only for arguments
within half an epsilon of zero. main used a different rational form
with a doubling step and an epsilon-wide shortcut, which left about one
result in five one ulp away from titles.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 13:18:32 -04:00
PrivacyOnion 12b8c82aa5 test(libSceTextToSpeech2): cover null initialize and status queries in GuestTextToSpeech2 2026-10-27 18:17:49 +01:00
valenciana-nc 951cfe7cf1 fix(agc): reject quad-list and strip draws whose expanded index count overflows uint32 2026-10-27 11:15:30 -06:00
slopgobblercobbler 9b791df163 test(relinker): add UTF-8 validation and JSON escaping tests for call registry writer 2026-10-27 18:06:21 +01:00
Dean 3ae8209b64 Merge pull request #11844 from PrivacyOnion/test/audiodec-invalid-type-and-handle-bounds
test(libSceAudiodec): cover invalid codec types and handle bounds in GuestAudiodec
2026-10-28 06:05:41 +13:00
Dean 2b888b4ce0 Merge pull request #11842 from avnish-afk07/test/web-browser-dialog-post-terminate
test(libSceWebBrowserDialog): cover post-terminate argument validation
2026-10-28 06:05:06 +13:00
Dean 0621255582 Merge pull request #11800 from milescoviello/test/agc-end-of-pipe-type-patch
test(agc): check the action sceAgcQueueEndOfPipeActionPatchType writes
2026-10-28 06:04:08 +13:00
Dean c6ebca22d3 Merge pull request #11796 from jotitadev/fix/libc-contraction-probe-osx-arch
test(libc): compile the contraction probe for the macOS build architecture
2026-10-28 06:03:15 +13:00
Dean 5ad1c72e33 Merge pull request #11603 from milescoviello/test/apr-queries
test(libkernel): cover the APR prefixed resolve, file size and stat queries and the submission with a result
2026-10-28 06:01:07 +13:00
Dean c69d61fe43 Merge pull request #11572 from milescoviello/test/uds-queries
test(libSceNpUniversalDataSystem): cover initialization, the memory and storage stats and the event size and string queries
2026-10-28 06:00:34 +13:00
Dean bbb11b6974 Merge pull request #11062 from MarcZX10/marc/ci-nightly-sanitizers
ci: run every test under ASan and UBSan nightly
2026-10-28 05:58:34 +13:00
simnJS ad9a68f9ba feat(libSceNpMatching2): answer signaling connection status and context start abort offline
sceNpMatching2SignalingGetConnectionStatus reports every member inactive
for a known context, since no room is joined offline, and leaves the peer
address and port untouched; a null status pointer throws.
sceNpMatching2AbortContextStart returns NOT_INITIALIZED before
initialization and 0 afterwards. Checks follow shadPS4, with RPCS3's
differences recorded in the technical debt entry.
2026-10-27 17:57:03 +01:00
Disaster 4a5ac57bd3 test(libSceFont): cover render surface scissor clipping 2026-10-27 19:56:38 +03:00
Dean 737f17291a Merge pull request #10680 from dkdhanda8/fix/relinker-to-intel-branch-target-overflow
fix(relinker): collect --to-intel branch targets without signed overflow
2026-10-28 05:56:34 +13:00
Dean 4078986a1c Merge pull request #10679 from roboterspinne/fix/relinker-registry-pc32-name
fix(relinker): name R_X86_64_PC32 in the import registry
2026-10-28 05:56:00 +13:00
Adrià a1053d987b Merge pull request #11273 from Gruzzberry/fix/signal-pointer-faults
fix(libkernel): fail the signal action, mask, stack and pending calls with EFAULT on an unusable pointer
2026-10-27 17:55:35 +01:00
Dean Galvin 8e1e958592 test(libkernel): link libc into guest_amm_pool_tests for the Windows C++ runtime
The test throws std::bad_alloc from a replaced operator new, so on MinGW it needs the same libc link, unwind section rename and DLL path as the other throwing guest tests (the Windows link failed on __gxx_personality_v0).
2026-10-28 05:25:36 +13:00
simnJS a06fb13f6c fix(libSceAutoMounterClient): name the fields of the USB device-info output
The 816 bytes after the 128-byte device name are the PS4
SceAutoMounterClientUsbDeviceInfo fields up to the serial length in
flatz's ps4_stub_lib_maker_v2 header: the total and available space, the
vendor id, product id and release, and the manufacturer, product and
serial strings with their lengths. libSceUsbStorage's device-info record
starts with the same layout. Every field offset is now asserted; the
size and offsets do not change.
2026-10-27 17:23:33 +01:00
Adrià c547deaacb Merge pull request #11293 from LeandroLP23/test/agc-storage-budget-small-device-heap
test(agc): give the storage image budget test a device-local heap as large as its reported budget
2026-10-27 17:06:45 +01:00
SAKIBUL HUDA ONNAY ac159447ea test(libkernel): remove the symlink fixture so cleanup does not hang on Windows 2026-10-27 22:04:46 +06:00
slopgobblercobbler ff5da447b4 fix(libSceUserService): validate user in sceUserServiceGetPlatformPrivacyWs1 2026-10-27 16:51:54 +01:00
Adrià e0cd1259a9 Merge pull request #11254 from Michael-KD/fix/scalar-buffer-runtime-word3
fix(shader): ignore a runtime V#'s type for scalar buffer loads as RDNA2 does
2026-10-27 16:28:28 +01:00
Adrià 637522b6bf Merge pull request #11083 from slopgobblercobbler/fix/savedata-convert-null-parameter-validation
fix(libSceSaveData.native): return SAVE_DATA_ERROR_PARAMETER on null argument in sceSaveDataConvert
2026-10-27 16:21:11 +01:00
Adrià 6f7cb75291 Merge pull request #9193 from imellag/feat/shader-barycentric-builtins-moltenvk
feat(recompiler): read I/J from barycentric built-ins on MoltenVK
2026-10-27 16:21:05 +01:00
Adrià 2222bae20b Merge pull request #11225 from ebosido444-ai/feat/relinker-version
feat(relinker): report the build revision with --version
2026-10-27 16:16:57 +01:00