Commit Graph
694 Commits
Author SHA1 Message Date
Dean 8e039f083f Merge pull request #9988 from frankea/fix/one-sample-ancillary-unsampled
fix(agc): accept ANCILLARY without PS_ITER_SAMPLE for a one-sample depth target without MSAA_ENABLE
2026-10-25 01:54:06 +13:00
Adrià 6e85617080 Merge pull request #9856 from Pacuka/feat/agc-driver-mem-semaphore
feat(libSceAgcDriver): execute MEM_SEMAPHORE signals and waits
2026-10-24 14:52:55 +02:00
Adrià ce9471f191 Merge pull request #9836 from 00xDisaster/fix/pipeline-journal-no-workflows
fix(agc): keep the pipeline journal's newest pipelines when it is full
2026-10-24 14:13:50 +02:00
Adrià 60465afd3a Merge pull request #7307 from Zenodeon/agc-submit-progress-pr
feat(agc): add opt-in bounded submission progress
2026-10-24 11:59:57 +02:00
Adrià 672c38f703 Merge pull request #9077 from thuanquang/docs/debt-agc-htile-msaa-stale
docs(agc): correct five stale statements in the HTILE and multisampled target entries
2026-10-24 11:54:34 +02:00
Adrià a78fed26df Merge pull request #8639 from Tripchipp/docs/debt-type0-null-image-link
docs(debt): link the TYPE=0 null image entry to the recompiler
2026-10-24 11:54:29 +02:00
thuanquangandClaude 5536623f6c docs(agc): correct five stale statements in the HTILE and multisampled target entries
Co-Authored-By: Claude <[email protected]>
2026-10-24 11:37:08 +02:00
Dean Galvin eaf4a711e5 Merge main into fix/one-sample-ancillary-unsampled 2026-10-24 22:36:23 +13:00
Adrià 86203bafc1 Merge pull request #9022 from LeandroLP23/docs/agc-drop-cmask-gpl-off-debt
docs(debt): drop the CMASK clear pass entry for AMD without pipeline libraries
2026-10-24 11:33:17 +02:00
Tripchipp a5c8c3249d docs(debt): link the TYPE=0 null image entry to the recompiler 2026-10-24 11:25:41 +02:00
Adrià 1c9ccc7386 Merge pull request #8420 from thuanquang/docs/debt-ngg-registered-programs
docs(agc): say that registered NGG vertex programs take the mesh path too
2026-10-24 11:24:10 +02:00
Adrià 67bcd19b8b Merge pull request #8424 from thuanquang/docs/debt-alpha-to-coverage-dithered
docs(agc): drop the stale "only" from the alpha-to-coverage entry
2026-10-24 11:24:04 +02:00
Adrià 20af9f8aa3 Merge pull request #8423 from thuanquang/docs/debt-depth-surface-retire-whole-plane
docs(agc): say that only a whole-plane storage write retires a depth surface
2026-10-24 11:23:42 +02:00
Adrià ca9543ea5a Merge pull request #8419 from thuanquang/docs/debt-agc-allocation-host-fallback
docs(agc): say that a refused device allocation falls back to host memory before throwing
2026-10-24 11:21:53 +02:00
Adrià 7eda9aad20 Merge pull request #8412 from thuanquang/docs/debt-depth-storage-other-level
docs(agc): drop another level from the reused depth storage refusals
2026-10-24 11:21:36 +02:00
Adrià 1618d6602e Merge pull request #8401 from thuanquang/docs/debt-descriptor-pool-lavapipe
docs(agc): say that only lavapipe frees descriptor sets individually
2026-10-24 11:18:46 +02:00
Adrià 2b2055fa4f Merge pull request #8281 from thuanquang/docs/f64-denormal-debt
docs(debt): correct stale f64 denormal and RSRC1 float mode statements
2026-10-24 11:06:19 +02:00
Adrià FranchandClaude Sonnet 5.5 954bed036d docs(agc): order the progress switch row and keep the debt list contiguous
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-24 09:02:30 +02:00
Zenodeon 2dc33842b2 test(agc): remove scheduler-dependent submission readiness gates 2026-10-24 09:02:30 +02:00
Zenodeon a49303005d feat(agc): add opt-in bounded submission progress 2026-10-24 09:02:30 +02:00
Dean 564de82a00 Merge pull request #10044 from JJenkx/perf/agc-storage-cache-half-heap
perf(agc): let the storage image cache take up to half of the heap budget
2026-10-24 18:23:07 +13:00
Adrià 7966e590ef Merge pull request #8740 from Sam-mon7/feat/frame-replay
feat(agc): capture frames at the driver boundary and replay them offline
2026-10-24 07:03:41 +02:00
thuanquangandClaude b012267774 docs(agc): drop the stale "only" from the alpha-to-coverage entry
Co-Authored-By: Claude <[email protected]>
2026-10-24 11:55:55 +07:00
frankea 5c19aa5e42 Merge remote-tracking branch 'origin/main' into fix/one-sample-ancillary-unsampled
# Conflicts:
#	docs/dev/debt/libSceAgcDriver.md
2026-10-23 23:17:55 -04:00
frankea fc29c5a338 Merge remote-tracking branch 'origin/main' into fix/one-sample-ancillary-unsampled
# Conflicts:
#	core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
#	core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
#	docs/dev/debt/libSceAgcDriver.md
2026-10-23 22:58:22 -04:00
milescovielloandClaude Opus 5.5 371652fd0e fix(agc): draw a PS_ITER_SAMPLE program once per pixel into a one-sample color target
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 01:26:53 +00:00
Dean b6198d2fd7 Merge pull request #9721 from frankea/fix/one-sample-depth-comp-z
fix(agc): accept DB_EQAA INTERPOLATE_COMP_Z for a one-sample depth target without MSAA_ENABLE
2026-10-24 14:25:46 +13:00
thuanquangandClaude c687e7e353 docs(agc): limit the host placement exception to device buffers and images
Co-Authored-By: Claude <[email protected]>
2026-10-24 08:01:24 +07:00
thuanquangandClaude 8472a51793 docs(agc): say that a refused device allocation falls back to host memory before throwing
Co-Authored-By: Claude <[email protected]>
2026-10-24 07:59:55 +07:00
SamandClaude Opus 5.5 95d2a76583 feat(agc): capture frames at the driver boundary and replay them offline
APS5_FRAME_CAPTURE=<dir> makes the AGC driver record a few frames of a
title: the shader registrations and ABI resolutions, video output and
EOP flip reservations it made since it started, a snapshot of every
readable guest allocation (the title image included) taken at a frame
boundary once the driver is idle, and for the next frames each
submission, flip and suspend point with the thread that made it, its
serial progress and the guest pages the write tracker saw the CPU write
before it. At the end it stores the presented display buffers as
reference images. APS5_FRAME_CAPTURE_AT_FLIP, _TRIGGER and _FRAMES pick
the frames.

