AnyPS5/core/libs
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
..
nid fix(nid): validate buffer ranges and string terminators 2026-10-12 08:28:52 -07:00
prx perf(agc): cache a draw key the second time it is seen 2026-10-14 03:53:28 +13:00
tests Merge pull request #4546 from codingreapermaps/feat/libc-call-trace-runtime 2026-10-13 16:51:55 +02:00
CMakeLists.txt Merge pull request #4550 from MiniRML/fix/nid-buffer-validation 2026-10-13 16:41:04 +02:00
HitLog.hpp
…
SceShaders.hpp
…
SceTypes.hpp Merge pull request #4682 from bubblegg/feat/netctl-get-if-stat 2026-10-13 09:26:47 +02:00