Commit Graph
14017 Commits
Author SHA1 Message Date
Adrià b8436ff244 Merge pull request #6355 from adriadam10/ci/dispatch-more-prs
ci(build): build up to 40 pull requests together
2026-10-15 15:00:01 +02:00
Adrià FranchandClaude b139ac9b9f ci(build): build up to 40 pull requests together
Co-Authored-By: Claude <[email protected]>
2026-10-15 14:59:51 +02:00
Adrià f0a1e3443b Merge pull request #5691 from xXPBSXx/fix/video-out-flip-rate-error-v2
fix(libSceVideoOut): return VIDEO_OUT_ERROR_INVALID_VALUE for a flip rate outside 0..2
2026-10-15 14:59:01 +02:00
Nithishvelan M cb5b3e22a2 fix(libSceMsgDialog.native): return error codes instead of throwing in initialize and terminate 2026-10-15 18:28:04 +05:30
Get-fix f7ec358ec4 test(relinker): convert the SCE module extent fixtures for every target
The two fixtures were converted for Windows only. They now run for
Linux, Windows and macOS. The syscall scan of a module with data after
its code fails on all three without the fix, and the loader path
without PT_INTERP fails on Windows and macOS, so the macOS code
analysis stays under test.
2026-10-15 15:57:49 +03:00
Adrià 2b8a685dfe Merge pull request #5683 from MarcZX100/codex/rosetta-scalar-compare-5642
fix(relinker): isolate Rosetta scalar compare hazards
2026-10-15 14:57:14 +02:00
Adrià 646c6a2485 Merge pull request #5678 from MarcZX100/codex/split-conventions-tests-5672
test(tools): shard conventions comment checks under CTest timeout
2026-10-15 14:56:52 +02:00
Adrià 54ee3c0945 Merge pull request #5675 from fogydes/fix/test-windows-fixed-base-error-mode
test(relinker): suppress Windows error dialog in occupied base collision check
2026-10-15 14:56:20 +02:00
Adrià f3c00ad28e Merge pull request #5670 from fogydes/fix/relinker-cfg-address-overflow-guards
fix(relinker): prevent address overflow and signed UB in CFG, GOT access, and entry point analysis
2026-10-15 14:55:50 +02:00
Adrià e890b4a385 Merge pull request #5660 from milescoviello/fix/ngs2-empty-waveform-blocks
fix(ngs2): accept empty waveform blocks and matrix levels on a voice without a format
2026-10-15 14:54:20 +02:00
Adrià 3ee5371915 Merge pull request #5627 from AlxcBTW/fix/agc-htile-written-by-any-kernel
fix(agc): take depth fast clears from HTILE written by any kernel
2026-10-15 14:52:34 +02:00
Get-fix 38fd195e9a feat(libSceFreeType): implement the six FreeType functions OpenOrbis samples use
PS4 homebrew built with the OpenOrbis toolchain draws text through the
PS4 libSceFreeType: the font, keyboard, threading, system and SDL2
samples stop at start-up with "unresolved ELF import GNsiLzm4SH8"
(FT_Init_FreeType) and the five other functions they import.

