mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-14 15:00:30 +02:00
NotifyWriteFormattedFromMemory appends to videos_ unconditionally. A game blitting its decoded frame to the display buffer does that every displayed frame while it waits for the next one to decode, so the same two or three addresses come back over and over: Death Jr pushes 733 entries where there are two distinct buffers, Tekken 6 around 53,000 where there are three. IsVideo() walks that vector linearly on every texture. Refresh the matching entry instead of appending a new one - Death Jr now holds 2 entries and Tekken 6 holds 18, peak size 2 and 3. The other half is the two TODOs that were already sitting there. A video texture is new every frame by definition, so re-hashing it only confirms what the VIDEO flag already said, and the secondary cache has nothing to offer a frame that will never recur. Skip both, and with them the secondary lookup that would otherwise key off a hash we no longer compute. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>