Commit Graph
23409 Commits
Author SHA1 Message Date
Dean 04a9eb4fa2 Merge pull request #15465 from mrfelek/fix/snapshot-allocation-churn
fix(agc): accept a resource snapshot when only unrelated allocations moved
2026-11-04 10:08:59 +13:00
Dean 0e7d4a25ef Merge pull request #13021 from JAB-dev/feat/agc-publish-native-d32s8-guest-planes
feat(agc): publish a written native multisample D32S8 surface to its guest planes on a guest read
2026-11-04 10:08:52 +13:00
Dean db0f0c4d44 Merge pull request #11586 from JJenkx/feat/http2-ssl-callback
feat(http2): deliver TLS certificate verification callbacks
2026-11-04 10:08:47 +13:00
Dean 086c0686c8 Merge pull request #13207 from kyon-eth/feat/media-app-storage-320-exports
feat(libSceMediaAppSharedStorage): declare 16 callable exports
2026-11-04 08:13:39 +13:00
Dean 5a20baa0cc Merge pull request #15466 from JJenkx/fix/agc-drop-depth-results-over-unmapped-memory
fix(agc): drop depth and stencil plane results over memory unmapped since they were drawn
2026-11-04 08:13:33 +13:00
Dean 2cb1a5256f Merge pull request #15457 from atinseau/codex/agc-kept-blocks-reupload
fix(agc): forget the blocks kept for the CPU when an upload restamps their units
2026-11-04 08:13:27 +13:00
Dean f5736cf169 Merge pull request #15437 from oneandonlydean/fix/vouched-lookups-arena-block
test(agc): allocate the image table cache bounds test block in the guest arena on Linux
2026-11-04 08:13:21 +13:00
Dean beb03a06a1 Merge pull request #15436 from JJenkx/fix/linux-main-stack-adopted-attributes-20261103
fix(libkernel): refresh adopted thread bounds when entering the main stack
2026-11-04 08:13:16 +13:00
Dean 2fde02c401 Merge pull request #15362 from beardsciences/perf/mesh-window-no-zero-fill
perf(shader): stop zeroing mesh window buffer slots at workgroup start
2026-11-04 08:13:10 +13:00
Dean 6d22701a29 Merge pull request #15321 from MarcZX10/r4/r50-ajm-bodies
fix(libSceAjm): check batch job buffer counts before the 8-bit cast
2026-11-04 08:13:04 +13:00
Dean 45ba19f149 Merge pull request #15318 from MarcZX10/r2/r54-video-decoders
fix(libSceVdecsw): consume rejected units and reject oversized access units
2026-11-04 08:12:58 +13:00
Dean bd4a6078d8 Merge pull request #15299 from Prophet069/fix/agc-key-miss-attribution
fix(agc): attribute resource key misses past the first binding
2026-11-04 08:12:51 +13:00
Dean 3c0794a780 Merge pull request #15298 from Prophet069/fix/agc-staging-shadow-budget
fix(agc): leave written regions unstaged while device-local memory is short
2026-11-04 08:12:46 +13:00
Dean 084631c345 Merge pull request #15292 from olegon85/feat/libscehttp-dbg-setprintf
test(libSceHttp): pin the supplied-module answer of sceHttpDbgSetPrintf
2026-11-04 08:12:40 +13:00
Dean 6eb5665c38 Merge pull request #15287 from AlexWhitehouse/feat/shader-sdwa-int-to-f32-destinations
feat(shader): accept SDWA destination selects on v_cvt_f32_i32 and v_cvt_f32_u32
2026-11-04 08:12:34 +13:00
Dean 80400656a1 Merge pull request #15282 from LeandroLP23/refactor/shader-remove-unused-helpers
refactor(shader): remove the unused SharedMemoryBarrierInserter and ShaderStageRuntime
2026-11-04 08:12:28 +13:00
Dean ff42cf8fdc Merge pull request #15273 from Matt10n3/codex/appcontent-quota-overflow
fix(libSceAppContent): reject overflowing download quotas
2026-11-04 08:12:22 +13:00
Dean b87467e812 Merge pull request #15257 from hyvvs/fix/avplayer-http-transport-timeout
test(avplayer): allow HTTP transport CI load margin
2026-11-04 08:12:16 +13:00
Dean e231f17d8f Merge pull request #15255 from HenriksApsitis/test/reported-relinker-regression
test(relinker): guard against duplicate module preinit startup
2026-11-04 08:12:11 +13:00
Dean 183b3ce70a Merge pull request #15251 from BunnyFl/fix/libscenpmanager-sandbox-info
feat(libSceNpManager): answer sceNpGetSandboxInfo as firmware 13.42 does in the production environment
2026-11-04 08:12:06 +13:00
Dean 590c04615c Merge pull request #15248 from GiannisG1/test/htile-mask-lifetime-other-device-before-reimport
test(agc): check the other device's HTILE before the first device imports again
2026-11-04 08:12:00 +13:00
Dean 6cd2899cc6 Merge pull request #15244 from AlexWhitehouse/feat/shader-sdwa-integer-bitscan-destinations
feat(shader): accept SDWA destination selects on integer bit scans and bfrev
2026-11-04 08:11:55 +13:00
Dean 7960a0bcb2 Merge pull request #15237 from johnohhh1/fix/tests-file-position-unicode-temp
fix(tests): open file position scratch stream under Unicode TEMP
2026-11-04 08:11:39 +13:00
Dean e687143e68 Merge pull request #15229 from al3w0f205/test/voicechat-request-action-and-numbered-requests
test(libSceVoiceChat): cover offline responses for sceVoiceChatRequest0, sceVoiceChatRequest1 and sceVoiceChatRequestAction
2026-11-04 08:11:34 +13:00
Dean b11031f512 Merge pull request #15155 from Pipodi/perf/spanned-ballot-one-barrier
perf(shader): build a spanned wave's ballot from the native subgroup ballot
2026-11-04 08:11:28 +13:00
Dean 88844509d6 Merge pull request #14998 from JJenkx/fix/videodec2-pps-replacement
fix(libSceVideodec2): keep AVC picture info after a PPS is replaced under the same SPS
2026-11-04 08:11:22 +13:00
Dean e2b29c8047 Merge pull request #14880 from Gonic0/perf/agc-scalar-guard-aligned
perf(shader): check only the carry on scalar buffer reads bound to their exact range
2026-11-04 08:11:15 +13:00
Dean c915f22fd8 Merge pull request #14866 from milescoviello/fix/bda-stop-lane-reads
fix(shader): keep pixel invocations running after a BDA fault in a program that reads lanes by index
2026-11-04 08:11:05 +13:00
Dean 723ee06871 Merge pull request #14799 from chitters2004/perf/guarded-committed-read
perf(agc): read committed guest pages directly on Windows
2026-11-04 08:10:59 +13:00
Dean 0e7df59efb Merge pull request #11557 from JAB-dev/feat/agc-staged-packed-partial-writes
feat(agc): draw partial writes of multisampled 4_4_4_4 targets into a temporary target
2026-11-04 08:10:52 +13:00
Dean b52e86f043 Merge pull request #9898 from savvaniss/perf/agc-stores-without-drains
perf(agc): keep constant RAM dumps and unregistered labels on the GPU without draining
2026-11-04 08:10:45 +13:00
Dean 0bf0563442 Merge pull request #9183 from fma-rc/fix/shader-gather-3d-volume
fix(shader): gather a 3D image's image_gather4_lz from one slice as measured
2026-11-04 08:10:40 +13:00
mrfelek 5061d3e9ca fix(agc): retry a resource snapshot when a page it read changed backing
The snapshot check that let Materialize accept an attempt during which the
guest allocation generation moved looked only at the registered image
views. A remap of the memory the capture read descriptors from left those
views unchanged, so the attempt was accepted with descriptor words read
before the remap. The generation check on main did not cover this either:
ShaderMemory keeps the pages it read across attempts, so a retry read the
same cached words.

