Commit Graph
2276 Commits
Author SHA1 Message Date
fdfawef324andClaude Opus 5.5 bdb0a3f59f fix(recompiler): bind no record of empty per-lane tables and compare bound modes only
A per-lane table V# with num_records 0, a null V# included, threw at dispatch
on its stride (0 is less than the record offset plus 32) although no lane can
hold a record, also when no lane enters the waterfall. With no records every
OOB_SELECT puts each load out of range (the GFX10 table in Mesa's
ac_descriptors.c), so such a table now binds no record and every lane that
runs the access reads zeros; the swizzle, ADD_TID, OOB_SELECT and stride
checks apply only to a V# with records.

The implicit-derivative mode check compared every bound record with record 0,
whose mode is 0 when it is null, so a table with a null record 0 and bound
records of one other mode was refused. Only bound records are compared now.
Lanes whose record is null or outside the table take the zero path under
record 0's mode, so their quad neighbours' derivatives can still be undefined;
the debt entry records this and the 16-record limit of the whole table.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 13:24:53 +02:00
fdfawef324andClaude Opus 5.5 8bca46fb06 fix(recompiler): refuse per-lane waterfall tables over masked T#s or mixed modes
A lane whose IDXEN load was skipped keeps the T# VGPRs it had before, and a
waterfall that reaches it uses that value as its T#. The fold refused only a
value that was itself a uniform descriptor or a table read, so a default T#
copied into the VGPRs under EXEC, or merged by a phi, was accepted and those
lanes read zeros. The skipped lanes' values are now followed through the masked
selects and phis that all eight dwords share, and the fold is refused when an
arm is a descriptor or a table read.

Every lane of a per-lane table runs the access with its own record, and the
runtime image mode picks the SPIR-V path per lane, so lanes of one quad whose
records need different modes take different paths around an implicit-derivative
sample or LOD query, where derivatives are undefined. Such a table now throws
at dispatch; accesses of one table share the check, so they keep one table.

The test also covers v_readfirstlane and v_cmpx_eq_u64 waterfalls and refuses
loops that compare seven T# dwords, run the image instruction after EXEC is
restored, or store.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 13:24:53 +02:00
fdfawef324andClaude Opus 5.5 f234476b21 feat(recompiler): plan waterfall loops over per-lane T#s as non-uniform tables
A waterfall loop (s_ff1 or v_readfirstlane picks a lane, v_readlane copies
its T# to SGPRs, v_cmpx_eq keeps the lanes whose T# VGPRs match, the image
instruction runs, the matched lanes leave the loop) reads the T# from VGPRs,
which no descriptor source evaluates, so planning failed with "GetImageResource
dword 0 is not a valid runtime value".

