Commit Graph
6285 Commits
Author SHA1 Message Date
0xcrstnandClaude Opus 5.5 d959b84152 fix(shader): treat a T# whose format is not a GFX10 image format as invalid
validImageDescriptor accepted any nonzero FORMAT, so words that are no T#
passed whenever their TYPE nibble was 8 or more. An optional descriptor web
arm holding such words was then not bound as a null image, and the dispatch
failed on a sampled image of an unsupported format instead. PPSA23566
(UFC 6) has such an arm (formats 402-463): a compute shader picks one of 32
SRT T#s through an s_setpc_b64 jump table indexed by min(i, 32), and the
default entry reaches the image_sample_lz with the loop-entry value of the
T# registers, which a constant-buffer load filled with floats. The console
never samples that arm: the default entry is taken only from iteration 32
on, when the registers hold iteration 31's T#.

A FORMAT outside the GFX10 image format table (Mesa gfx10-rsrc.json
GFX10_FORMAT: 1-77, 128-154, 156-182, 265-292) now makes the descriptor
invalid. An optional descriptor web arm is bound as a null image, as other
invalid arms are; a direct image is refused as invalid unless it is a null
descriptor, and an image table entry faults when selected with the
InvalidFormat reason.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 23:08:34 +03:00
0xcrstnandClaude Opus 5.5 70f7069fd0 fix(shader): fold descriptor web paths that hold EXEC or a lane mask
The descriptor web fold covered only program-counter values. PPSA23566
(UFC 6) compute shader 0x1163c84000 also has a path whose T# registers hold a
lane mask accumulated in a loop ("a Phi that does not resolve to one value:
Phi(CompositeExtractU32x4(Ballot(FPUnordGreaterThanEqual32), ...), BitwiseAnd32(...))"),
and throws on it while a career fight loads.

Treat EXEC and Ballot results like the program counter, also through loop
Phis: such a path selects the first descriptor, as before f5ba4e9c6.
Unwritten registers keep their own image. APS5_STRICT_DESCRIPTOR_WEBS=1
throws as before. The descriptor Phi test expects the program-counter, EXEC
and compare-mask entries to plan the loop's two SRT T#s.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 23:07:31 +03:00
0xcrstnandClaude Opus 5.5 16a2da03fa fix(shader): fold descriptor web paths that hold the program counter
f5ba4e9c6 made a T# split across SRT descriptors throw when one path's
descriptor dwords depend on the program counter. Such a path appears when a
loop's entry edge reaches the read with registers left from s_getpc_b64; a
descriptor built from the program counter is garbage on hardware too, so the
path does not reach the read in a working title. PPSA23566 (UFC 6) throws on
this for compute shader 0x1163c84000 while loading a career fight ("descriptor
web: a descriptor dword depends on the program counter").

Select the first descriptor on such a path again, as before f5ba4e9c6, for
program-counter values only; EXEC and compare-mask values still throw.
APS5_STRICT_DESCRIPTOR_WEBS=1 throws as before. The descriptor Phi test now
expects the program-counter entry to plan the loop's two SRT T#s.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 23:07:30 +03:00
Adrià cde1ffdedd Merge pull request #7254 from gjonn/feat/agc-layered-2d-array-color-views
feat(agc): render layered draws into 2D array color views
2026-10-19 22:05:15 +02:00
Adrià 7fe0790e59 Merge pull request #7388 from pushkarreddyy/feat/recompiler-waterfall-image-table
feat(recompiler): support waterfall select conditions and key bounds in pointer image tables
2026-10-19 22:04:09 +02:00
Dean f1861e4141 Merge pull request #7855 from KernelPanicNT/fix/pngdec-create-max-width
fix(libScePngDec): reject a maximum image width above 1000000
2026-10-20 08:52:31 +13:00
Adrià dfd22c1887 Merge pull request #7428 from mrfelek/fix/ngs2-setup-clears-callback
fix(libSceNgs2): clear the voice callback on sampler and mixer setup
2026-10-19 21:52:05 +02:00
Dean aea539e17a Merge pull request #7854 from KernelPanicNT/fix/userservice-initialize-priority
fix(libSceUserService): check the thread priority on initialization
2026-10-20 08:51:52 +13:00
Adrià f745930f03 Merge pull request #7413 from thuanquang/fix/table-call-hoisted-descriptor
fix(shader): link a table call whose descriptor load sits before its loop
2026-10-19 21:50:42 +02:00
voidlakhan 0d24f581f4 docs(ampr): preserve existing debt entries 2026-10-19 19:47:08 +00:00
XairRrR a1c0f34f4b Merge main into pr-7154
# Conflicts:
#	core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
2026-10-19 21:43:06 +02:00
Leonardo 2b64ff202c Merge branch 'main' into feat/voiceqos-packet-attribute 2026-10-19 21:42:23 +02:00
Adrià 8075b6af19 Merge pull request #7398 from ErenYeager1836/fix/login-dialog-close-status
fix(libSceLoginDialog): transition to finished on dialog close
2026-10-19 21:38:18 +02:00
Adrià d10ef4d2c6 Merge pull request #7381 from thuanquang/fix/volume-array-sample
fix(shader): sample a 3D T# through DIM 2D_ARRAY as a volume
2026-10-19 21:38:12 +02:00
Adrià f39852fd41 Merge pull request #7397 from ErenYeager1836/fix/npauth-authorized-app-dialog-close-status
fix(libSceNpAuthAuthorizedAppDialog): transition to finished on dialog close
2026-10-19 21:36:12 +02:00
Adrià 7866e7d97c Merge pull request #7394 from ErenYeager1836/feat/vr-setup-dialog-get-status
feat(libSceVrSetupDialog): export sceVrSetupDialogGetStatus
2026-10-19 21:33:59 +02:00
Adrià 67e5c8a48f Merge pull request #7403 from milescoviello/fix/fcntl-host-socket
fix(libkernel): handle fcntl and FIONREAD on a host socket descriptor
2026-10-19 21:30:50 +02:00
Adrià d7e62d8e25 Merge pull request #7258 from Pipodi/fix/sampled-array-viewed-slices
fix(agc): build sampled array views from the slices they read
2026-10-19 21:16:23 +02:00
ntamas94andClaude Opus 5.5 ad52647cd9 fix(libSceNet): parse sceNetInetPtonEx IPv4 text as the PS4 does
On PS4 firmware 10.71 sceNetInetPtonEx reads IPv4 text the way
inet_aton does, not the way sceNetInetPton does: "1.2.3" is 1.2.0.3,
"127.1" is 127.0.0.1, hex and octal parts are accepted, a part value
wraps at 32 bits ("1.4294967296" is 1.0.0.0) and the text ends at the
first whitespace. Two differences from BSD inet_aton were measured: a
part starting with "09" is decimal ("0989" is 989), and an octal part
containing 8 or 9 fails.

The flags argument changed nothing for 0, every single bit up to
0x100, 0x10000, 0x80000000 and -1, so it is ignored instead of
throwing. IPv6 still converts as sceNetInetPton does, which matches
the console.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 21:10:55 +02:00
Adrià c0adf025b8 Merge pull request #6815 from JJenkx/fix/msaa-load-on-plane
fix(shader): read 2D textures through MSAA image loads
2026-10-19 21:07:00 +02:00
thuanquangandClaude eeb1c4f034 fix(agc): sample formats that FORCE_DEGAMMA leaves unchanged without it
Co-Authored-By: Claude <[email protected]>
2026-10-20 01:58:42 +07:00
battleblob1andClaude Opus 5.5 f4a4b8aea9 fix(recompiler): replay every eight-bit stencil reference a pixel shader may export
Without VK_EXT_shader_stencil_export (NVIDIA), stencil reference exports
are emulated by replaying the draw once per value. An export the prover
could not bound to at most 16 values was refused. The replay shader
compares the export's low eight bits, so an unbounded export now
replays all 256 values, and proven values are reduced to their low
eight bits as the comparison sees them.

Refs #4276

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 21:57:24 +03:00
Sergio ec2e056d50 feat(libSceRtc): implement process-local clock setters 2026-10-19 20:55:33 +02:00
klosixgaming-arch f8f797282d fix(agc): accept PA_CL_CLIP_CNTL CLIP_DISABLE without depth clamp
DecodeState and DrawRejection rejected PA_CL_CLIP_CNTL bit 16
(CLIP_DISABLE), skipping draws that set it. Vulkan handles viewport
guard-band clipping automatically without requiring explicit clip
toggles. Accept bit 16 in ClipControlMask without altering depthClamp,
and record the unmodelled console clipping behavior in technical debt.

Tested with agc_driver_graphics_tests.
2026-10-19 13:43:12 -05:00
Adrià d07148f69f Merge pull request #7321 from jagrat04/feat/libSceVoiceQoS-firmware-exports
feat(libSceVoiceQoS): export missing firmware functions from database
2026-10-19 20:41:11 +02:00
Claude bff194647a feat(libSceFont): open the other script files of a system font set
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-19 18:31:56 +00:00
Claude 5c6f6da7dc feat(libkernel): accept pipe read ends in sceKernelAddReadEvent
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-19 18:30:55 +00:00
Claude b0a9676844 feat(libSceNet): implement interface names, random values and net memory
Implement sceNetGetIfName, sceNetGetRandom, sceNetMemoryAllocate and
sceNetMemoryFree with the signatures shadPS4 uses, and cover them in
guest_sce_net_tests.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-19 18:29:29 +00:00
Federico Marras d8b425f1bf feat(libSceNetCtlAp): implement the access-point service that never starts 2026-10-19 20:26:24 +02:00
erickerxhalliandClaude Opus 5.5 14b52daf53 feat(libSceMove): report no connected PS Move controller
Add sceMoveInit, sceMoveTerm, sceMoveOpen, sceMoveGetDeviceInfo and
sceMoveSetVibration, and replace the throwing stubs of the other six
exports. Behaviour and error codes follow shadPS4; signatures follow
Orbital. A guest test covers the init state, argument checks and the
no-controller results.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Arbzg9c2DA4DEFKVSvRgYv
2026-10-19 18:23:44 +00:00
xXPBSXxandClaude Sonnet 5.5 4e3e810a79 docs(agc): describe the zero-header run in the PM4 type-0 debt entry
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-19 20:23:05 +02:00
xXPBSXxandClaude Sonnet 5.5 3cf8eec26a docs(agc): record the PM4 type-0 packets a submission is rejected for
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-19 20:22:44 +02:00
Dean 1e774a3b22 Merge pull request #7872 from ErenYeager1836/feat/libc-throw-bad-optional-access
feat(libc): implement std::_Throw_bad_optional_access
2026-10-20 07:21:55 +13:00
Federico Marras 89b1b53176 feat(libc): implement bounded decimal parsing with strtonum 2026-10-19 20:19:08 +02:00
pushkarreddyy 4ea1c112bb feat(libkernel): implement pthread_mutexattr_getprotocol 2026-10-19 23:48:09 +05:30
Adrià 544f29106d Merge pull request #7250 from milescoviello/feat/msaa-dcc-refill
feat(agc): take a full DCC fill of a resident multisampled target as its fast clear
2026-10-19 20:17:24 +02:00
Yuri Olive 3eee2b281f fix(libSceAudioOut): leave sceAudioOutGetSystemState to #5965 2026-10-19 15:17:06 -03:00
Yuri Olive 2e0d8d7ab5 docs(libSceIme): shorten the sceImeFilterText debt entry 2026-10-19 15:15:25 -03:00
Yuri Olive aabbd10e36 feat(libSceIme): implement sceImeFilterText
Port the firmware filter for every text type, with the two codepage sets derived from the firmware converters, and declare sceImeCheckFilterText as unimplemented.
2026-10-19 15:14:45 -03:00
battleblob1andClaude Opus 5.5 a55dc4c535 fix(libSceVideoOut): turn SDL's Windows.Gaming.Input backend off only with APS5_NO_WGI
Windows.Gaming.Input stays on by default, so racing wheels, arcade and
flight sticks, HID pads without an HIDAPI driver and Xbox One/Series
trigger rumble keep working. Hosts where it faults at
Windows.Gaming.Input.dll+0x10a84 set APS5_NO_WGI to turn it off.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 21:12:22 +03:00
Yuri Olive 7109c4b4af feat(libSceHmd2): export missing firmware HMD2 interfaces 2026-10-19 15:04:11 -03:00
Yuri Olive 6ce3940a7f feat(libSceHmd): export missing firmware HMD interfaces 2026-10-19 15:01:38 -03:00
Adrià f52509acc7 Merge pull request #7875 from xXPBSXx/docs-agc-cmask-clear-amd-gpl-off
docs(debt): record the CMASK clear pass fault on AMD without pipeline libraries
2026-10-19 19:59:13 +02:00
Yuri Olive df6b81f83b feat(libSceAudioOut): export missing firmware audio output interfaces 2026-10-19 14:56:52 -03:00
Adrià 38de0a470b Merge pull request #7129 from AlexOfTheForest/feat/kevent-ev-clear
feat(libkernel): support EV_CLEAR on sockets and pipes in kevent on Linux
2026-10-19 19:56:35 +02:00
Adrià 2232629a96 Merge pull request #7074 from CrimsonMac/fix/f16-fma-default-nan
fix(shader): give f16 fma invalid operations the default NaN
2026-10-19 19:56:30 +02:00
Yuri Olive 7d9d41c3db feat(libSceHttp): export missing firmware interfaces 2026-10-19 14:55:42 -03:00
Adrià 7d89b1f4fb Merge pull request #7865 from xXPBSXx/docs/debt-wait-label-slot
docs(agc): record the queue 0x20 label wait that holds another slot's address
2026-10-19 19:55:35 +02:00
Yuri Olive 1a34b1cd3c feat(libSceIme): export missing firmware interfaces 2026-10-19 14:55:31 -03:00
Yuri Olive 196e2e2ada feat(libSceNetCtl): export missing firmware interfaces 2026-10-19 14:55:22 -03:00