Commit Graph
870 Commits
Author SHA1 Message Date
Adrià 26c20975ac Merge pull request #11369 from QRMOE/fix/agc-msaa-depth-buffer-write
fix(agc): release a resident multisample depth before a GPU buffer may write over it
2026-10-28 14:49:09 +01:00
Adrià 316615d042 Merge pull request #10307 from mazen320/fix/submit-acb-queue-0x58
fix(agc): accept compute queue 0x58 on SubmitAcb
2026-10-28 10:19:36 +01:00
Adrià a444a18d93 Merge pull request #11507 from hugodearaujo/fix/agc-short-cube-sampling
fix(agc): sample cube descriptors with fewer than six slices as six faces
2026-10-28 10:14:50 +01:00
Adrià e2ca6e4223 Merge pull request #11803 from milescoviello/docs/agc-registration-silent-stubs
docs(libSceAgcDriver): list the registration init and memory query as silent stubs
2026-10-28 10:14:41 +01:00
Adrià e2e27a3ba9 Merge pull request #11717 from xXPBSXx/docs-agc-alpha-to-coverage-round
docs(agc): record the unsupported DB_ALPHA_TO_MASK value 0x1aa01
2026-10-28 09:54:18 +01:00
Maz 5d45d2cab7 fix(agc): name unmeasured queue end and drop debt duplicates 2026-10-28 08:59:28 +01:00
Maz 683b3497de fix(agc): limit 0x58 acceptance to SubmitAcb
Keep MultiAcbs and CommandBuffer on the unmeasured 0x57 exclusive end; split the debt entries and retain the title call-sites.
2026-10-28 08:59:28 +01:00
Maz 051b3e017b fix(agc): accept compute queue 0x58 on SubmitAcb
A PS5 measurement already recorded in the debt note shows queue 0x58 succeeds; raise the exclusive SubmissionQueueEnd and cover it in agc_driver_tests.
2026-10-28 08:59:28 +01:00
Dean Galvin c116f4f2f0 Merge branch 'main' into perf-D2-v47
# Conflicts:
#	docs/dev/debt/libSceAgcDriver.md
2026-10-28 13:52:37 +13:00
Dean bf4860b6ce Merge pull request #11098 from edubox/fix/agc-single-level-depth-view
fix(agc): select the first level of a single-level depth view
2026-10-28 13:50:57 +13:00
Adrià f5fefb982c Merge pull request #11305 from joedeangelis533-bot/review/tessellation-depth-upstream-20261025
feat(agc): remap unsupported tessellation viewport depth ranges
2026-10-27 22:27:35 +01:00
Dean Galvin d4a296d863 Merge main into perf-D2-v47: depth export tail moves to request version 49
Main took request serialization version 48 for the fragment barycentric
built-ins flag (#9193). The depth export clamp bounds are now written at
version 49 and read only for versions from 49, so a version 48 request as main
writes it still decodes, with default bounds. Tests: version 49 is the
emitted prefix, 50 the first unsupported one, a depth exporting request
without its bounds decodes at 48, 47 and 46 (the last two without main's
barycentric byte), and a version 48 two-sample dithered request decodes as
written.
2026-10-28 08:24:34 +13:00
Dean d13b3d7c55 Merge pull request #10575 from Mouhand-Kaddo/fix/agc-committed-reads-released-pages
fix(agc): read committed guest pages on Windows without faulting on released pages
2026-10-28 07:55:20 +13:00
Dean 594214f733 Merge pull request #11357 from oneandonlydean/sa/host-import-frame-eviction
fix(agc): do not evict host imports used in the current or previous frame
2026-10-28 06:23:09 +13:00
Adrià 9ae2f7d22a Merge pull request #10414 from orezraey/fix/agc-partial-fast-clear-eliminate
fix(agc): eliminate a fast clear over part of a CMASK color target
2026-10-27 13:19:27 +01:00
milescovielloandClaude Opus 5.5 c60f0fc43c docs(libSceAgcDriver): note the registration memory query's null-output refusal
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 11:43:03 +00:00
milescovielloandClaude Opus 5.5 c2a6577ad9 docs(libSceAgcDriver): list the registration init and memory query as silent stubs
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 11:43:03 +00:00
Adrià e4f6c8aa40 Merge pull request #11453 from LeandroLP23/docs/agc-present-mutex-amd-windows
docs(agc): record presentation under the GPU mutex on AMD's Windows driver
2026-10-27 11:59:57 +01:00
Adrià 5c3c9d95c8 Merge pull request #11364 from xXPBSXx/fix-agc-cb-resolve-packed-float
docs(debt): record the unsupported and unmeasured multisample CB resolve of 11_11_10 float targets
2026-10-27 11:58:43 +01:00
Dean Galvin 1bf274a817 Merge main into perf-D2-v47: depth export tail moves to request version 48
Main took request serialization version 47 for the two-sample dithered
alpha-to-coverage value. The depth export clamp bounds are now written at
version 48 and read only for versions from 48, so a version 47 request as main
writes it still decodes, with default bounds. Tests: version 48 is the
emitted prefix, 49 the first unsupported one, and a version 47 two-sample
dithered request (with and without depth export) decodes as written.
2026-10-27 22:37:31 +13:00
Dean e07c21ce68 Merge pull request #11157 from janzezno/feat/agc-frame-capture-linux
feat(agc): capture and replay frames on Linux
2026-10-27 21:20:55 +13:00
Dean 6f7fba5bfa Merge pull request #11086 from slopgobblercobbler/fix/agc-submit-many-bounds-validation
fix(agc): validate multi-submit count overflow and null command buffers
2026-10-27 21:19:00 +13:00
hugodearaujo 5a5e54a455 Merge main into fix/agc-short-cube-sampling 2026-10-27 03:46:24 -03:00
orezraeyandClaude Opus 5.5 6aeb8d6c3e Merge main into fix/agc-partial-fast-clear-eliminate
Keep #9694's coverage check for targets without CMASK or DCC keys and skip it only for a fast-clear eliminate over a CMASK target without DCC keys.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 02:37:09 -03:00
Adrià 4297464b12 Merge pull request #9402 from janzezno/perf/incremental-import-refresh
perf(agc): re-check only the host imports a registry change can reach
2026-10-27 06:10:48 +01:00
xXPBSXxandClaude Sonnet 5.5 ad95db1032 docs(agc): note the 0x1aa01 DB_ALPHA_TO_MASK stop of PPSA12361
PPSA12361 reaches DB_ALPHA_TO_MASK 0x1aa01 on main 74acfad65b on an RTX 4080 SUPER and an RX 6400. It is the accepted 0xaa01 with bit 16 also set, and radeonsi never programs that combination. Its semantics are not measured, so the path keeps throwing; the entry records it.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-27 05:24:30 +01:00
Adrià 4c486ca322 Merge pull request #10515 from JJenkx/fix/agc-two-sample-dithered-a2c
fix(agc): emulate two-sample DB_ALPHA_TO_MASK 0xe701 dithered alpha-to-coverage
2026-10-27 04:52:02 +01:00
Adrià 33d2affaa6 Merge pull request #10901 from EagleBearerYS/docs/debt-gaps-bf208
docs(debt): bring five libraries' debt files in line with the tree
2026-10-27 04:50:47 +01:00
Adrià 10a5931994 Merge pull request #10822 from xXPBSXx/docs/debt-agcdriver-registerdefaultowner-title
docs(debt): note how a title calls sceAgcDriverRegisterDefaultOwner
2026-10-27 04:50:09 +01:00
Dean Galvin 8b323065a9 docs(agc): note that only viewport 0 bounds clamp an exported depth
The clamp reads PA_SC_VPORT_ZMIN_0 and PA_SC_VPORT_ZMAX_0 only, so a draw that
selects another viewport is clamped to viewport 0's depth range.
2026-10-27 15:59:30 +13:00
Dean abed035468 Merge pull request #11313 from frankea/fix/agc-draw-index-multi-instanced
fix(agc): write the console's DRAW_INDEX_MULTI_INST packet for sceAgcDcbDrawIndexMultiInstanced
2026-10-27 15:02:15 +13:00
Dean 630211a866 Merge pull request #6612 from milescoviello/feat/tess-geometry
feat(agc): draw tessellation followed by an NGG geometry stage
2026-10-27 14:56:18 +13:00
Dean Galvin 7f3f58284c fix(agc): serve host imports by lookups until two frames have ended
Before two flips have ended a frame nothing was evictable, so a cap retry
was refused and aborted where main served it. Until then imports age by
lookups as before; once frames exist the frame rule applies. A frame end
now moves its own counter, used by the evicting-refusal memory, not the
imports epoch, so the address-space cache survives a flip.
2026-10-27 10:36:53 +13:00
janzezno 4f7e51f399 perf(agc): re-check only the host imports a registry change can reach
refreshImports checked every live host import, failure and refusal
again at each guest allocation registry change. A title that maps
memory often (SuperTuxKart, ~1650 maps a second) paid a walk that grew
with the live imports: ~34 FPS with ~1.1 GiB of imports on RADV.

The import table now keeps a weak_ptr snapshot of the ranges it was
last checked against and diffs it with the new lease. Only imports
whose import window touches a changed span, and imports made since the
last refresh, are checked again. Every import is checked when the window
is 0 or the window or budget changed. SuperTuxKart's menu goes from
~34 to ~45 FPS with the same imports live.
2026-10-26 21:19:58 +01:00
Dean 930a681f2a Merge pull request #9879 from thuanquang/fix/linear-target-import-creation
perf(agc): create the host import of a linear color target in registered memory
2026-10-27 08:18:22 +13:00
QRMOEandClaude Opus 5.5 ee23428c55 fix(agc): release a resident multisample depth before a GPU buffer may write over it
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 19:44:05 +01:00
hugodearaujo 787b6a6720 fix(agc): sample cube descriptors with fewer than six slices as six faces 2026-10-26 15:11:35 -03:00
Adrià 88795ed448 Merge pull request #10465 from xXPBSXx/docs-agc-copyregion-over-4gib
docs(agc): note the guest buffer region copied whole over 4 GiB
2026-10-26 18:26:07 +01:00
Adrià 761eaba441 Merge pull request #10463 from xXPBSXx/docs/debt-pm4-type0-reread
docs(debt): note that the zero gap before REWIND packets stays unwritten
2026-10-26 18:24:47 +01:00
frankea 72f663c64c Merge remote-tracking branch 'origin/main' into fix/agc-draw-index-multi-instanced 2026-10-26 12:32:50 -04:00
Adrià b5c040bced Merge pull request #10191 from xXPBSXx/docs/debt-agcdriver-submitacb-title
docs(debt): note how titles call sceAgcDriverSubmitAcb
2026-10-26 16:30:51 +01:00
hypermistandClaude Opus 5.5 d6f2d6501e docs(debt): cite firmware 13.60, not 12.00, for the decrypted modules
The modules these entries were read from record SDK 13.60 (0x13600007)
in their module-param segment, so they are firmware 13.60. Only the
version label changes; the behaviour described is unchanged.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_013XFS3FUfBtqCVfwmBrRQ6q
2026-10-26 16:17:50 +01:00
janzezno c867473002 feat(agc): capture and replay frames on Linux 2026-10-26 16:11:45 +01:00
xXPBSXxandClaude Opus 5.5 12e40b760e Merge main into docs/debt-pm4-type0-reread
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 16:02:00 +01:00
LeandroLP23andClaude Opus 5.5 8c61e533fb docs(agc): record presentation under the GPU mutex on AMD's Windows driver
AMD's Windows driver exposes one graphics queue on a Radeon 860M, so
vkQueuePresentKHR runs on the main queue under GuestMemory::GpuMutex
there, as on RADV. Two Yamagi Quake II traces of 1200 presents each
showed Vulkan.QueuePresent at about 0.3 ms (max 3.5 ms) and no
GpuMutex.wait slice from another thread overlapping it. The entry now
closes once RADV, lavapipe and Intel's Windows driver, the named drivers
still unmeasured, show the same.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 15:51:30 +01:00
Adrià 4c394fdc00 Merge pull request #10066 from xXPBSXx/docs-agc-label-wait-amd-data
docs(agc): add AMD data to the queue 0x20 label wait entry
2026-10-26 14:57:54 +01:00
Adrià 1061954c7e Merge pull request #8520 from qpavyros/codex/app-archive-directories
feat(libkernel): enumerate archived app directories
2026-10-26 14:23:39 +01:00
Adrià 035ac96edd Merge pull request #9940 from EagleBearerYS/fix/agc-compared-import-initial-dcc
fix(agc): accept a compared host import for an initial multisampled DCC import
2026-10-26 13:51:02 +01:00
Yunus Shaikh 33851346ad Merge main into docs/debt-gaps-bf208 2026-10-26 05:16:02 -07:00
Adrià 6641f48356 Merge pull request #9789 from rooklz/fix/agc-uint-color-export
fix(libSceAgcDriver): export raw 32-bit values into UINT color targets as integers
2026-10-26 12:48:04 +01:00