When every T# dword of an image read, sample, gather or query comes from
v_readlane_b32 or v_readfirstlane_b32 and the EXEC its results are written
under implies that each of them equals the lane's own VGPR, the access takes
each lane's own T#. A T# that each lane loaded with buffer_load_dword* (IDXEN)
from one evaluable V# becomes a bindless image table keyed by the lane's
index, addressed by the V# stride, and its slot is decorated NonUniform.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 13:24:53 +02:00
Adrià 1594e5aee8 Merge pull request #4756 from p3n1cillin/claude/ime-host-keyboard
feat(libSceIme): open a panel-less IME fed by the host keyboard
2026-10-14 12:57:32 +02:00
Adrià aa6b757662 Merge pull request #4725 from akkadbakkad89/feat/kernel-page-table-stats
feat(libkernel): count committed ranges in sceKernelGetPageTableStats
2026-10-14 12:56:24 +02:00
Dean de2ab1068a Merge pull request #4797 from gjonn/fix/ps-sample-interp-bary
fix(shader): load the PERSP_SAMPLE and LINEAR_SAMPLE I/J pairs
2026-10-14 23:55:50 +13:00
Dean e2cd7f49db Merge pull request #3897 from eliasbruno124-dev/fix/ssl-certificate-import
fix(ssl): retain loaded certificate authorities
2026-10-14 23:55:30 +13:00
Adrià 82f112d20f Merge pull request #4451 from Amoenus/codex/feat-alpha-to-coverage-dither8
feat(agc): emulate default eight-sample dithered alpha coverage
2026-10-14 12:55:07 +02:00
Adrià 98541c674e Merge pull request #2853 from alfalfa-star/feat/npwebapi2-request-timeout
feat(npwebapi2): implement sceNpWebApi2SetRequestTimeout
2026-10-14 12:49:48 +02:00
Adrià 29f4891e21 Merge pull request #5696 from gjonn/hdr-pq-display-buffers
feat(agc): present BT.2100 PQ display buffers on an SDR output
2026-10-14 12:49:21 +02:00
Dean 3e577edac2 Merge pull request #5160 from nikowolf123/fix/shader-lds-private-subword-stores
fix(shader): update per-invocation LDS without atomics
2026-10-14 23:30:37 +13:00
Dean 6ade14f52d Merge pull request #5679 from moong15/fix/agc-save-guest-bytes-before-untracked-results
fix(agc): save the guest bytes of units without a write generation when results land outside the write watch
2026-10-14 23:28:44 +13:00
Adrià 2a99157640 Merge pull request #4812 from AlxcBTW/feat/trace-summary-interval
feat(agc): add APS5_TRACE_SUMMARY_EVERY for summary lines of a long session
2026-10-14 12:24:56 +02:00
Dean c654b199bd Merge pull request #5049 from eljackjoestar-cmd/codex/scalar-buffer-descriptor-fields
fix(shader): ignore unused descriptor fields for scalar buffer loads
2026-10-14 23:06:33 +13:00
Romans Pokrovskis c8b3a37533 feat(agc): emulate default eight-sample dithered alpha coverage 2026-10-14 12:58:43 +03:00
Dean 7963f16d12 Merge pull request #5514 from ps54all/feat/libsceappcontent-addcont-delete
feat(libSceAppContent): export sceAppContentAddcontDelete
2026-10-14 22:57:30 +13:00
Dean 56429064fc Merge pull request #5226 from ErenYeager1836/carry/libSceSsl-connection-calls
feat(libSceSsl): add the connection calls
2026-10-14 22:55:56 +13:00
Dean 115dc95784 Merge pull request #5347 from MathiasDevelopes/codex/pr-agc-stencil-clear-state
fix(agc): initialize stencil control and reference masks
2026-10-14 22:48:14 +13:00
Dean c3bad39372 Merge pull request #5434 from milescoviello/fix/relinked-module-name-case
fix(libc): find a relinked module whose name differs in case
2026-10-14 22:41:23 +13:00
Dean 5744094e79 Merge pull request #5506 from codingreapermaps/feat/agc-z64kbx-color-targets
feat(agc): render into SW_64KB_Z_X color targets
2026-10-14 22:40:55 +13:00
Dean 318f237602 Merge pull request #5258 from JAB-dev/perf/unwind-info-cache
perf(libkernel): cache the unwind tables and image name per module on Windows
2026-10-14 22:39:58 +13:00
Dean 1a40d3d81f Merge pull request #5013 from p3n1cillin/claude/select-pipes
feat(libkernel): select on pipes on Windows
2026-10-14 22:39:38 +13:00
Dean 21da4061be Merge pull request #5413 from mariusyo07/feat/audioout2-disable-chat
feat(libSceAudioOut): implement sceAudioOut2DisableChat
2026-10-14 22:38:41 +13:00
eljackjoestar-cmd aa2abf801b fix(shader): ignore unused descriptor fields for scalar buffer loads 2026-10-14 22:38:13 +13:00
Dean 64380313b5 Merge pull request #5521 from codingreapermaps/feat/agc-alpha-coverage-without-color
fix(agc): alpha-to-coverage from a 32_AR MRT0 export without a color target
2026-10-14 22:37:55 +13:00
eliasbruno124-dev b737308eed fix(ssl): retain loaded certificate authorities 2026-10-14 22:34:22 +13:00
Dean 0b97f8b9f5 Merge pull request #3664 from alfalfa-star/feat/linux-wayland
feat(videoout): use native Wayland on Linux
2026-10-14 22:32:26 +13:00
Dean 2dbb729b78 Merge pull request #5738 from oneandonlydean/revert/5608
Revert "fix(libSceVideoOut): export unknown Onimusha import NID" (#5608)
2026-10-14 21:58:37 +13:00
Dean 2582ec1193 Merge pull request #5309 from hugodearaujo/feat/agc-sparse-dmabuf-import
feat(agc): import shared ranges above 64 MiB as sparse buffers over udmabuf chunks
2026-10-14 21:50:50 +13:00
Dean Galvin 6b4d3c8ae6 Revert "fix(libSceVideoOut): export unknown Onimusha import NID" (#5608)
The export turned YNw9Xk5iNWo from an unresolved import into a stub that throws. Dreaming Sarah (PPSA02929) calls it during start-up and now aborts with "YNw9Xk5iNWo not implemented" about 2 s in. Reverting until the function is implemented.
2026-10-14 21:40:28 +13:00
p3nicillinandClaude Opus 5.5 435be9905d feat(libSceIme): open a panel-less IME fed by the host keyboard
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 08:49:04 +01:00
Dean 1209d37072 Merge pull request #5705 from oneandonlydean/feat/host-cpu-check
feat(libkernel): stop at start-up on a host CPU without the PS5's extensions
2026-10-14 20:47:35 +13:00
Dean 327249d4e9 Merge pull request #5028 from nikowolf123/perf/structurizer-attempt-budget
perf(recompiler): iterate structurizer fixpoints in post-order and bound shared merge splitting growth
2026-10-14 20:45:02 +13:00
Dean eac1e26e29 Merge pull request #4926 from nikowolf123/feat/structurizer-complete-fallback
feat(recompiler): structure every control-flow graph the structurizer refuses
2026-10-14 20:44:09 +13:00
Dean 5ee94cf571 Merge pull request #4201 from Celegans12/feat/agc-tessellation-relative-patch-data
feat(agc): rebuild the hull's relative patch index when it is used as data
2026-10-14 20:39:33 +13:00
Dean Galvin 83a268a867 feat(libkernel): stop at start-up on a host CPU without the PS5's extensions
Titles run natively, so a host CPU without an extension that compiled Zen 2 code uses faults with an illegal instruction deep inside a title (#3719: SHLX, BMI2). libkernel now reads CPUID and XCR0 when it loads on Linux and Windows, logs the host CPU's extensions and throws, naming the CPU and the missing extensions, before any title code runs.
2026-10-14 20:29:57 +13:00
p3nicillinandClaude Opus 5.5 f288daf6fe feat(libkernel): select on pipes on Windows
select now checks pipe descriptors on Windows with the readiness test poll
already uses, so a pipe next to a libSceNet socket no longer throws.
RetroArch (PPSA99169) selects on libmicrohttpd's wake-up pipe beside its
listening socket. guest_select now runs on Windows too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 08:19:48 +01:00
Dean a3aeaf884b Merge pull request #5608 from hossiendehghan989/fix/videoout-unknown-nid-ynw9xk5inwo
fix(libSceVideoOut): export unknown Onimusha import NID
2026-10-14 20:17:13 +13:00
Dean 3152609030 Merge pull request #5454 from mohammad-alosta/feat/libc-swprintf-s
feat(libc): implement swprintf_s
2026-10-14 20:12:15 +13:00
hossiendehghan989 5dc7111924 fix(libSceVideoOut): export unknown Onimusha import NID 2026-10-14 20:04:08 +13:00
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
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
Dean f87799aa3a Merge pull request #5061 from p3n1cillin/claude/getdtablesize
feat(libkernel): add getdtablesize
2026-10-14 19:33:57 +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
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 <noreply@anthropic.com>
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
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