Commit Graph
14017 Commits
Author SHA1 Message Date
Gjon Gojcevic 76c0ba53e3 feat(agc): present BT.2100 PQ display buffers on an SDR output
Accept the 10-bit BT.2100 PQ display formats 0x8100070422000000 (red
in the low bits) and 0x8100070400000000 (blue in the low bits) and
convert them to 8-bit sRGB when presented: PQ EOTF, BT.2020 to BT.709
primaries, a luminance tone map whose white level is the tone-map
luminance sceSystemServiceGetHdrToneMapLuminance reports (reference
white min(203 nits, white level)), and the sRGB encoding.

The conversion runs on the CPU for linear buffers and DCC clear values,
in the color transfer shader for tiled guest buffers, and in the
presentation pass for resident images. The three share the PQ EOTF
table computed once in double precision.

AI-assisted: yes
2026-10-14 02:55:21 -04:00
Nithishvelan M 8e6889666a fix(libSceSsl): keep connect, read and write as NotImplemented stubs 2026-10-14 12:25:11 +05:30
MarcZX100 150c24ce70 docs: clarify app metadata selection and mounts 2026-10-14 06:55:10 +00:00
Claude bb5f7d7e07 Merge remote-tracking branch 'upstream/main' into pr-main
# Conflicts:
#	core/libs/tests/GuestFreebsdClocks.cpp
2026-10-14 06:49:51 +00:00
SandstromPLandClaude Opus 5.5 c73e9720ae fix(savedata): return a parameter error from sceSaveDataMount3 for an invalid directory name
An unterminated or empty directory name, "." or "..", or a name
containing "/", "\" or ":" now returns SAVE_DATA_ERROR_PARAMETER and
leaves the mount result unchanged. The SDK 12.000 reference lists that
code for an invalid parameter of sceSaveDataMount3, KytyPS5's
SaveDataMount3 returns it for an invalid name, and sceSaveDataDelete
and sceSaveDataConvert already return it here for the same check.
It threw before, which stopped Minecraft Preview (PPSA19639) on
entering a world.

The Mount3 trace now prints at most the 32 bytes of the directory name
and the 16 bytes of the mount point, since both can be unterminated
when the mount fails.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 12:19:09 +05:30
ivica00andCursor 6b164f21af fix(agc): publish occlusion counts before the ready marker
A polling CPU can observe bit 63 before the sample counts when one dispatch stores both. Clear that bit and publish each half first, then set it from a later dispatch once those stores are visible to the host.