agc_frame_replay maps the captured memory at its addresses and replays
the calls of each captured thread on a thread of its own, in captured
order, through the current build of the driver with no title running.
It paces GPU work to the in-flight depth the title had, releases GPU
waits that the title's CPU threads released without calling the driver
(AgcDriverAwaitedWaits), and reports frame times, released waits and
how closely the replayed display buffers match the references.

Tests: agc_frame_capture (file format) and agc_driver_frame_replay
(two captured frames of CPU writes and DMA copies replayed and
compared). Docs: BUILD.md, ENVIRONMENT.md and the libSceAgcDriver debt
file.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 02:09:44 +02:00
Adrià 798c908fc4 Merge pull request #9068 from frankea/table-callee-range
fix(shader): link table callees that together exceed s_call_b64 range
2026-10-24 01:58:48 +02:00
Adrià 06596f3bdf Merge pull request #9017 from TheSovietWaffle/fix/recompiler-stencil-replay-exec-copy
fix(recompiler): accept EXEC copies in stencil replay masks
2026-10-24 01:23:52 +02:00
JJenkxandClaude Opus 5.5 9904c737ca fix(agc): reserve the storage images held in the sampled texture budget
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 17:59:54 -04:00
JJenkxandClaude Opus 5.5 3f2e9865b1 docs(agc): condense the texture cache budget debt entry
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 17:59:54 -04:00
JJenkxandClaude Opus 5.5 4c4a2332d5 perf(agc): let the storage image cache take up to half of the heap budget
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 17:59:54 -04:00
Adrià dcd7e3a61e Merge pull request #8564 from JAB-dev/feat/agc-4-4-4-4-partial-writes
feat(agc): merge partial writes into 4_4_4_4 UNORM color targets
2026-10-23 23:23:11 +02:00
Adrià 9477025a05 Merge pull request #8672 from eliasbruno124-dev/fix/cold-device-storage-pressure-20261020
perf(agc): reclaim idle device buffers under storage cache pressure
2026-10-23 23:22:06 +02:00
frankea ef2b164b15 fix(shader): relay later table calls past earlier calls' callee copies 2026-10-23 22:13:23 +02:00
battleblob1andClaude Opus 5.5 30c324a23b fix(recompiler): accept EXEC copies in stencil replay masks
Since #6291 a pixel shader's EXEC copy is read as the saved word ANDed
with WQM(Ballot(true)). MaskReplaySafety only accepts a whole-quad
expansion of a ballot it can show excludes helper lanes, and a ballot
of true includes them, so a stencil-exporting shader whose own-lane
masks come from an EXEC copy was refused (own-lane mask not stable).
Every lane of a quad is active (real or helper), so a ballot of true
holds the same quad bits as the all-ones mask the proof already treats
as quad-stable; it is now classified the same way. Helper-dependent
ballots stay uncertain.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 21:53:24 +02:00
JAB-devandClaude Sonnet 5.5 31aaf42381 docs(debt): restore the Packed 16-bit textures entry from main
The merge resolution had dropped its storage image sentences, which main keeps and this branch does not change.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 21:35:16 +02:00
JAB-devandClaude Sonnet 5.5 8d54357e79 Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into feat/agc-4-4-4-4-partial-writes
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 21:18:00 +02:00
Adrià d7948b09f9 Merge pull request #8563 from JAB-dev/feat/agc-4-4-4-4-color-target
feat(agc): render 4_4_4_4 UNORM color targets through packed R16_UINT exports
2026-10-23 21:12:19 +02:00
Adrià ea695358ee Merge pull request #8527 from eliasbruno124-dev/fix/host-import-settle-order-20261020
fix(agc): order deferred import settles with main-queue accesses
2026-10-23 20:59:54 +02:00
thuanquangandClaude 2e874e6a4b docs(debt): say that a raw compute program takes the live RSRC1 float mode
Co-Authored-By: Claude <[email protected]>
2026-10-24 01:44:52 +07:00
thuanquangandClaude 92579f545a docs(debt): correct two stale f64 denormal statements
The shader float mode entry said "Other f64 arithmetic does not model
these denormal controls". On main, v_add_f64, v_mul_f64, v_floor_f64,
v_ceil_f64, v_fract_f64, v_frexp_mant_f64, v_frexp_exp_i32_f64,
v_div_fixup_f64, the f64 compares and ds_min/max/cmpst_f64 read the
f16/f64 denormal field, and each has its own entry. The sentence now
names the f64 arithmetic whose translation still does not read it.

