AnyPS5/core
Dean Galvin 0adbdcf45c perf(agc): cache a draw key the second time it is seen
A draw whose key has no entry captured its stages, built a variant per
stage (a copy of every captured region) and inserted a draw entry. A key
that never comes back paid for the variants and the entry for nothing,
and its entry pushed a live one out of the cache. Draws whose user data
changes every frame are such keys.

The driver now remembers the keys it has seen once, in a table of
four-way buckets holding four times the cache's size in keys. A key gets
its entry at its second sight; a key that already has an entry still
takes new variants at once. A full bucket replaces its oldest key, so
keys that share a bucket do not push each other out until more than four
of them come between two sights of one.

Test: agc_driver_draw_cache_reuse draws three times. The first two draws
find no entry, one entry is inserted, and the third draw hits it. A
sighting table of one bucket keeps two keys drawn in turn and replaces
its oldest key when full.
2026-10-14 03:53:28 +13:00
..
Decoder fix(png): bound transparency chunk detection to the input 2026-10-10 09:28:30 +08:00
libs perf(agc): cache a draw key the second time it is seen 2026-10-14 03:53:28 +13:00
relinker fix(relinker): include output stream header 2026-10-13 18:05:37 +05:30
shader/recompiler Merge pull request #4577 from Moaziz667/fix/prime-remaining-host-mutexes 2026-10-13 16:45:17 +02:00