Co-authored-by: Cursor <[email protected]>
2026-10-14 08:46:00 +02:00
raghav314andClaude Opus 5.5 73a808e9aa perf(agc): draw stages use their shared compiled result instead of a copy
Driver::draw copied every stage's compiled result (RecompileResult, with
its binding, push-constant and attribute vectors) out of the shared result
the capture materialized, once per stage per draw. The stages now point at
the shared result. Only the CPU path of an indirect draw rewrites a stage
(each record's patched user data is materialized again), so that path
copies the stages it may rewrite first, on a cache hit or a miss.

agc_driver_indirect_patched_stage draws through that path: a record that
patches the user data word a vertex stage writes as its depth must draw
with the record's value, not the register's.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 12:11:54 +05:30
Dean d8888df9b2 Merge pull request #5075 from SandstromPL/fix/ajm-opus-mono-family-255
fix(ajm): accept Opus mapping family 255 for a mono stream
2026-10-14 19:38:43 +13:00
Dean 4a34ebd5fa Merge pull request #4962 from fdfawef324/feat/libScePad-unknown-zBsgF0q8DIM
feat(libScePad): declare the unknown import zBsgF0q8DIM
2026-10-14 19:38:31 +13:00
ThatsLeo 895002149d perf(shader): map cached SPIR-V from the shader cache files
A cached variant kept its SPIR-V in memory for the whole run. On Linux and
macOS the words are now a view into the mapped cache file, and a freshly
compiled variant is written and mapped back, so the kernel can drop them.
2026-10-14 10:36:24 +04:00
Dean f87799aa3a Merge pull request #5061 from p3n1cillin/claude/getdtablesize
feat(libkernel): add getdtablesize
2026-10-14 19:33:57 +13:00
Dean 58e016f0c8 Merge pull request #4739 from Ondra97/codex/fix-windows-guest-tpoff
fix(relinker): relocate Windows guest TLS from its thread pointer
2026-10-14 19:33:32 +13:00
Dean 9ff1af5dd1 Merge pull request #4726 from Ondra97/codex/fix-sectionless-export-roots
fix(relinker): retain imports used by sectionless exports
2026-10-14 19:33:07 +13:00
xXPBSXxandClaude Sonnet 5.5 76e5edcacd docs(debt): note the unverified flip rate 60 of PPSA13356
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-14 08:32:36 +02:00
xXPBSXxandClaude Sonnet 5.5 a1c56b59e1 fix(libSceVideoOut): return VIDEO_OUT_ERROR_INVALID_VALUE for a flip rate outside 0..2
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-14 08:32:36 +02:00
Dean 1e72721963 Merge pull request #4754 from Dripl1x/codex/select-precise-wait
fix(libkernel): use precise waits for select timeouts
2026-10-14 19:30:02 +13:00
Dean d000959a6c Merge pull request #5313 from Raghav314/perf/agc-msaa-fill-host-only
perf(agc): do not store a compute fill a multisampled target takes as its clear
2026-10-14 19:28:50 +13:00
Dean 107190d11d Merge pull request #5573 from fma-rc/fix/agc-fuse-halves-scratch
fix(agc): keep fused geometry programs out of the caller's memory
2026-10-14 19:25:23 +13:00
umangandClaude Opus 5.5 f05086278d fix(agc): save the guest bytes of units without a write generation when results land outside the write watch
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 11:53:41 +05:30
Dean a94675fb17 Merge pull request #5039 from YossiYad/fix/agc-sample-array-target-layer
fix(agc): sample a slice-0 array color target as a 2D texture through its image
2026-10-14 19:20:40 +13:00
Dean bfad46ed30 Merge pull request #4878 from nikowolf123/perf/windows-import-hint
perf(agc): compare Windows direct imports only after a write-watch mark
2026-10-14 19:20:14 +13:00
babyhuey 292752ff5a fix(libc): fail stream calls on a stream that a failed freopen closed 2026-10-14 02:20:06 -04:00
Leandro Soares 8b400afc5d fix(relinker): move hazard scalar compares out of line for Rosetta 2026-10-14 06:19:58 +00:00
Dean 58d98de8c3 Merge pull request #4172 from Celegans12/fix/agc-tessellation-hull-lane-masks
fix(agc): lower hull exec masks restored through phis to own lane bits
2026-10-14 19:18:22 +13:00
Dean cd936f6373 Merge pull request #5205 from mrfelek/pr/skip-zero-count-indexed-draw
fix(agc): skip an indexed draw with no indices or instances
2026-10-14 19:18:02 +13:00
Dean a308b823d6 Merge pull request #5366 from codingreapermaps/feat/convert-keycode-get-character
feat(libSceConvertKeycode): implement sceConvertKeycodeGetCharacter for the US layout
2026-10-14 19:17:43 +13:00
Dean 043f420c87 Merge pull request #5348 from MathiasDevelopes/codex/pr-fiber-active-stack-range
fix(fiber): report the stack used by the executing fiber
2026-10-14 19:17:16 +13:00
Dean 591d39c393 Merge pull request #5005 from fdfawef324/feat/recompiler-aperture-source-values
feat(recompiler): read the scalar aperture sources as values
2026-10-14 19:16:56 +13:00
Dean d50c547aec Merge pull request #5344 from fdfawef324/fix/agc-count-depth-plane-uploads
fix(agc): count depth plane uploads toward the recorder's kept bytes
2026-10-14 19:16:35 +13:00
Dean 7bf36634c3 Merge pull request #5479 from ymatrix1/fix/agc-windows-query-above-userspace
fix(agc): report guest addresses above the user address space as unmapped on Windows
2026-10-14 19:16:15 +13:00
Dean 7e68acbb29 Merge pull request #4904 from EagleBearerYS/fix/libc-fflush-errors
fix(libc): return flush failures from fflush instead of throwing
2026-10-14 19:15:54 +13:00
Kurenaiiiii 1ce5c2c4e1 feat(libkernel): share pause wait loop and _sigprocmask restore in sigsuspend 2026-10-14 11:43:57 +05:30
Kurenaiiiii 38e2db378c docs(libkernel): record sigsuspend 32-signal mask limit 2026-10-14 11:42:20 +05:30
Kurenaiiiii b3d850d077 feat(libkernel): implement sigsuspend on the pending-signal set 2026-10-14 11:42:20 +05:30
Dean 6546a33944 Merge pull request #4728 from Ondra97/codex/fix-fdopen-access-mode
fix(libc): reject incompatible fdopen access modes on Windows
2026-10-14 19:06:55 +13:00
Dean ea53213fd4 Merge pull request #4674 from zaydzaari/research/kernel-system-version-size-1342
fix(libkernel): accept measured system version record values
2026-10-14 19:06:34 +13:00
Dean 9858d27be7 Merge pull request #4673 from milescoviello/fix/scenet-msg-dontwait
fix(libSceNet): accept MSG_DONTWAIT in the send and receive calls
2026-10-14 19:06:13 +13:00
Dean f38b70b5e8 Merge pull request #4777 from MarcZX100/codex/ngs2-patch-to-rack-4334
fix(ngs2): resolve voice patches to rack handles
2026-10-14 19:05:53 +13:00
Dean 26774fb7b7 Merge pull request #5081 from LeandroLP23/fix/recompiler-ngg-group-info
fix(recompiler): give vertex-path shaders the NGG group info
2026-10-14 19:05:32 +13:00
Dean de60fcd4d6 Merge pull request #5654 from milescoviello/fix/agc-block-copy-fast-reuse
fix(agc): refresh a block-copied texture the fast lookup would reuse
2026-10-14 19:05:11 +13:00
Yossi Yadgar 6b8ddfb5de docs(debt): note regular file mappings of mmap 2026-10-14 09:04:56 +03:00
Dean 46d3c132bb Merge pull request #4723 from gjonn/fix/hull-input-slot-component
fix(shader): place hull input components by their offset in the control-point slot
2026-10-14 19:04:50 +13:00
Yossi Yadgar e53268d9e9 test(libkernel): cover shared and private mappings of a regular file 2026-10-14 09:04:47 +03:00
Yossi Yadgar bc71ffb433 feat(libkernel): map regular files with mmap on Linux 2026-10-14 09:04:47 +03:00
Dean 9013e89b11 Merge pull request #5232 from johnmaia/fix/occlusion-dump-order
fix(agc): keep stores after occlusion dumps after them in a queued run
2026-10-14 19:04:06 +13:00
Yossi Yadgar 7262b10ae4 test(agc): flush the slice-0 draw before clearing the cached textures
SampleSliceZero cleared the cached textures while its draw's results
were still pending, so the storage image was torn down with them, which
ClearCachedTextures only expects at device teardown. On some runs the
next Run then read the first pass's slice 0 after filling it with the
initial value (3 of 20 on an RTX 4070, reported on the PR). It now
flushes and waits first, as Run does before its own clear.
2026-10-14 18:56:46 +13:00
Yossi Yadgar 70d7497a27 docs(debt): note the array layer views of slice-0 color targets 2026-10-14 18:56:46 +13:00
Yossi Yadgar faef399e8f fix(agc): sample a slice-0 array color target as a 2D texture through its image 2026-10-14 18:56:46 +13:00
Yossi Yadgar 71999169ae feat(agc): describe which layers of an array surface a texture view reads 2026-10-14 18:56:32 +13:00
NikoandClaude Opus 5.5 c99c89962f test(agc): cover per-block hints, fresh backing and unmarked stores
Three ways to break the untracked hint passed every test:
- hinted() without its coverage check walks, and resets, the marks of
  blocks that fresh backing put back under the watch;
- walkHints stamping the walk's first block instead of the marked page's
  block hides a store from an image over another block;
- compareUntracked without NewestStamp in a hinted key misses a GPU write
  into an import, which sets no mark and is only recorded by MarkWritten.

CheckUntrackedHint now walks the whole range after a store into its
second block and reads each block's hint on its own. It also recommits
fresh backing over the hinted range: the range must have no hint, and a
CPU store must still reach its collect. RunHintedImport hides a store's
mark and records it with MarkWritten, and the image must still be
uploaded at the next epoch. Each of the three changes above now fails
agc_write_tracking or agc_driver_dcc_keys_first_write.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 18:56:27 +13:00