The v_floor_f64 entry said its modifier run used 16 of the 23 measured
values. The run's list holds 13 of them plus -1.5, 2.75 and 1 - 2^-53.

Co-Authored-By: Claude <[email protected]>
2026-10-24 01:43:29 +07:00
Adrià de0854b644 Merge pull request #8261 from thuanquang/fix/force-degamma-snorm-srgb-view
fix(agc): sample 8-bit SNORM textures through FORCE_DEGAMMA as their sRGB format
2026-10-23 19:57:15 +02:00
Adrià 4883171f9f Merge pull request #8283 from milescoviello/fix/msaa-dcc-cmask-fmask-only
fix(agc): leave a multisampled DCC target's CMASK unchecked without fast clears
2026-10-23 19:16:32 +02:00
Adrià e248d3ab24 Merge pull request #8180 from ntamas94/fix/agc-copied-writer-label-drain
fix(agc): store a label behind pending copied write-backs without draining
2026-10-23 19:16:19 +02:00
Adrià b066e5cb77 Merge pull request #8145 from TheSovietWaffle/fix/recompiler-stencil-replay-readonly-bda
fix(recompiler): replay stencil exports of pixel shaders that only read through BDA
2026-10-23 18:46:24 +02:00
Adrià 0940da2424 Merge pull request #8070 from thuanquang/fix/table-call-wide-descriptor
fix(shader): link a table call whose V# is a slice of an s_load_dwordx8 or s_load_dwordx16
2026-10-23 18:40:11 +02:00