Commit Graph
14017 Commits
Author SHA1 Message Date
Adrià ec77a616b6 Merge pull request #3395 from LeandroLP23/fix/kernel-mkdir-enotdir
fix(libkernel): report ENOTDIR from mkdir and rmdir when a path component is a file
2026-10-11 11:55:48 +02:00
Adrià 76f2d72d40 Merge pull request #3384 from sypher69/fix/sce-dynlibdata-relocation-offsets
fix(relinker): resolve SCE relocation tables relative to dynlibdata
2026-10-11 11:55:28 +02:00
Achraf ReyaniandClaude Opus 5.5 0eaf2ec159 test(libkernel): wait until 50 ms have passed before the first process time read
sleep_for can return up to a scheduler tick early against the
performance counter the guest clock reads, so the first reading could be
just under 50 ms on a loaded machine.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 18:51:47 +09:00
Adrià 5c4bc7d607 Merge pull request #3390 from GalaxyGamingFR/fix/check-skips-device-messages
fix(ci): recognise every device-limitation skip message in check_skips
2026-10-11 11:51:46 +02:00
Adrià b70a0e278f Merge pull request #1491 from Celegans12/feat/shader-tessellation-triangle-patches
feat(shader): implement triangle-patch tessellation
2026-10-11 11:50:50 +02:00
tototomate123 4a62b6220b fix(build): export the Windows dynamic loader test executable 2026-10-11 11:50:44 +02:00
tototomate123 19b0359f13 fix(loader): support main-module sceKernelDlsym 2026-10-11 11:50:44 +02:00
Adrià FranchandClaude af9dfbfab9 test(libs): report the failing guest_crt check and compare localeconv per module
Co-Authored-By: Claude <[email protected]>
2026-10-11 11:49:34 +02:00
Hannah Lyons 0e8dc6f20f feat(libkernel_sys): implement link 2026-10-11 05:47:59 -04:00
Achraf ReyaniandClaude Opus 5.5 30a3cbea7d fix(shader): discard two nodiscard results explicitly
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 18:45:44 +09:00
Adrià a73a1af9c8 Merge pull request #3382 from babyhuey/feat/libkernel-readv
feat(libkernel): implement readv and writev
2026-10-11 11:43:45 +02:00
MathiasDevelopes 6d70a46f74 docs: remove gap between technical debt entries 2026-10-11 11:43:36 +02:00
MathiasDevelopes 0f45675768 feat(libSceNpWebApi2): export sceNpWebApi2PushEventAbortHandle
Titles that import it now load; calling it throws until push event
handles have operations that can be aborted.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
(cherry picked from commit f50cb08c988736d645f0cc1c329f911f732fa935)
(cherry picked from commit ae3227dbfa2c972b36242056df5971d858ac65c3)
(cherry picked from commit 3df66a6a5dd9f0cd73daaee1342c22742c1915e4)
2026-10-11 11:43:35 +02:00
GalaxyGamingFRandClaude Fable 5.1 9c42733c46 docs: show the Depends on form the conventions check accepts
CONTRIBUTING.md told authors to write `Depends on #N` in the
description, but the pr-template rule in tools/check_conventions.py
only accepts the checklist line `Depends on: #N` or `Depends on: none`
from the pull request template. A pull request that followed the
document failed the Conventions job with "fill Depends on with #N or
none". The sentence now shows the checklist form.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_01V9UU71SP1UKGR51Sowbgmq
2026-10-11 02:43:06 -07:00
Alex ColliniandClaude Opus 5.5 f3e654a4f5 fix(recompiler): split descriptor webs selected per lane
A T# picked per lane with SelectU32 and made uniform with
v_readfirstlane, as in a waterfall loop, left a descriptor web without
Phis that the web walk could not split. CollectDescriptorPhis now steps
through ReadFirstLane, and a Phi-free tuple containing SelectU32 or
ReadFirstLane is split on the shared condition (SelectU32) or wrapped in
a matching ReadFirstLane. The new nodes are placed after the last
original node of the tuple in its block and inserted only when the web
is split; otherwise they are invalidated like the web's Phis.

PPSA26344 compute shader 0x800037f200 selects its T# per lane between
SRT reads or zero and reads the first lane of the result.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 18:42:56 +09:00
Alex ColliniandClaude Opus 5.5 5a9d731540 fix(recompiler): evaluate an out-of-range constant buffer read as zero
s_buffer_load returns zero for dwords outside the V#'s range. The SRT
evaluator refused such a read instead, so evaluating a descriptor failed
as soon as one arm of a split T# read through a null or short V#, even
when that arm is never taken. The evaluator now returns zero for those
reads, as the hardware does.

