Commit Graph
17691 Commits
Author SHA1 Message Date
dantdmdarealguy c33553b84c test(libkernel): hand the rwlock to the successor in guest_rwlock_retire through an atomic
The new lock was passed in a plain pointer ordered only by std::atomic::wait. GCC 16's libstdc++ returns from the wait with a value loaded inside the uninstrumented library, so ThreadSanitizer builds report a data race on every run. Store the handle with release and load it with acquire.
2026-10-27 18:52:35 -05:00
Omar Elmahy 4f7f483746 test(libSceVrServiceDialog): cover post-terminate lifecycle and argument precedence 2026-10-27 23:52:06 +00:00
Omar Elmahy 9355599e37 test(libSceSystemGesture): cover post-finalization entry point rejections 2026-10-27 23:51:32 +00:00
Omar Elmahy 53621f8084 test(libSceHmdSetupDialog): cover post-terminate lifecycle and argument precedence 2026-10-27 23:50:41 +00:00
Omar Elmahy 2db362915c test(libSceUsbStorage): cover unregister event bounds and multiple null arguments 2026-10-27 23:34:05 +00:00
Omar Elmahy 033d1d6110 test(libSceZlib): cover uninitialized precedence and post-finalization returns 2026-10-27 23:30:34 +00:00
al3w0f205 ee5db0a7d4 test(libSceSaveData.native): cover debug query returns in GuestSaveDataSearch 2026-10-27 18:29:34 -05:00
Omar Elmahy ba9cd030ab test(libScePlayGoDialog): cover post-termination lifecycle and argument precedence 2026-10-27 23:28:58 +00:00
dantdmdarealguy e17983e341 fix(agc): start no collect epoch at a wait whose own queue's label already reached memory
waitMemory skipped the collect epoch bump for a WAIT_REG_MEM satisfied by a
label its own queue stored after the wait was received only while that label
was still pending. When the label had already reached memory, the at-entry
return and the poll loop exit bumped anyway, so whether the wait was an
ordering point depended on whether the GPU finished before the queue worker
reached the wait. On the Linux CI runner (llvmpipe) the spin dispatch of
agc_driver_same_queue_label_wait sometimes finished first and the test failed
with 8 to 12 extra bumps for 16 waits.

