Commit Graph
14017 Commits
Author SHA1 Message Date
Yunus Shaikh 21b14210ff Merge main into perf/agc-remember-evicting-refusals
The host-import debt entry takes #6472's budget sentence and keeps this branch's sentence on remembered refusals.
2026-10-18 20:40:45 -07:00
Nithishvelan M 78c945806c docs(libSceVrSetupDialog): clarify PPSA12544 import and export database status 2026-10-19 09:10:42 +05:30
Nithishvelan M de95052c4a feat(libSceVrSetupDialog): export sceVrSetupDialogGetStatus
Implement sceVrSetupDialogGetStatus in libSceVrSetupDialog, returning the atomic dialog status, and add unit test coverage in GuestVrSetupDialog.
2026-10-19 09:10:42 +05:30
Yunus Shaikh 0644811579 Merge main into perf/agc-host-import-aligned-blocks
The host-import debt entry takes #6472's budget sentence and keeps this branch's sentence on remembered refusals.
2026-10-18 20:40:40 -07:00
Yunus Shaikh 3a9bc814c2 Merge main into perf/agc-host-import-blocks
importBudget keeps this branch's configuredBudget split and takes #6472's HostImportBudget for the default; the host-import debt entry takes #6472's budget sentence next to this branch's report and refusal sentences.
2026-10-18 20:38:28 -07:00
Leonardo Feitosa 0c7573e957 test(agc): check which storage images are tracked as 64 KiB blocks 2026-10-19 00:25:47 -03:00
Kovalev Vladislav 94bd3c3872 fix(agc): preserve indirect index tests alongside current main 2026-10-19 09:25:11 +06:00
Dean fd423f9b2e Merge pull request #7709 from Scramblrrrr/codex/agc-shared-log-flush-main
fix(agc): flush the shared logger from native clients
2026-10-19 16:25:06 +13:00
Dean 3259e4c3ea Merge pull request #7701 from jotitadev/fix/agc-async-log-test-skip-crash-handler
fix(tests): keep the async log test's aborting children away from the crash handler
2026-10-19 16:22:10 +13:00
Dean 8687da6c0e Merge pull request #7711 from jotitadev/fix/guest-dynamic-loader-resource-lock
test(libkernel): serialise the two dynamic loader tests that share their files
2026-10-19 16:22:06 +13:00
Dean b64c281630 Merge pull request #7712 from jotitadev/fix/audio-in-test-skip-late-silence
test(audioin): skip the silent blocks a late capture device leaves
2026-10-19 16:22:02 +13:00
billythemenace2andClaude Opus 5.5 60a2aa47d6 fix(agc): refuse mesh-path draws on a device without mesh shaders before validating them
A draw on the mesh path was validated before its pipeline checked for
mesh shader support, so on a device without VK_EXT_mesh_shader (an RDNA1
RX 5700 XT) Sackboy: A Big Adventure (PPSA01289) stopped on "subgroup
capability 61 is unsupported for shader stage 128" instead of the actual
cause. ValidateShaders now takes the device's mesh shader support and
refuses such a draw first with "device does not support mesh shaders".

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-19 05:19:01 +02:00
Adrià FranchandClaude Sonnet 5.5 b04f7b81f3 docs: document APS5_NO_PENDING_HTILE_FILLS in ENVIRONMENT.md
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-19 05:16:10 +02:00
keravyn-opsandClaude Opus 5.5 8854867021 test(agc): cover the depth and stencil fast clear a recorded HTILE fill leaves
RecordedFillClearsWithoutWait now also runs with a D32_SFLOAT_S8_UINT target: a
recorded SMem 0 fill (0xf0) over the HTILE clears depth and stencil at the bind
without a GPU wait, and is stored back as expanded (0xfffff3ff). The stencil case
alone fails with APS5_NO_PENDING_HTILE_FILLS=1.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 05:16:01 +02:00
keravyn-ops fac1979549 perf(agc): take the HTILE words pending fills leave instead of reading them
A depth target's bind (storeBackClearedHtile) reads its HTILE words to find a fast clear and
stores them back expanded. When a recorded fill over the HTILE was still pending, that read
made the flush hook submit the open batch and wait for the GPU, under the GPU mutex. A title
that clears its depth targets with buffer fill kernels pays that wait at every clear.

