Commit Graph
8999 Commits
Author SHA1 Message Date
Adrià bc9833e39b Merge pull request #5887 from leorossi2005/feat/libkernel-umtx-microsecond-timeout
feat(libkernel): support microsecond timeout in size-0 _umtx_op
2026-10-16 21:43:51 +02:00
Adrià b260d8d792 Merge pull request #6930 from adriadam10/ci/submodule-cache-gitdirs
ci(windows): cache only the submodule git dirs
2026-10-16 21:31:34 +02:00
Adrià FranchandClaude e5b31e0728 ci(windows): cache only the submodule git dirs
The cached tar held the 3rdparty work trees too, and its extraction fails on
the dangling symlink 3rdparty/zstd/tests/cli-tests/bin/unzstd, which Git Bash
tar can't create. Cache .git/modules alone and let git submodule update check
the work trees out from it, as a clean checkout does.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 21:31:16 +02:00
Adrià 1b1f8483ca Merge pull request #5849 from wachi35676/fix/nid-elf-duplicate-exports
fix(nid): reject ELF exports that patch to different symbols under one name
2026-10-16 21:24:01 +02:00
Adrià 87326a925c Merge pull request #5885 from ErenYeager1836/test/random-buffer-coverage
test(libSceRandom): cover zero-sized null buffer and single-byte read in guest test
2026-10-16 21:23:53 +02:00
Adrià 1391ea30b6 Merge pull request #5831 from ahmad3a4/fix/libkernel-append-atomic-windows
fix(libkernel): append O_APPEND writes atomically on Windows
2026-10-16 21:23:47 +02:00
Adrià 542312b5de Merge pull request #5823 from xxLnolan/feat/convert-keycode-nonus-backslash
fix(keycode): map HID non-US backslash key
2026-10-16 21:23:41 +02:00
Adrià d96e0e554c Merge pull request #5772 from DavidSamir/fix/libc-empty-guest-environment
fix(libc): start the guest environment empty instead of copying the host's
2026-10-16 21:23:35 +02:00
Adrià 4664b28976 Merge pull request #5812 from NumberGuan/codex/reject-non-executable-elf-types
fix(relinker): reject core and untyped ELF conversion inputs
2026-10-16 21:23:30 +02:00
Adrià 9158f031ca Merge pull request #5835 from AlexOfTheForest/feat/app0-zarchive
feat: read title files from a read-only app0.zar (ZArchive) layer
2026-10-16 21:23:25 +02:00
Adrià 6a6b171a26 Merge pull request #5699 from YossiYad/fix/loadexec-host-stderr
fix(libSceSystemService): give LoadExec's next executable the host standard error
2026-10-16 21:23:19 +02:00
Adrià 383cb26339 Merge pull request #5614 from JJenkx/fix/linux-guest-finalizer-arguments
fix(relinker): clear Linux guest finalizer arguments
2026-10-16 21:23:12 +02:00
Adrià 4ff1e8864d Merge pull request #5141 from 0xRickx/fix/refused-loopback-connect
fix(libkernel): refuse a loopback TCP connect at once on Windows
2026-10-16 21:23:06 +02:00
Adrià f474fb7768 Merge pull request #6900 from adriadam10/ci/select-tests
ci: build and run only the tests a change reaches on request
2026-10-16 21:06:09 +02:00
Adrià db7d9de5e4 Merge pull request #5405 from Pipodi/feat/spanned-wave64-compute
feat(recompiler): run single-wave wave64 compute programs at one lane per invocation on 32-lane hosts
2026-10-16 21:05:55 +02:00
Adrià 24528f4e5a Merge pull request #5907 from simonbronk/feat/mixed-sample-truncate
feat(agc): rasterize a multisampled draw into one-sample targets at sample 0's locations
2026-10-16 21:05:45 +02:00
Adrià 5d3263b942 Merge pull request #5964 from MarcZX100/codex/shader-profile-geometry-feature
fix(agc): validate geometry shader capability
2026-10-16 21:05:40 +02:00
Adrià 6fd4de2666 Merge pull request #5937 from milescoviello/fix/db-render-control-copy-sample
fix(agc): accept a copy's sample selection on a draw that copies nothing
2026-10-16 21:05:36 +02:00
Adrià daf8913128 Merge pull request #5905 from hugodearaujo/fix/agc-prewarm-mapped-dma-buf
fix(agc): settle dma-buf imports on Linux on the settle queue
2026-10-16 21:05:30 +02:00
Adrià 57865eb292 Merge pull request #5881 from codingreapermaps/feat/agc-msaa-storage-write
feat(agc): write a multisampled color target through a storage image
2026-10-16 21:05:25 +02:00
Adrià 12de4afa4f Merge pull request #6907 from adriadam10/ci/windows-caches
ci: cache the submodules, FFmpeg and configure checks of the Windows job
2026-10-16 21:05:21 +02:00
Adrià be78e9d6e1 Merge pull request #5946 from RINNECODER/contrib/check-compile-sibling-build
fix(tools): key compile commands relative to the checkout in check_compile
2026-10-16 21:05:17 +02:00
Adrià FranchandClaude 2b056a4795 ci: keep the build paths CMake recorded in select_tests.py
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 21:02:18 +02:00
Adrià c842491865 Merge pull request #6909 from AlxcBTW/docs/agents-md
docs: add AGENTS.md with the rules coding agents break
2026-10-16 20:42:39 +02:00
Adrià 16a0f509a3 Merge pull request #5909 from kjhq/fix/unwrap-self-empty-tls
fix(tools): place an empty segment that ends a load segment in unwrap_self
2026-10-16 20:39:20 +02:00
Adrià 0936dc910a Merge pull request #5943 from zmeizy/claude/f16-conversion-float-mode
fix(shader): round and flush f16 conversion results by FLOAT_MODE in every denormal mode
2026-10-16 20:39:11 +02:00
Adrià 7600f3dd18 Merge pull request #5903 from jotitadev/docs/build-relinker-macos-output
docs(build): list Mach-O among relinker-only outputs
2026-10-16 20:37:43 +02:00
Adrià f26eb67c89 Merge pull request #5877 from MarcZX100/docs/pps26344-call-sites-2355
docs(debt): record PPSA26344 call-site evidence
2026-10-16 20:29:30 +02:00
Adrià 79e5aff0e2 Merge pull request #5854 from MarcZX100/docs/trace-switches
docs(dev): list tracing environment switches
2026-10-16 20:29:11 +02:00
Ahmad e8c97bf926 fix(libkernel): append O_APPEND writes atomically on Windows
On Windows the C runtime appends by seeking to the end and then writing,
so concurrent appends through different descriptors overwrite each other
and lose data. Write and writev on an O_APPEND descriptor now go through
WriteFile at the end-of-file offset, which Windows appends atomically,
and writev gathers its buffers into one append as FreeBSD writes the
whole vector at the end.
2026-10-16 20:25:29 +02:00
xxLnolan 127e111048 test(keycode): cover non-US backslash mapping 2026-10-16 20:24:35 +02:00
xxLnolan 308ad40e46 fix(keycode): map HID non-US backslash key 2026-10-16 20:24:15 +02:00
Alexej Szpevák d97d6efb1b fix(libkernel): refuse descriptor calls on app0.zar files
flock, fstatfs, ftruncate, fsync, fdatasync, getdirentries, fchmod, futimes and mmap on an archived descriptor acted on its null device and succeeded or failed with an unrelated errno. They now throw NotImplemented, each covered by the kernel archive test; mmap is noexcept, so its refusal is checked through the terminate handler.
2026-10-16 20:03:32 +02:00
Alexej Szpevák 819d5c4a6d docs(usage): describe app0.zar 2026-10-16 20:03:32 +02:00
Alexej Szpevák 9b911ed510 feat(libkernel): serve app0.zar files through the file calls
sceKernelOpen and open give an archived file a read-only null-device descriptor. Reads, positioned, vectored and AIO reads, seeks, fstat and FIONREAD are served from the archive; dup, dup2 and F_DUPFD share the position. sceKernelStat and sceKernelCheckReachability see archived paths.