ShaderMemory now records the guest allocations behind each page when it
first reads it. The runtime hook, now snapshotCurrent, drops every page
whose allocations changed, so the next attempt reads it again, and accepts
the attempt only when no page changed and the image views are current.

agc_shader_memory gains a directly bound sampled array image case through
the real CaptureRegisteredViewsCurrent (an unrelated mapping during the
attempt is accepted and keeps the view, a resize of the image's own range
is retried) and a capture whose descriptor page is remapped mid-capture,
which must return the descriptor written after the remap.

AI-assisted.
2026-11-03 17:58:17 +01:00
Dean 1e658521a0 Merge pull request #12120 from meh7an/perf/agc-depth-transfer-passes
perf(agc): read depth planes into storage images in a compute pass
2026-11-04 05:43:40 +13:00
Dean 7f43f9cb1f Merge pull request #11901 from 00xDisaster/fix/dcc-key-proof-cache
perf(agc): reuse sampled DCC key proofs across scans
2026-11-04 05:43:34 +13:00
Dean 31ab214934 Merge pull request #11002 from SandstromPL/fix/libkernel-guest-sigpipe
fix(libkernel): let a guest ignore or catch SIGPIPE on Linux
2026-11-04 05:43:27 +13:00
Dean e154438fc4 Merge pull request #10159 from EagleBearerYS/port/fable-fix-pending-key-proof
fix(agc): keep a DCC target's refresh proof while its keys are pending driver stores
2026-11-04 05:43:20 +13:00
Dean 6457b9a0e4 Merge pull request #9672 from ntamas94/up/ps4-depth-sample-extent
fix(libSceAgcDriver): sample a PS4 depth buffer through a T# smaller than its padded extent
2026-11-04 05:43:13 +13:00
Dean 16c425c5c5 Merge pull request #8748 from LeandroLP23/perf/agc-pool-host-placed-device-buffers
perf(agc): keep device buffers placed in host memory for reuse while the device heap is full
2026-11-04 05:43:06 +13:00
Dean 798d61627a Merge pull request #8346 from MarrasFederico/feat/appinstutil-no-install
feat(libSceAppInstUtil): answer for an installer service that never installs
2026-11-04 05:43:01 +13:00
Dean 3a2ce76ace Merge pull request #6273 from SoRadGaming/perf/windows-widen-collects
perf(agc): widen small epoch collects to their 64 KiB block on Windows
2026-11-04 05:42:55 +13:00
mrfelek 0ac232a33a fix(agc): keep the directly bound image views in the resource snapshot
Materialize cleared registeredImages before adding the table views, which
dropped the views materializeSnapshot registers for directly bound images
on every attempt. materializeSnapshot already starts each attempt from an
empty snapshot, so the clear is removed.