PPSA26344 compute shader 0x800037f200 reads one arm's T# through a null
V# and stopped at "SrtWalker::EvaluateRuntimeSources failed to evaluate
runtime sources".

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 18:42:47 +09:00
GalaxyGamingFRandClaude Fable 5.1 50c288810e fix(tools): key import audit stubs by library
source_stubs pooled done NIDs across all libraries, so a throwing stub
in libSceShare.native counted as implemented when libSceShare had the
same function. Stubs are now keyed by (library.prx, nid) and audit marks
an import stub only when every provider of it is a stub.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_01V9UU71SP1UKGR51Sowbgmq
2026-10-11 02:42:36 -07:00
Pouare514 5290f92876 fix(libs): share Sony CRT semantics between libc and libSceAmpr with tests 2026-10-11 11:42:31 +02:00
GalaxyGamingFRandClaude Fable 5.1 15f34d3043 fix(tools): decode pr_overlap git output with errors=replace
One PR diff containing a byte that is not valid UTF-8 made git() and
merge() raise, which aborted the hourly run and dropped the overlap
comment on every PR. Both subprocess calls now pass errors="replace",
matching check_conventions.py. A test commits a Latin-1 byte and checks
the export is still found.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_01V9UU71SP1UKGR51Sowbgmq
2026-10-11 02:42:08 -07:00
GalaxyGamingFRandClaude Fable 5.1 2f1b4aaf97 fix(conventions): count * and + checklist bullets as unchecked
The pull request check only matched unchecked items written with a dash,
so a checklist rewritten with * or + bullets passed with every box empty.
GitHub renders all three bullet styles as task items. The pattern now
accepts any of them, and new tests cover each bullet style.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_01V9UU71SP1UKGR51Sowbgmq
2026-10-11 02:41:54 -07:00
Adrià dbc3b0679a Merge pull request #2541 from maoxin1234/fix/sysmodule-trophy2-module-id
fix(libSceSysmodule): register Trophy2 module ID
2026-10-11 11:41:43 +02:00
Feuris e2b11c2dd8 feat(libc): implement abs 2026-10-11 06:41:00 -03:00
Adrià 946ffa08d4 Merge pull request #3372 from alfalfa-star/fix/agc-fast-clear-import-window
fix(agc): keep a fast-clear copy where an import window can stamp watched memory
2026-10-11 11:40:15 +02:00
Semir Kabir cbd18363bd feat(libSceUsbd): implement transfer allocation and event handling for the no-device path 2026-10-11 09:40:14 +00:00
Adrià a31732c5ff Merge pull request #3365 from MathiasDevelopes/codex/fix-windows-unscoped-imports
fix(relinker): load needed providers for unscoped Windows imports
2026-10-11 11:40:05 +02:00
Adrià 9a1f6f44ac Merge pull request #3379 from CouchRiv/fix-shader-fold-bitreverse32
fix(shader): fold BitReverse32 of an immediate
2026-10-11 11:39:04 +02:00
Adrià 66d577d428 Merge pull request #3378 from GalaxyGamingFR/fix/conventions-quoted-paths
fix(conventions): read non-ASCII paths unquoted from git
2026-10-11 11:37:57 +02:00
Adrià FranchandClaude c8f8014ea2 docs(debt): local programs get one artifact per tessellation configuration
Co-Authored-By: Claude <[email protected]>
2026-10-11 11:37:19 +02:00
Hannah Lyons 63a4014236 feat(libkernel): implement readv and writev 2026-10-11 05:36:38 -04:00
Adrià 097f4e2284 Merge pull request #3373 from MathiasDevelopes/codex/feat-coredump-thread-context-export
feat(libkernel): export sceCoredumpGetThreadContextInfo
2026-10-11 11:36:29 +02:00
Dean Galvin 8da461ba51 perf(agc-driver): fix the host-import window at 8 MiB
The window was read from APS5_HOST_IMPORT_WINDOW_MIB on the device.
It is now always 8 MiB, the value the previous commit was measured
with; SetHostImportWindow stays for the tests. TechnicalDebt records
the window as a choice.
2026-10-11 22:35:37 +13:00
maoxin1234 5ee3ef8cb8 fix(libSceSysmodule): recognize Trophy2 module id 2026-10-11 11:35:37 +02:00
Cesar RodriguezandClaude Opus 5.5 a947303731 perf(agc-driver): join host-import spans only over whole aligned windows
one span. A title that grows a heap 16 KiB at a time then re-imports the
whole chain on every growth: Ratchet & Clank: Rift Apart re-imported about
1.5 TiB while loading its first scene, and NVIDIA refused grown spans with
VK_ERROR_OUT_OF_DEVICE_MEMORY, which leaves those ranges copied per draw.

Ranges are now joined only when a chain covers a whole aligned window (8 MiB
by default, APS5_HOST_IMPORT_WINDOW_MIB on the device); until the window is
complete each range is imported on its own, and a span never crosses a
window edge. Growth therefore re-imports a range once more at most when its
window completes, instead of the chain on every growth. Joining any part of
a window was tried first and still re-imported 2 GB per second in Ratchet,
as each growth re-imported the window's partial span. A single range larger
than the window is imported whole. SetHostImportWindow(0) keeps the
unbounded spans, which is what the existing tests use.