FT_Init_FreeType, FT_New_Face, FT_Set_Pixel_Sizes, FT_Get_Char_Index,
FT_Load_Glyph and FT_Render_Glyph now call the bundled FreeType. The
guest reads FreeType's structures directly with the LP64 layout, where
FT_Long and FT_Pos are 64 bits, so the face, size, charmap and glyph
slot it receives are copies in that layout, updated after each call;
outline points are converted and written back before rendering. Guest
font paths are resolved and the file is read into memory. The face
index is masked as FreeType does before it is narrowed, and character
codes are truncated to 32 bits as FreeType does. The bundled FreeType's
own functions are kept out of the library's exports.
2026-10-15 15:52:17 +03:00
umangandClaude Opus 5.5 47f7118241 fix(agc): sample a depth surface's stencil plane through an R8_UNORM view
Vulkan cannot view a stencil aspect as UNORM, so an 8-bit UNORM view of
a stencil plane threw. Copy the stencil aspect through a buffer into an
R8_UNORM image of the surface's extent and sample that. The copy is kept
on the surface and refreshed when the surface was written since, or while
it is the bound depth target.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 14:51:43 +02:00
Adrià 16af28e90a Merge pull request #5585 from nikowolf123/ci/build-relinker-gate-merged-prs
ci(build): accept merged pull requests in the relinker author check
2026-10-15 14:51:31 +02:00
Adrià a61c8a37e0 Merge pull request #5554 from Amoenus/codex/native-depth-htile-clears
fix(agc): apply completion-proven native depth clears
2026-10-15 14:51:07 +02:00
Joey Fisher 6b14169a45 fix(agc): resolve a GPU-read indirect dispatch at the gate when the run writes its arguments
The dispatch look-ahead stopped before every DISPATCH_INDIRECT whose
arguments an earlier dispatch of the run may write, or whose earlier
dispatches have unknown writes. That stop protects a CPU read of the
arguments at the resolve, which only the thread-dimensions, misaligned and
APS5_NO_GPU_INDIRECT paths make. A GPU-read indirect dispatch never reads
its arguments on the CPU, so the stop left it and every dispatch behind it
to be captured when the worker reached them, after the GPU mutex waits
between dispatches. That is the late read the group capture exists to
avoid: by then the title had re-armed the gate and reused its table slots,
and the capture read descriptors the title had not written yet. The
look-ahead now stops only before an indirect dispatch whose arguments it
would read on the CPU; the path choice is shared with dispatchIndirect.

