Commit Graph
14017 Commits
Author SHA1 Message Date
ionut27001andClaude Opus 5.5 bdf3adb379 feat(libkernel): add pthread_rwlockattr_getpshared and pthread_rwlockattr_setpshared
Measured on a PS5 (firmware 12.70): the getter reports 0, and of the
values 0, 1, 2 and -1 the setter accepts only 0 and checks the value
before the attribute. A null or uninitialized attribute, or a null
output, crashes the console; here it throws.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 00:50:09 +03:00
ionut27001andClaude Opus 5.5 db504f6b9c fix(libkernel): reject PTHREAD_PROCESS_SHARED in pshared setters as the PS5 does
On a PS5 (firmware 12.70), of the values 0, 1, 2 and -1,
pthread_spin_init, pthread_barrierattr_setpshared and
pthread_mutexattr_setpshared accept only PTHREAD_PROCESS_PRIVATE (0);
1, 2 and -1 return EINVAL and leave the attribute unchanged.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 00:49:58 +03:00
MarcZX100 c56cafae2e fix(relinker): omit uncovered GNU RELRO ranges 2026-10-17 21:43:42 +00:00
Dean c0a7468f6f Merge pull request #7270 from Lindamea1/fix/cond-init-unset-attr
fix(libkernel): accept an uninitialized attribute in scePthreadCondInit
2026-10-18 10:39:14 +13:00
Dean c756343a89 Merge pull request #7255 from klosixgaming-arch/patch-1
docs(playgo): PPSA03490 needs APS5_PLAYGO_UNLISTED_CHUNKS=absent
2026-10-18 10:39:04 +13:00
Dean 5e9074999f Merge pull request #7252 from thuanquang/fix/videodec2-decode-after-flush
fix(libSceVideodec2): decode after a flush without a reset
2026-10-18 10:38:59 +13:00
klosixgaming-arch ce5b0c395b feat(libkernel): accept a kevent read event on descriptor 0
PPSA34015 (EA SPORTS FC 27) registers EVFILT_READ for descriptor 0 in a
new kqueue at start-up, ignores the result, and stopped with "kevent:
EVFILT_READ on a non-socket descriptor not implemented". A read event on
the host stream on descriptor 0 is now accepted and never triggers, as
select never reports descriptor 0 readable.
2026-10-17 21:34:51 +00:00
milescovielloandClaude Opus 5.5 f7cd8df309 fix(agc): trace the title threads that register shaders
Shader registration and the shader ABI resolves run on the title's own
threads, which never bound a trace buffer, so their Shader.Register and
Shader.Resolve* scopes were missing from every trace and summary. Those
entry points now bind the calling thread as `title` with the 32,768-event
buffer the shader preparation threads use.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 21:33:53 +00:00
Dean 55b968a239 Merge pull request #7245 from ErenYeager1836/fix/msgdialog-native-validation
fix(libSceMsgDialog.native): validate null argument and busy state across dialog lifecycle
2026-10-18 10:33:44 +13:00
Dean e5961b2b35 Merge pull request #6264 from MarcZX100/codex/host-write-map-alias-6260
fix(libc): defer resident alias demotion during host writes
2026-10-18 10:32:22 +13:00
Gjon Gojcevic 6e5d708f82 fix(recompiler): drop a sample-adjust S# dword 3 that sets only reserved bits
An image_sample_*_a sampler whose dword 3 is built only from values
inside the reserved bits 12-29 was refused with "GetSamplerResource
dword 3 is not a valid runtime value" when the value was not an OR at the
top. The reserved bits of a sample-adjust S# are already dropped term by
term from an OR (canonicalizeSampleAdjustDword3); a dword 3 whose
possible bits all lie in that mask, such as a shifted field with nothing
else, is now dropped whole the same way. PPSA01317 builds such a dword 3
from a wave ballot shifted to bit 12 for image_sample_a in a pixel
shader. A plain image_sample with the same S# is still refused.

AI-assisted: yes
2026-10-17 17:32:03 -04:00
Gjon Gojcevic dce77846be fix(shader): collect packed ancillary readers without recursion
lowerPackedAncillary follows the selects, phis and identities that
forward the packed ancillary word to its readers by recursing once per
link (collectReaders), with a linear scan of the visited list at each
step. A long forwarding chain overflowed the stack of the thread that
compiles the shader: PPSA01317 crashes about 30 s into boot in that
recursion on a guest job thread, with a 0xc00000fd stack overflow inside
malloc. The readers are now collected with an explicit stack and a
visited set, in the same order.