Both memory-satisfied returns now consult the label-store history the same
way. The test gains a gated submission in which every label is in memory
before its wait.
2026-10-27 18:25:00 -05:00
xXPBSXx b8685f717e Merge main (6e9b9134f6) into test/pthread-mutex-trylock-behavior
The test block of guest_posix_specific landed in main at the place where this branch adds its own; keep both blocks.
2026-10-28 00:24:01 +01:00
Omar Elmahy a1d7ba92f0 test(libSceNpSignaling): cover post-termination lifecycle and method rejection 2026-10-27 23:20:37 +00:00
Dean 6e9b9134f6 Merge pull request #11846 from heditrigui/feat/libc-reallocarray
feat(libc): implement reallocarray
2026-10-28 12:10:58 +13:00
Dean d59cdd502b Merge pull request #11799 from xXPBSXx/test/pthread-specific-behavior
test(libkernel): cover pthread_setspecific and pthread_getspecific
2026-10-28 12:10:38 +13:00
Dean feabe31b59 Merge pull request #11794 from milescoviello/test/agc-lod-stats-packets
test(agc): check the packets sceAgcDcbGetLodStats writes
2026-10-28 12:10:19 +13:00
Dean bda7272231 Merge pull request #11792 from heditrigui/test/npcommercedialog-coverage
test(libSceNpCommerce): cover uninitialized and terminated argument validation
2026-10-28 12:10:02 +13:00
Dean ecc950fcc0 Merge pull request #11765 from oneandonlydean/salvage/freetypeol-9453
feat(libSceFreeTypeOl): declare 92 PS5 3.20 exports
2026-10-28 12:09:43 +13:00
Dean 27b854fac1 Merge pull request #11764 from oneandonlydean/salvage/jsc-9438
feat(libSceJsc): declare 150 PS5 3.20 exports
2026-10-28 12:09:27 +13:00
Dean cb9a3234f9 Merge pull request #11761 from oneandonlydean/salvage/xml-9422
feat(libSceXml): declare 150 pending exports
2026-10-28 12:09:11 +13:00
Dean 1dcfe03875 Merge pull request #11760 from oneandonlydean/salvage/icu-9444
feat(libSceIcu): declare 112 PS5 3.20 exports
2026-10-28 12:08:55 +13:00
Dean 55ab7282b2 Merge pull request #11753 from oneandonlydean/salvage/np-common-9686
feat(libSceNpCommon): declare 150 additional PS5 exports
2026-10-28 12:08:39 +13:00
Dean 6d40d8e527 Merge pull request #11747 from milescoviello/test/apr-resolve-foreach
test(libkernel): cover the APR ForEach resolves with and without a prefix
2026-10-28 12:08:20 +13:00
Dean 67500737a2 Merge pull request #11618 from milescoviello/test/font-render-effects
test(libSceFont): cover the render effect slant and weight setters against their getters
2026-10-28 12:07:59 +13:00
Dean 9e4ad0609a Merge pull request #11604 from milescoviello/test/eop-patch
test(agc): cover the end-of-pipe action data and GCR control patches
2026-10-28 12:07:27 +13:00
Dean 47f7d77bcb Merge pull request #11593 from milescoviello/test/direct-memory-query
test(libkernel): cover sceKernelDirectMemoryQuery's block lookup, find-next and argument checks
2026-10-28 12:07:11 +13:00
Dean 928cde750a Merge pull request #11578 from milescoviello/test/usbd-transfer-fillers
test(libSceUsbd): cover the bulk, iso and control transfer fillers and their accessors
2026-10-28 12:06:54 +13:00
Dean 64bd27886b Merge pull request #11576 from milescoviello/test/pthread-sce-rwlockattr
test(libkernel): cover scePthreadRwlockattrInit and scePthreadRwlockattrDestroy around a lock they initialize
2026-10-28 12:06:38 +13:00
Dean 70df5fc8c0 Merge pull request #11163 from JJenkx/fix/agc-verify-relocated-user-words
fix(agc): verify the effective user words of relocated draws
2026-10-28 12:04:45 +13:00
Dean cea134faab Merge pull request #10700 from MarcZX10/marc/signatures-libscenptus
feat(libSceNpTus): declare sceNpTusCreateNpTitleCtx with its shadPS4 signature
2026-10-28 12:04:06 +13:00
Dean 024515f715 Merge pull request #10641 from maximilianfv/fix/libscenptrophy2-include-cstddef
fix(libSceNpTrophy2): include <cstddef> for std::size_t in the constants header
2026-10-28 12:03:50 +13:00
Dean 7d2136c9c6 Merge pull request #10447 from alvaroelpob/feat/libscelibressl-x509-store-ctx-error
feat(libSceLibreSsl): implement the X509_STORE_CTX error, depth, current certificate and chain accessors
2026-10-28 12:03:34 +13:00
Dean 9880159f82 Merge pull request #10240 from Project-MOC/codex/test-windows-file-writer
test(relinker): cover Windows file writer behavior
2026-10-28 12:03:16 +13:00
p3nicillinandClaude Opus 5.5 c38629b159 refactor(libSceSsl): take the kernel file calls from libkernel's headers
Include File.hpp for sceKernelOpen, sceKernelRead and sceKernelClose and
Api.hpp for sceKernelGetFsSandboxRandomWord instead of redeclaring them
in a local extern "C" block, so each export keeps one declaration.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 23:02:59 +00:00
Dean c28b600917 Merge pull request #9978 from BKlaasWerkman/fix/image-ms-array-storage-only
fix(shader,agc): declare ImageMSArray only for multisampled arrayed storage images
2026-10-28 12:02:55 +13:00
p3nicillinandClaude Opus 5.5 6cb305e844 test(libSceSsl): cover the system CA list helper and its HTTP2 call
Each test serves its own CA_LIST.cer through the working-directory
override of the sandbox path. guest_ssl_system_roots checks that a
handshake to the fixture server fails without the helper and passes
with it, that a context authority still works alongside the list, and
that an empty or certificate-free list throws with its path.
guest_http2_system_roots sends a request from a context with no loaded
certificate, which passes only through the transport's helper call.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 23:02:48 +00:00
p3nicillinandClaude Opus 5.5 d0d27f6183 fix(libSceSsl): throw for an empty or certificate-free system CA list
An empty list, or one with no certificate, made SystemRoots() return a
null chain, so the connection trusted nothing. Throw and name the path,
as the missing-file case does; nothing is cached, so a later call
reads the list again.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 23:02:48 +00:00
p3nicillinandClaude Opus 5.5 509629ae90 fix(libSceSsl): refuse a missing system CA list instead of trusting nothing
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 23:02:48 +00:00
p3nicillinandClaude Opus 5.5 f685ee8720 fix(http2): trust the system CA list for HTTPS requests
Every libSceSsl context started without trust anchors, so a libSceHttp2
request without a verify callback failed the known-CA check. RetroArch's
updater, PS5LM and Porpoise all use version-3 templates over https://
without one. libSceSsl now parses /<sandbox word>/common/cert/CA_LIST.cer,
served by libkernel from the host trust store, once per process into its
own pool, and SslTrustSystemRoots_nid_no_patch links those roots after
the context's own authorities for one connection. The HTTP/2 transport
calls it after creating each connection.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 23:02:48 +00:00
Adrià f759e165d9 Merge pull request #12116 from adriadam10/fix/main-posix-spawn-waiter
fix(main): keep the stopped spawn child alive until its continued status is read
2026-10-27 22:42:29 +01:00
AdriàandClaude Sonnet 5.5 db6d1c5dd2 fix(main): keep the stopped spawn child alive until its continued status is read
Run 40579197008 (main 771d8b5bf7) failed guest_posix_spawn. Under load the child
of CheckStoppedChild exits right after SIGCONT, so waitpid(WCONTINUED) reports the
exit instead of 0x13 (reproduced with 24 CPU spinners via ctest --repeat). The
child now sleeps 2 s after the stop.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-27 22:42:08 +01:00
Adrià f5fefb982c Merge pull request #11305 from joedeangelis533-bot/review/tessellation-depth-upstream-20261025
feat(agc): remap unsupported tessellation viewport depth ranges
2026-10-27 22:27:35 +01:00
Adrià e274546099 Merge pull request #11302 from Danigamer05/feat/libc-signed-max64
feat(libc): implement signed 64-bit maximum
2026-10-27 22:26:29 +01:00
Adrià 6d99bf4ccb Merge pull request #11300 from Danigamer05/feat/libc-signed-min64
feat(libc): implement signed 64-bit minimum
2026-10-27 22:16:40 +01:00
Adrià b9623a5c26 Merge pull request #11297 from mrfelek/perf/probe-f32-flush-nvidia
perf(agc): use the NVIDIA driver's f32 denormal flush when the startup probe matches
2026-10-27 22:09:23 +01:00
Adrià 46fe6f2437 Merge pull request #11358 from krishalivaibhav/fix/macos-posix-spawn-environ
fix(libSceLibcInternal): declare environ for the spawn test on macOS
2026-10-27 22:01:08 +01:00
Adrià 4a6005955f Merge pull request #10898 from imellag/feat/libkernel-memory-protection-macos
feat(libkernel): guest memory protection and VirtualQuery on macOS hosts
2026-10-27 21:42:24 +01:00
Adrià 771d8b5bf7 Merge pull request #11340 from harisibrar1/feat/libressl-ex-data-indices
feat(libSceLibreSsl): implement the SSL and SSL_CTX ex_data index registry as LibreSSL 2.5.4 does
2026-10-27 21:34:00 +01:00
Adrià 2a46260a5a Merge pull request #11303 from iamthehimansh/split/macos-pooled-tail
fix(agc): clear a reused pooled buffer's unused tail on macOS
2026-10-27 21:29:52 +01:00
dantdmdarealguy 967203758e test(libc): name guest_heap_report_for_game's capture files after the process id
Both capture files were named with an unseeded std::rand(), which returns the same value in every process, so two concurrent runs sharing a temporary directory truncated and removed each other's stderr and stdout captures.
2026-10-27 15:28:45 -05:00
dantdmdarealguy 068455a2d5 test(agc): skip submit progress and pipelined metadata pass without a Vulkan device
agc_driver_pipelined_metadata_pass went straight to the driver, so a
missing Vulkan driver failed it with vkCreateInstance result -9 instead
of returning 77. It now probes the device with OpenVulkanTestDevice()
first, as the other pipelined tests do.

agc_submit_progress and agc_submit_progress_no_timeline set
ANYPS5_REQUIRE_VULKAN=1 in their own ctest environment, which turned
the test's own skip into a failure on every host. CI sets the variable
for the whole Linux job, so a missing device still fails there.

OpenVulkanTestDevice() skipped on any exception from the VulkanDevice
constructor, so a construction failure on a host that has a device was
reported as a skip. The constructor now throws VulkanUnavailable when
the loader cannot be loaded, vkCreateInstance returns
VK_ERROR_INCOMPATIBLE_DRIVER, or no Vulkan 1.1 graphics and compute
device exists, and the helper skips only on that. Any other failure,
including ANYPS5_GPU naming no device, fails the test.
agc_driver_vulkan_test_device covers the healthy device, the required
device and a construction failure with a device present;
agc_driver_vulkan_test_device_no_driver hides the ICD and covers the
skip and the ANYPS5_REQUIRE_VULKAN=1 failure.
2026-10-27 15:28:42 -05:00
Adrià 80b209d984 Merge pull request #11295 from Danigamer05/feat/libc-unsigned-min32
feat(libc): implement unsigned 32-bit minimum
2026-10-27 21:20:30 +01:00