Commit Graph
20967 Commits
Author SHA1 Message Date
MarcZX10 f5947c66cb docs: say when an APR submit returns before its buffer has run
_submit executes inline only when the queue is neither running nor holding
pending work; otherwise it enqueues a copy and returns the id, so the
statement that buffers without a wait always complete first was wrong.
2026-10-27 20:14:41 +00:00
MarcZX10 911024bd13 docs: link the cancellation points to the libkernel debt file
TechnicalDebt.md only links back to this section; the list of calls that
act on a cancellation request and the note on the asynchronous type are
the Thread cancellation entry of debt/libkernel.md.
2026-10-27 20:14:41 +00:00
MarcZX10 33577c6eab docs: describe the macOS guest entry that Aps5StartGuest provides
The table said Aps5StartGuest had no implementation on main, but
MainThreadMacOs.cpp defines it and libkernel's CMakeLists builds it. It
starts the guest on a second pthread (at least 8 MiB of stack) as
entry(block, nullptr) while the main thread runs the CFRunLoop, and it
aborts if the entry returns.
2026-10-27 20:14:32 +00:00
Mohamed Malek Aifa ddc4aad95a fix(tools): validate CMake file API reply objects 2026-10-27 21:06:17 +01:00
MarcZX10 846c386cd8 docs: give the zero padding of the submission dump file names
SubmissionCapture formats the file name with %06llu, as the PM4 replay
tests expect (submission_000006.bin).
2026-10-27 20:05:07 +00:00
MarcZX10 cb7a97d4d4 docs: say how compute pipeline capture reacts to its limits
The directory limits (128 records, 256 MiB) throw CaptureLimit, which
WriteOptional catches: capture disables itself with one stderr line and
the pipeline is still created. Only the per-record 36 MiB limit throws
out of the capture, so the old sentence described both as an error.
2026-10-27 20:05:07 +00:00
MarcZX10 e7ab802c95 docs: correct the trace event buffer sizes in the build guide
TraceThread::Slice holds five eight-byte members (scope, stage, begin,
length and the recorder batch), so an event takes 40 bytes, not 32.
The example sizes follow: 10 MiB at the default 262,144 events, 120 MiB
at 3,145,728 and 160 MiB at the 4,194,304 maximum.
2026-10-27 20:05:07 +00: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
legendary-cookieandClaude Opus 5.5 3a91f8ab8e fix(hw-oracle): read the template and write the assembly source as UTF-8
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 03:09:58 +08: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
milescovielloandClaude Opus 5.5 c7f22c2778 docs(libkernel): note how titles' libc reads the sanitizer replacement tables
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 18:51:10 +00: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
Cankiee 22e89180f6 fix(tools): match phase kind when settling 2026-10-27 18:39:03 +01:00
Adrià 228cd64b53 Merge pull request #11228 from ebosido444-ai/fix/web-failure-report
fix(web): keep the failure report with a failed conversion
2026-10-27 18:36:03 +01: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
Cankiee 0fdce2faf4 fix(tools): reject duplicate timeline buttons 2026-10-27 18:22:57 +01: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
JulesB40andClaude Opus 5.5 4743617701 test(tools): skip the configure seed CMake round trip without Ninja
The round trip configures with -G Ninja but only skipped when CMake was
missing, so it errored on hosts without Ninja. Require both, like the
other configure seed project tests.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 18:14:55 +01:00
milescovielloandClaude Opus 5.5 ef0bfaa5f2 docs(libSceSaveData): record the sizes titles pass to sceSaveDataCreateTransactionResource
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 17:14:42 +00: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 f188470bca Merge pull request #11757 from milescoviello/docs/livestreaming-status-reads
docs(libSceGameLiveStreaming): note the status fields three titles read
2026-10-28 06:02:30 +13:00
Dean 0c4a8cb41a Merge pull request #11756 from milescoviello/docs/signin-dialog-result-callers
docs(libSceSigninDialog): note the result size and field three titles use
2026-10-28 06:01:55 +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