Uniform fills now note their 32-bit word with the pending write (NotePendingWordFill; the byte
value the DCC key paths use is unchanged). When every pending write over the HTILE is such a
fill and the rest of the range already holds the same word, the bind takes the landed word
from the notes, and stores the expanded words as a GPU fill recorded behind the pending ones.
Any other pending write keeps the read. APS5_NO_PENDING_HTILE_FILLS=1 always reads.

PPSA12544 on a Radeon 780M (Windows): 1271 pending-write syncs per 10 s waited 5.5 s at the
bind, about 4.3 ms each; with this change there are none, and the scene runs at 60-61 fps
instead of 44-46.
2026-10-19 05:16:01 +02:00
klosixgaming-arch 4e50cece90 docs(usage): say what happens without system fonts and where to get the substitutes
The paragraph said a game shows no text without the font files. A title that asserts on the sceFontOpenFontSet result stops at boot instead, so say both, and say where the Noto Sans substitutes come from.
2026-10-19 03:15:13 +00:00
Leonardo 7fdb261e67 feat(libSceVoiceQoS): implement packet and local endpoint attribute functions 2026-10-19 05:12:36 +02:00
klosixgaming-arch 0d4cbd538b fix(agc): compare a CB resolve's sample count with the rasterizer only under MSAA_ENABLE
PPSA08270 (Eternights) stopped after its story intro with "AGC graphics:
CB resolve from a target whose sample count differs from the
rasterizer's". It resolves a 4x 512x512 target into a single-sample one
with PA_SC_MODE_CNTL_0.MSAA_ENABLE off while PA_SC_AA_CONFIG still holds
2x from earlier draws. Without MSAA_ENABLE the scan converter does not
use PA_SC_AA_CONFIG's sample count, so the resolve takes its sample
count from CB0 as it already does when PA_SC_AA_CONFIG is single-sample.
2026-10-19 03:06:07 +00:00
Adrià ca13a56a58 Merge pull request #6515 from Ondra97/codex/fix-direct-remap-flexible-budget
test(libkernel): cover flexible budget after direct replacements
2026-10-19 05:02:23 +02:00
Adrià 062706c56f Merge pull request #6514 from JJenkx/test/gpu-timing-incomplete-batch
test(agc): cover incomplete GPU timing batch completion
2026-10-19 05:02:18 +02:00
Adrià ba63d412cd Merge pull request #6511 from JJenkx/fix/ssl-ps5-reader-context
feat(ssl): implement context-scoped PS5 certificate PEM reading
2026-10-19 05:01:14 +02:00
Adrià 9f8252af15 Merge pull request #6450 from fdfawef324/codex/shader-cache-runtime-sources-1015
fix(recompiler): keep standalone tests out of shader cache versions
2026-10-19 05:00:11 +02:00
Karim Ibrahim e3dd06fea6 test(agc): expect one resolution for a CPU write beside an image table on Windows too
Since #6346 a CPU write elsewhere in an image table's 64 KiB block no
longer fails the table's unchanged proof on Windows, because the proof
is answered per page there too. The Windows-only expectation of a second
resolution is stale and agc_driver_image_table_reuse fails on Windows.
Expect the Linux count on every host.
2026-10-18 22:59:54 -04:00
Adrià e488debe6d Merge pull request #6508 from fogydes/feat/agc-dcb-atomic-gds
feat(libSceAgc): implement DCB atomic GDS operations and correct size accessor
2026-10-19 04:59:06 +02:00
Dean fa0ac6d5ce Merge pull request #5926 from xXPBSXx/fix/agc-vertex-fetch-overhang
fix(libSceAgcDriver): zero the overhanging record of a vertex fetch
2026-10-19 15:56:44 +13:00
Yunus Shaikh e19cf1ac21 Merge main into fix/agc-heap-mirror-replan-unwatched
The host-import debt entry takes main's budget sentence and keeps this branch's heap-mirror sentence.
2026-10-18 19:55:25 -07:00
milescovielloandClaude Opus 5.5 41c75d2658 fix(libSceFont): say once where system fonts were looked for when a set has none
Without system font files, sceFontOpenFontSet returns
SCE_FONT_ERROR_FONT_OPEN_FAILED and logs `file=(none)` for each call.
Some titles then fail far from the cause: Astro's Playroom (PPSA01325)
lays out text with the failed set and stops on an out-of-heap or invalid
texture assertion (#7714). The first such open now prints the font set
and the directory searched to stderr, with how to supply the fonts.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 02:54:37 +00:00
Adrià c8e3fcb703 Merge pull request #6507 from karanvora2599/perf/videoout-unordered-cpu-flips
perf(videoout): don't hold a flip thread's CPU flips behind queued work
2026-10-19 04:49:51 +02:00
Adrià d23ed99f84 Merge pull request #6472 from ahir061/fix/agc-host-import-budget-half-heap
fix(agc): keep half the host heap out of the host import budget
2026-10-19 04:49:45 +02:00
milescovielloandClaude Opus 5.5 c9fe9292d8 fix(agc): draw a stencil replacement against a known stencil value as an inversion
DB_STENCILREFMASK holds a test value and a separate operation value, and
REPLACE_OP, ONES and REPLACE_TEST write a value that can differ from the
test value on bits the compare reads. Vulkan uses one reference for both,
so such a face threw. Ghost of Tsushima (PPSA02225) stops on one at its
splash screen (test value 0xff, operation value 0x40, both masks 0xff).

Some compares fix the stencil value wherever an operation runs: EQUAL on
pass and depth fail, NOTEQUAL on fail, and LEQUAL, GEQUAL, LESS or GREATER
against the largest or smallest masked value. There, if every written bit
is compared, the written bits hold the test value, so the replacement is
an INVERT whose write mask holds only the bits that differ from the value
written. The operations of a face share its write mask, so a face whose
other operations can't be drawn the same way still throws.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 02:49:19 +00:00
Jota 879b9e65c5 fix(agc): keep each descriptor set slot in one of a split pipeline library pair
With independent sets, a pipeline linked from a pre-rasterization library and a fragment shader library must not leave the same set slot VK_NULL_HANDLE in both libraries' layouts (VUID-VkGraphicsPipelineCreateInfo-pLibraries-06681). Every pipeline with a fragment stage is split when the device has graphics pipeline libraries, and each part's layout held only the sets its own stages bind, so a fragment shader that binds nothing in set 1, or a draw where no stage binds set 0, left that slot null in both parts. A slot neither stage binds now goes to the part that owns it: set 0 to the pre-rasterization layout, set 1 to the fragment layout.
2026-10-18 23:47:16 -03:00
Jota bd89df5f5a test(agc): name the host stage in the unit shadow tests' host-write barriers
The retile and key-store helpers order the host's pattern writes before their transfer with VK_ACCESS_HOST_WRITE_BIT under VK_PIPELINE_STAGE_ALL_COMMANDS_BIT alone, which does not include the host stage (VUID-vkCmdPipelineBarrier-srcAccessMask-02815). They now name VK_PIPELINE_STAGE_HOST_BIT as UnitShadow.cpp does for the same barrier.
2026-10-19 02:45:51 +00:00
To3akaRin 7e8aa10ae6 fix(tools): strip dependency options before syntax checks 2026-10-19 10:43:00 +08:00
Jan ŠléglandClaude Opus 5.5 04aef899a6 fix(agc): reuse a recycled descriptor set only for a table of its own size
DescriptorCache::AllocateRewritten handed out any recycled set of the requested layout. The
variable descriptor count of an image-table binding is fixed when its set is allocated, and
PrepareDrawBindings writes the table's present elements, up to its current element count, into
the set it gets. A draw whose table had more elements than the table the recycled set was
allocated for could write descriptors past the set's allocation
(VUID-VkWriteDescriptorSet-dstArrayElement-00321).

A set from a chain pool now records the variable count it was allocated with, as a dedicated-pool
set already does, and recycled sets are kept per layout and variable count, so a rewritten draw
reuses a set only for a table of the same size.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 04:40:35 +02:00
Adrià 8a526d4495 Merge pull request #6504 from 0xRickx/feat/libsceimedialog-host-keyboard
feat(libSceImeDialog): take the dialog's text from the host keyboard
2026-10-19 04:39:46 +02:00
Yunus Shaikh 4d52a66fd3 Merge main into perf/agc-remember-evicting-refusals
Main's sameRange for a failed import now takes the import budget, as the HostImport overload does, so a recorded failure is compared against the run the budget would import again.
2026-10-18 19:39:07 -07:00
Yunus Shaikh af6f2ecab8 Merge main into perf/agc-host-import-aligned-blocks
Main's sameRange for a failed import now takes the import budget, as the HostImport overload does, so a recorded failure is compared against the run the budget would import again.
2026-10-18 19:38:07 -07:00
Adrià FranchandClaude Sonnet 5.5 5d5b252bb6 docs(libSceAgc): update TechnicalDebt line for sceAgcDcbAtomicGds
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-19 04:37:35 +02:00
fogydes cf994f1f60 feat(libSceAgc): implement DCB atomic GDS operations and correct size accessor 2026-10-19 04:37:29 +02:00
Adrià ccbd40240f Merge pull request #6497 from giovanniadamo/feat/libsceregmgr
feat(libSceRegMgr): add sceRegMgrNonSysGetInt stub
2026-10-19 04:36:35 +02:00
Yunus Shaikh abf42b2214 Merge main into perf/agc-host-import-blocks
Main's sameRange for a failed import now takes this branch's import budget, as the HostImport overload does, so a recorded failure is compared against the run the budget would import again.
2026-10-18 19:36:25 -07:00
Dean Galvin 41764f27ac Merge main into pr-4650
# Conflicts:
#	core/shader/recompiler/ShaderDiskCache.cpp
2026-10-19 15:36:07 +13:00
Adrià 2ed7048426 Merge pull request #6495 from winstrex/perf/agc-pattern-fill-compare-order
perf(agc): match the dword pattern-fill kernel with its two compares in either order
2026-10-19 04:35:31 +02:00
Adrià baec31ba6c Merge pull request #6442 from JJenkx/fix/retain-import-window-failures
fix(agc): retain failed import windows across unrelated mappings
2026-10-19 04:33:22 +02:00
Adrià 25648aa121 Merge pull request #6494 from Ondra97/codex/fix-net-accept-inherited-mode
fix(libSceNet): inherit nonblocking mode on accepted sockets
2026-10-19 04:30:22 +02:00
Adrià decb14c505 Merge pull request #6491 from Ondra97/codex/fix-flexible-fixed-remap-budget
fix(libkernel): account for fixed flexible memory replacements
2026-10-19 04:30:17 +02:00
Adrià bcd473dbb4 Merge pull request #6490 from parl0v/perf/write-back-into-slabs
perf(agc): retile storage write-back windows straight into their unit-shadow slabs
2026-10-19 04:30:12 +02:00
Adrià de611511de Merge pull request #6486 from karanvora2599/perf/agc-stage-swept-raw-buffers
perf(agc): stage raw buffer elements a dispatch sweeps
2026-10-19 04:29:08 +02:00
Adrià Franch 03833cabad test(recompiler): accept linker help probes in compiler stub 2026-10-19 04:28:37 +02:00
fdfawef324andCodex 42cbce1767 test(recompiler): allow macOS compiler metadata probes
Co-Authored-By: Codex <[email protected]>
2026-10-19 04:27:37 +02:00