The new importWindowTests (agc_driver_graphics) checks that a full window is
one span, that a partly filled window imports its range alone, that a view
crossing a window edge gets no import, and that completing one window leaves
the other window's import in place; with the window ignored it fails.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 22:35:28 +13:00
Adrià af45296363 Merge pull request #1780 from Roojool/fix/avplayer-eof-wakeup
fix(avplayer): use precise Windows notified waits for EOF polling
2026-10-11 11:35:23 +02:00
Dani cdfc11cf56 fix(relinker): resolve SCE relocation tables relative to dynlibdata 2026-10-11 11:34:59 +02:00
Adrià f4b7151097 Merge pull request #2510 from Edd016/fix/hw-oracle-mingw-lld
fix(hw-oracle): select the AMDGPU ELF emulation when linking kernels
2026-10-11 11:33:58 +02:00
GalaxyGamingFRandClaude Fable 5.1 73b4bdb600 fix(tools): accept more device limitation skips in check_skips
The Linux skip check only recognised subgroup, "the device has no",
"the device reports" and "no display", so tests that skip with
"the device lacks ...", "does not import", "imports no", "flushes",
"binds fewer", "no usable Vulkan device" or "host imports are
unavailable" failed the job. The regex now covers those messages, and
unrelated reasons such as "flaky" still fail. A unit test covers the
messages and an end-to-end run.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_01V9UU71SP1UKGR51Sowbgmq
2026-10-11 02:33:31 -07:00
boykopovar 480e68a84d fix(relinker): format module size to two decimal places 2026-10-11 12:33:21 +03:00
Adrià Franch de2f7aca22 test(relinker): drop docstring from loader path check 2026-10-11 11:33:17 +02:00
MathiasDevelopes 3f5c6e8336 test(relinker): remove disallowed loader test comments 2026-10-11 11:33:13 +02:00
MathiasDevelopes c245e3abc4 test(relinker): verify unscoped Windows provider load paths 2026-10-11 11:33:13 +02:00
MathiasDevelopes 2faa5dd6ed fix(relinker): load needed providers for unscoped Windows imports 2026-10-11 11:33:13 +02:00
Adrià 92ceadff7f Merge pull request #3376 from adriadam10/ci/pr-open-limit
ci(pr): limit open pull requests by the author's merged count
2026-10-11 11:33:10 +02:00
GalaxyGamingFRandClaude Fable 5.1 8365766e93 fix(conventions): read non-ASCII paths unquoted from git
With git's default core.quotePath=true, paths with non-ASCII characters
were printed quoted and octal-escaped. The checker stored the quoted
string as the path and then failed in git show with a traceback. git()
now passes core.quotePath=false so raw UTF-8 paths are used. A test
covers a diff containing a non-ASCII file name.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_01V9UU71SP1UKGR51Sowbgmq
2026-10-11 02:32:41 -07:00
Adrià e608d40265 Merge pull request #2051 from esatturan/fix/libkernel-umtx-interruptible-waits
fix(libkernel): let exception delivery interrupt mutex and rwlock waits
2026-10-11 11:31:40 +02:00
Adrià 65d4a8b189 Merge pull request #3375 from MarcZX100/codex/libc-unlocked-streams-lockfree-1765
feat(libc): implement unlocked character I/O
2026-10-11 11:31:03 +02:00
Adrià Franch 48c9156d10 docs: remove stray blank line in the TechnicalDebt list 2026-10-11 11:28:44 +02:00
Adrià FranchandClaude 14f585a439 ci(pr): limit open pull requests by the author's merged count
Authors with no merged pull requests can have 1 open, with at least 1
merged 20, and from 20 merged there is no limit. Reopening a pull
request runs the check again.

Co-Authored-By: Claude <[email protected]>
2026-10-11 11:28:43 +02:00
MathiasDevelopes 92303a2ee5 feat(libkernel): export sceCoredumpGetThreadContextInfo
Titles that import it now load; calling it throws like the other
coredump queries, since host crashes are not turned into guest dumps.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
(cherry picked from commit e0e5fd9ffbbaffdc065d1471ce1c91b144af5f98)
(cherry picked from commit 2ac0c88fdbb9e380b6eb5a37d5f98d557940f131)
(cherry picked from commit 1279010b1bc123d3b87664ede15ec6ab2ced806a)
2026-10-11 11:28:39 +02:00
Adrià c6ca798fe6 Merge pull request #1655 from mohdfaour03/fix/videoout-present-precise-wait
fix(videoout): wait for flips with the high-resolution condition on Windows
2026-10-11 11:27:48 +02:00