AI-assisted.
2026-11-03 17:26:39 +01:00
Savvanis SpyrosandClaude Opus 5.5 f160886325 Merge main into perf/agc-stores-without-drains
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-03 17:37:34 +02:00
JJenkxandClaude Opus 5.5 ce8aaf32db test(agc): check a pending depth fill and a partial unmap against a remapped plane
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-03 09:15:56 -05:00
JJenkxandClaude Opus 5.5 317296719d fix(agc): order unmaps against a plane's draws and clears, and drop only the depth units they cover
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-03 09:15:56 -05:00
Nicolas GonzalezandClaude Opus 5.5 434c5429ea test(agc): read through an oversized V# before any store
Scalar and vector loads through a present oversized unregistered V#
must return 0 before anything is stored through it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-03 11:15:21 -03:00
Nicolas GonzalezandClaude Opus 5.5 abe6cb3683 fix(agc): zero the placeholder of an oversized V#
A present V# beyond the storage buffer range is bound to its own
placeholder, which was created without a fill. A new device allocation
or a pooled block is not zero, so loads through such a V# read
uninitialized or stale bytes instead of 0. Zero it like the empty
buffer.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-03 11:15:21 -03:00
Nicolas GonzalezandClaude Opus 5.5 4284c39bc3 fix(shader): keep the size check of scalar reads through a V# whose size is not whole DWORDs
Where robust loads are not exact, a driver may round a binding's range up
to a DWORD (RADV does), so a V# of 7 bytes gets a length of 2 DWORDs and
the length check passes the DWORD at byte 4 that the V# size excludes.
Specialize the low two bits of the V# size in the free fourth word of the
buffer's specialization slots, key the binding plan and the result memo
on it, and keep the carry-only guard only when both the base and the size
are whole DWORDs.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-03 11:15:20 -03:00
Nicolas GonzalezandClaude Opus 5.5 207b88fca9 test(agc): give the mock context the placeholder of an oversized V#
The mock graphics context set only the null V# placeholder, so binding an
unregistered V# past the range limit now found no buffer.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-03 11:15:20 -03:00
Nicolas GonzalezandClaude Opus 5.5 7bbbf70eda fix(agc): bind a present V# beyond the storage buffer range to its own placeholder
A present V# whose size exceeds maxStorageBufferRange and whose base is not
registered was bound to the same 16-byte placeholder as a null V#. Its
guest checks pass, so a store through it could write that placeholder,
and a later scalar read through a null V# (which now relies on the length
check alone) would return the stored word instead of 0. Bind such a V# to
a separate placeholder, so the zeroed one is only bound for V#s the guest
checks treat as not present and no store reaches it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-03 11:15:20 -03:00