AI-assisted: yes
2026-10-17 17:32:02 -04:00
Dean e0fcdb52b1 Merge pull request #7148 from Ondra97/codex/fix-descriptor-cache-publication
fix(agc): release unpublished descriptor cache objects
2026-10-18 10:31:20 +13:00
Dean e391cf7077 Merge pull request #6614 from MarcZX100/codex/lvp-descriptor-recycling-6608
fix(agc): free released lavapipe descriptor sets
2026-10-18 10:30:35 +13:00
Dean 95391cb951 Merge pull request #7136 from XairRrR/perf/relocated-mesh-index-descriptor
fix(agc): keep the mesh index descriptor on relocated draw stages
2026-10-18 10:29:32 +13:00
Gjon Gojcevic 45c78bb880 test(agc): refuse an additive blend into an 11_11_10 float target
The blend-refusal case used CB_BLEND_CONTROL 0x60010001, which is
ONE * source + ZERO * destination: a replace blend that writes the source
unchanged. A packed target can draw such a blend with blending disabled,
so the case now uses the additive blend 0x60010101, which a packed target
must still refuse.

AI-assisted: yes
2026-10-17 17:29:22 -04:00
Gjon Gojcevic a518a90ad6 fix(agc): refuse rounding 11_11_10 float targets and resolves of packed color targets
An 11_11_10 float color target with CB_COLOR_INFO ROUND_MODE (bit 18) clear
asks the CB to round, but the export packing truncates toward zero, so such a
target now throws. A CB resolve whose source is a packed 10_11_11 unorm or
11_11_10 float target would resolve the raw R32_UINT words, which an integer
resolve cannot average, so it now throws at decode.

AI-assisted: yes
2026-10-17 17:29:21 -04:00
Gjon Gojcevic 49b0e805f0 feat(agc): implement 11_11_10 float color targets through 32-bit uint attachments
Color format 7 (COLOR_11_11_10, float) keeps its 10-bit component in the
low bits; with the reversed component order (COMP_SWAP 2) that is blue,
with red in the high 11 bits. Vulkan has no such layout, so the target was
refused at decode.

Render it the way 10_11_11 unorm targets are rendered: an R32_UINT
attachment, the reversed export mapping 0xc6, and a new
ColorExportPacking::Float11_11_10 that makes the pixel shader pack each
export with the format-43 image store conversion (toward zero, overflow to
the largest finite value, negatives to zero, NaN kept). Blending, partial
writes, 16-bit integer exports, DCC and the other component orders throw.

AI-assisted: yes
2026-10-17 17:29:21 -04:00
Dean 8690d92f07 Merge pull request #7071 from SleglJan/fix/storage-budget-pressure
fix(agc): let the storage image cache budget follow the heap's use like the sampled one
2026-10-18 10:29:01 +13:00
Dean e815fb4170 Merge pull request #7251 from thuanquang/fix/rect-list-last-provoking-vertex
fix(agc): draw rect lists in last provoking vertex mode
2026-10-18 10:28:06 +13:00
Dean bdd0c605ca Merge pull request #7183 from Flamefusion/fix/agc-relocated-stage-data-patches
fix(agc): patch relocated user words into stage data hits
2026-10-18 10:27:14 +13:00
Dean 2788ed5cf2 Merge pull request #7132 from MarcZX100/codex/fix-adjacent-dcc-store-5336
fix(agc): exclude neighboring stores from DCC invalidation
2026-10-18 10:26:38 +13:00
Dean 770e207ce5 Merge pull request #7115 from milescoviello/fix/asan-stack-reserve
fix(libkernel): measure the host stack reserve from the frame address
2026-10-18 10:25:49 +13:00
Dean 82c814b2d6 Merge pull request #7065 from Ondra97/codex/fix-command-batch-submit-lifetime
fix(agc): track submitted batches before profiling
2026-10-18 10:25:09 +13:00
Dean fb20d5d4ec Merge pull request #6053 from ThatsLeo/perf/shader-plan-first-lane
perf(shader): judge first-lane and constant reads by what they read
2026-10-18 10:24:44 +13:00
Dean cd2dab7b95 Merge pull request #6174 from ee6aba54/fix/agc-texture-cache-reclaim
fix(agc): release the texture caches when a device allocation runs out of memory
2026-10-18 10:24:06 +13:00
LaunchDoesntCodeandClaude Opus 5.5 1bc029da6d fix(libkernel): leave a blocked SIGALRM expiry pending
An ITIMER_REAL or alarm expiry while SIGALRM is blocked is marked on the
pending set of sigtimedwait instead of throwing, as kern_psignal leaves a
blocked signal pending. sigwait, sigwaitinfo and sigtimedwait take it,
repeated expiries merge into one pending signal, and unblocking it runs a
guest handler on the unblocking thread or, with the default disposition,
exits the process with status 142 as FreeBSD's default action does.