Writing opens fail with EROFS, O_CREAT|O_EXCL with EEXIST and O_DIRECTORY on a file with ENOTDIR. Opening an archived directory or one merged with the disk throws until getdents can list it.
2026-10-16 20:03:32 +02:00
Alexej Szpevák b71434d9b7 feat(libc): read app0.zar beside app0 and refuse archive-only paths elsewhere
A ZArchive named app0.zar beside app0/ is a read-only layer under it. libc opens it at the first path resolution, looks paths missing from app0/ up case-insensitively, reads files across compressed blocks and keeps the archived descriptor table with shared positions.

Resolving an archive-only path through a call that does not read the archive throws instead of failing with ENOENT, as do opendir of a directory present in both places, fdopen of an archived descriptor and chdir into the archive. A path through .. in an archive-only directory resolves.
2026-10-16 20:03:26 +02:00
Alexej Szpevák aa8c2f65e2 build: add zstd and ZArchive submodules
Build zstd v1.5.7 and ZArchive from source as static, position-independent libraries that are not part of the default target set. Their symbols stay out of the dynamic export table of the library that links them.
2026-10-16 20:03:26 +02:00
AlxcBTW ad2b2b4c9c docs: add AGENTS.md with the rules coding agents break 2026-10-16 19:41:49 +02:00
Adrià 93e54cedd3 Merge pull request #5950 from mrfelek/test/sparse-dmabuf-skip-large-limit
test(agc): skip the sparse dma-buf import tests when udmabuf size_limit_mb is above 1024
2026-10-16 19:40:40 +02:00
Adrià FranchandClaude 262de6ab19 ci: cache the submodules, FFmpeg and configure checks of the Windows job
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 19:23:16 +02:00
MarcZX100 3dca09e194 fix(agc): validate geometry shader capability 2026-10-16 17:22:42 +00:00
Adrià d9b696ddbb Merge pull request #6902 from adriadam10/ci/main-cancel-older
ci: let a push to main cancel the build of the previous one
2026-10-16 19:14:52 +02:00
Adrià FranchandClaude bca62ea696 ci: let a push to main cancel the build of the previous one
Push builds of main ran one after another, so a merge waited for the
builds of every earlier merge before main got a result for its tree; a
fix of a red main sat behind a build of the tree it fixes. The newest
push now cancels the build in progress, like pull request and dispatched
builds already do. The merge queue's baselines already skip cancelled
main builds and use the nearest completed ones.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 19:14:07 +02:00
Adrià FranchandClaude 13f6191b75 ci: build and run only the tests a change reaches on request
A new select input of the Build workflow limits the Linux and Windows jobs
to the test executables and tests whose build inputs the merged pull
requests change. Push builds of main always build and run everything and
save the test graph of their tree; dispatched runs with select restore the
latest graph and fall back to a full run without one.