AgcDriverDispatchesAdoptedAhead_nid_postfix counts the dispatches adopted
from the look-ahead so a test can tell a gate-time capture from a late one.
Two tests check through it that both dispatches of a gated group are
captured at the gate: one whose writer stores the indirect arguments
through a registered binding, and one whose writer stores them through a
binding misaligned in its host import.
2026-10-15 06:50:57 -06:00
Adrià 598dd15954 Merge pull request #5763 from angleboyndn-stack/fix/trace-digest-gpu-mutex-waits
fix(tools): classify GPU mutex trace slices as waits
2026-10-15 14:48:45 +02:00
Adrià 3d343ed12e Merge pull request #6349 from adriadam10/fix/agc-draw-key-trace-tls
fix(agc): keep the draw key trace map out of module teardown on Windows
2026-10-15 14:48:23 +02:00
Adrià FranchandClaude 57ce03944d fix(agc): keep the draw key trace map out of module teardown on Windows
Co-Authored-By: Claude <[email protected]>
2026-10-15 14:48:04 +02:00
Adrià 92cdc7b622 Merge pull request #5768 from GalaxyGamingFR/fix/trace-digest-utf8-stdout
fix(trace_digest): print non-ASCII names on a legacy console
2026-10-15 14:46:44 +02:00
thuanquangandClaude Opus 5.5 f40acdb2c6 fix(relinker): list converted modules correctly for a relative output path
The runtime layout printed ../app0/sce_module/... under app0/ when the
output path contained . or .. components (./out.elf), because the module
paths are normal and the output directory was not.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 19:44:50 +07:00
fogydes 2210200232 fix(libkernel): reject unknown event flag creation attributes 2026-10-15 18:14:45 +05:30
Adrià FranchandClaude bc3f81c198 test(libc): pin vasprintf allocation failure; move debt line off the section end
Co-Authored-By: Claude <[email protected]>
2026-10-15 14:44:16 +02:00
fogydes ceb963c6dd fix(libc): check allocation result in vasprintf and guard null pointer in strndup 2026-10-15 14:43:04 +02:00
Adrià 1d1c7615c3 Merge pull request #5767 from GalaxyGamingFR/fix/stubgen-func-name
fix(stubgen): report named stubs by __func__
2026-10-15 14:41:41 +02:00
fogydes 33d93315f7 fix(libSceRtc): use safe tick addition in local clock and validate null pointer checks 2026-10-15 18:10:25 +05:30
Adrià FranchandClaude 1b94074869 fix(conventions): also check comments in .glsl shaders
Co-Authored-By: Claude <[email protected]>
2026-10-15 14:39:47 +02:00
GalaxyGamingFRandClaude Opus 5.5 939b3d8a9f fix(conventions): check comments in GLSL shaders
The comment rule only scanned C++, Python and CMake files, so a
comment added to a .comp, .frag or .vert shader passed the check.
TextureDetile.comp and ColorTransfer.comp carry such comments today.
Shaders are now masked with the same C-style lexer and report
comment on changed lines, with the same #endif allowance and the
same technical-debt exemption as C++.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012zyXkUzTZGh3nBwNMtrLaW
2026-10-15 14:39:25 +02:00
Adrià b08db6a093 Merge pull request #5765 from GalaxyGamingFR/fix/conventions-depends-on-list
fix(conventions): accept Depends on answered as a list
2026-10-15 14:39:14 +02:00
hypermistandClaude Opus 5.5 4f608a8c49 feat(libc): add exact long double and BSD math exports
copysignl, fdiml, fmodl, remainderl, remquol, logbl, ilogbl, rintl, roundl,
lroundl, lrintl, llrintl, sqrtl, modfl, nanl, scalblnl, fmal, rint(f),
lrint(f), llrint(f), drem(f), scalbln(f), scalb(f), finite(f),
__fpclassifyl, __isinfl, __isnanl, __isnormall, _LDtest, _Dclass, _FDclass,
_LDclass and _LDsign, matching the libc.prx bundled with PPSA08427 bit for
bit, including NaN propagation, errno and FreeBSD fmal special cases.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Q8tinbP1MUpUaDsbNWnGnu
2026-10-16 01:38:41 +13:00
Adrià 8b2aabf275 Merge pull request #5723 from GalaxyGamingFR/fix/debt-split-loose-list
fix(tools): keep loose-list continuations with their debt entry
2026-10-15 14:30:15 +02:00
Adrià Franch d17895ed84 test(agc): size the case table for the neighbour case added on main 2026-10-15 14:26:21 +02:00
Adrià Franch 9c765fa0fa test(agc): keep the sampled output surface alive until the queued read finishes 2026-10-15 14:26:14 +02:00
MarcZX100 da1a739368 test(agc): cover repeated untracked storage writes after sampling 2026-10-15 14:26:14 +02:00
Adrià 4e9a2a8719 Merge pull request #5736 from wachi35676/fix/tools-debt-split-line-endings
fix(tools): write technical debt files with LF line endings
2026-10-15 14:20:46 +02:00
Adrià 2dbdce6c4d Merge pull request #5729 from Ondra97/codex/fix-package-tracy-runtime
fix(release): include the enabled Tracy runtime
2026-10-15 14:19:46 +02:00
Yunus Shaikh 695ec6cc4f test(agc): resolve the pipeline ABI of stages that only their use can prepare
Four prepared-shader modes, run with the recompiler's failure memo off
so a second preparation would show as a second front-end build:

- compute: a shader that calls user-data pointers is resolved twice and
  prepared once, then its dispatch links the callees and every lane
  holds 3 * (5 + 64); a shader whose registration preparation failed
  still throws its stored failure from the ABI call.
- pixel: a waterfall whose T# pointer is a phi of user data and a
  ballot is logged once with its reason, resolved again without a
  second preparation, and resolved for another state inside a
  ShaderPreparationScope that commits. A draw of it fails at use with
  the same reason, and the ABI call then throws the driver's failure.
- stages: the same chain in a vertex shader that registration leaves
  alone, through ResolveShaderAbi inside a scope and through
  ResolveGraphicsStagesAbi.
- rectangle: sceAgcDriverResolveGraphicsAbi with a pixel shader
  deferred at registration and with one deferred at its ABI call.