The expiry rechecks the mask after marking the signal, so an unblock that
races it does not leave SIGALRM pending while unblocked, and TakePending
clears the bit with the value it read so one signal is taken once.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 16:22:59 -05:00
Dean 8f0e276c61 Merge pull request #6402 from Pipodi/feat/image-table-stores
feat(agc): store to images selected through image tables
2026-10-18 10:22:39 +13:00
milescovielloandClaude Opus 5.5 5b12f1c3d8 perf(agc): share unchanged shader registry chunks between published versions
PublishRegisteredShader copied the whole code-address map, with every
header vector and snapshot reference, for each registration under the
driver mutex, so a title registering its shaders while it loads paid
O(n^2). The registry now keeps its entries in address-ordered chunks of
at most 64 shared by every version that has not changed them; a write
clones only the chunk it touches.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 21:22:30 +00:00
Dean 6447ed1ed7 Merge pull request #7241 from ErenYeager1836/fix/savedata-native-transaction-resource-validation
fix(libSceSaveData.native): validate initialization and parameters in transaction resource lifecycle
2026-10-18 10:19:36 +13:00
Dean 8532632d4e Merge pull request #7249 from Lorkydey/feat/libc-binary-word-io
feat(libc): implement getw and putw
2026-10-18 10:18:50 +13:00
Dean 7bea86a633 Merge pull request #7117 from Sam-mon7/fix/pipeline-lazy-buffer-pool
fix(agc): keep cached pipelines across lazy buffer pool creation
2026-10-18 10:18:12 +13:00
Ondra97 739e451332 fix(libkernel): preserve directory identity across Windows renames 2026-10-17 23:17:39 +02:00
T3cm0andClaude Opus 5.5 22c584acd3 feat(libc): implement clearerr_unlocked, fileno_unlocked and fgetln
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 16:17:27 -05:00
T3cm0andClaude Opus 5.5 3802f887f2 fix(libc): take sceLibcMspaceReallocalign's alignment before its size
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 16:17:22 -05:00
Dean 719934f510 Merge pull request #7116 from Sam-mon7/fix/lazy-base-level-view-usage
fix(agc): restrict lazy sampled view usage
2026-10-18 10:17:22 +13:00
T3cm0andClaude Opus 5.5 70ff799fdb feat(libkernel): implement three coredump exports from the console module
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 16:17:05 -05:00
Dean cf217c51c6 Merge pull request #7211 from simonbronk/codex/secure-scan-null-20261017
fix(libc): reject null secure scan destinations
2026-10-18 10:16:38 +13:00
Dean 3719d6c09c Merge pull request #6310 from eliyarson/fix/guest-allocator-failures-overcommit
test(libc): skip the failed heap commit check when the host overcommits
2026-10-18 10:15:03 +13:00
Dean 5ba257cb0a Merge pull request #7237 from ErenYeager1836/feat/netctl-http-proxy-port-and-nat-info
feat(libSceNetCtl): support NET_CTL_INFO_HTTP_PROXY_PORT and validate null in sceNetCtlGetNatInfo
2026-10-18 10:13:57 +13:00
Dean ae12023436 Merge pull request #7236 from ErenYeager1836/fix/system-gesture-touch-event-index-validation
fix(libSceSystemGesture): validate gesture handle and recognizer in sceSystemGestureGetTouchEventByIndex
2026-10-18 10:13:22 +13:00
Dean f25a3d8596 Merge pull request #7232 from Lyrilika/fix/check-compile-all-configurations
fix(tools): check every compilation configuration
2026-10-18 10:12:15 +13:00
Dean 11acfdd84e Merge pull request #7234 from ErenYeager1836/fix/savedata-dialog-progressbar-not-running
fix(libSceSaveDataDialog.native): return NOT_RUNNING from progress bar updates when not running
2026-10-18 10:11:25 +13:00
Dean 5f8d2a2524 Merge pull request #7228 from Amoenus/codex/test-native-depth-bda-clear-main667
test(agc): exercise a full native depth clear through BDA
2026-10-18 10:10:52 +13:00
Dean af7972ce91 Merge pull request #7229 from nicolasfalesy/feat/libkernel-export-nmount
feat(libkernel): export nmount
2026-10-18 10:10:15 +13:00
Dean a3d2f6ef50 Merge pull request #7225 from nicolasfalesy/feat/libkernel-condattr-setpshared
feat(libkernel): implement pthread_condattr_setpshared
2026-10-18 10:09:16 +13:00
Dean 6005185eef Merge pull request #7224 from jagrat04/feat/libSceVoice-resource-info
feat(libSceVoice): implement sceVoiceGetResourceInfo
2026-10-18 10:08:45 +13:00
Dean ce0d58edbc Merge pull request #7131 from JosepBove/fix/agc-depth-plane-fill
fix(agc): clear the host depth image on a fill of a depth or stencil plane
2026-10-18 10:07:50 +13:00
Dean a2d40a48ba Merge pull request #7072 from mrfelek/fix/ngs2-system-lock-try-render
fix(libSceNgs2): let render skip a grain while another thread holds the system lock
2026-10-18 10:07:14 +13:00
MarcZX100 0009388918 chore(agc): report unsupported 3D mip target state 2026-10-17 21:07:00 +00:00