tools/select_tests.py dump walks the ninja graph of every test executable
(order-only dependencies included, so prx libraries loaded at run time are
in it) plus the header dependencies of its objects, the CMake files that
register each test, the source files its command line names, and its
fixtures. select picks the tests whose closure, registration or arguments
contain a changed file, and every test that is not a native executable of
the tree; files no build reads select the tests under their directory;
changes to the root build, cmake/, 3rdparty/, the workflow or the tool run
everything. Tests added since the graph was written always run. ctest gets
the selection as -I indices through the tool, which keeps the cmd shell on
Windows and stays under its command line limit.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 19:10:16 +02:00
MarcZX100 931d209295 docs(debt): add PPSA26344 call-site details 2026-10-16 16:59:51 +00:00
Adrià 66e290f1c0 Merge pull request #6889 from adriadam10/fix/graphics-vertex-bda-static
test(agc): keep the vertex BDA shader code static
2026-10-16 18:33:45 +02:00
Adrià FranchandClaude 11f83f2d47 test(agc): keep the vertex BDA shader code static
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 18:33:34 +02:00
Adrià 5db65d93a0 Merge pull request #6888 from adriadam10/fix/eligibility-node-timeout
test(ci): give the eligibility gate's node runs 90 s
2026-10-16 18:33:11 +02:00
Adrià FranchandClaude a5a0aa0213 test(ci): give the eligibility gate's node runs 90 s
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 18:32:52 +02:00
Adrià 143f130553 Merge pull request #6885 from adriadam10/fix/journal-cancel-bound
test(agc): bound the cancelled journal replay from its own start
2026-10-16 18:14:05 +02:00