2026-10-15 05:18:11 -07:00
Yunus Shaikh 8c55d15aa4 fix(agc): leave a stage the title's pipeline ABI cannot prepare to its first use
sceAgcDriverResolveShaderAbi and sceAgcDriverResolveGraphicsStagesAbi
prepare every stage when the title creates its pipeline, and threw when
the recompiler could not: Resident Evil Village stops there on a pixel
shader whose T# pointer is a phi of user data and a ballot, and a
compute shader that calls user-data pointers stopped the same way
although its dispatch links the callees.

ResolveShaderAbi and PrepareGraphicsStages now catch the failure inside
their own preparation transaction, so the ShaderPreparationScope that
libSceAgc opens around the call still commits. The shader is logged
once, marked deferred like a shader deferred at registration, and the
ABI key is recorded, so a repeated call prepares nothing. The draw or
dispatch that uses the stage prepares it as before and fails there if
it cannot. ResolvePreparedGraphics skips the rectangles of a deferred
stage that has no artifact yet, which also lets a stage deferred at
registration through sceAgcDriverResolveGraphicsAbi.

Driver failures, ProcessShutdown and a failure stored by the shader's
registration preparation still propagate.
2026-10-15 05:18:11 -07:00
Adrià 71bd2876e5 Merge pull request #5706 from AlexOfTheForest/test/conventions-pr-template
test(tools): cover the pull request template checks
2026-10-15 14:17:08 +02:00
Adrià FranchandClaude 1f128cc0b5 style(tools): blank line between tests
Co-Authored-By: Claude <[email protected]>
2026-10-15 14:16:54 +02:00
GalaxyGamingFRandClaude Opus 5.5 54633848ac fix(tools): keep loose-list continuations with their debt entry
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012zyXkUzTZGh3nBwNMtrLaW
2026-10-15 14:16:54 +02:00
Adrià de663b8841 Merge pull request #6333 from milescoviello/fix/pm4-tests-recompiler-includes
fix(agc): link agc_driver_pm4_tests against the shader recompiler
2026-10-15 14:16:40 +02:00
fogydes c836b3b55b fix(libkernel): protect app metadata state across threads and validate icon stream read 2026-10-15 17:46:34 +05:30
JJenkx ad78fbcdf7 fix(libkernel): stabilize virtual-query layout across hosts 2026-10-15 08:16:22 -04:00
Adrià f7a90d6fd6 Merge pull request #5721 from GalaxyGamingFR/fix/stubgen-module-prx-suffix
fix(tools): strip .prx suffix from stubgen module name
2026-10-15 14:16:14 +02:00
Adrià f728e37955 Merge pull request #5702 from AlexOfTheForest/test/runtime-layout
test(cli): cover RuntimeLayout file tree output
2026-10-15 14:15:39 +02:00
hypermistandClaude Opus 5.5 6103a3e0b9 feat(libc): implement the __std vectorized algorithm helpers
__std_find_trivial(_unsized), __std_count_trivial, __std_min/max/minmax_element,
__std_reverse_trivially_swappable, __std_reverse_copy_trivially_copyable and
__std_swap_ranges_trivially_swappable_noalias for 1-, 2-, 4- and 8-byte
elements, matching the libc.prx bundled with PPSA08427 including the rescan of
the first aligned block in the unsized find.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Q8tinbP1MUpUaDsbNWnGnu
2026-10-16 01:15:23 +13:00
Adrià 7a22c43027 Merge pull request #5695 from YossiYad/fix/relinker-executable-mode
fix(relinker): write Linux and macOS executables with execute permission
2026-10-15 14:15:08 +02:00
Adrià 705b32d919 Merge pull request #5719 from Ondra97/codex/fix-trace-uncompressed-summary
fix(tools): retain summaries for decompressed traces
2026-10-15 14:14:31 +02:00
Adrià e53927780c Merge pull request #5671 from oneandonlydean/fix/unwatch-hook-blocks
fix(agc): save pending storage results in every 64 KiB block that leaves the write watch
2026-10-15 14:13:48 +02:00