hrydgard/ppsspp — pull request #647 by unknownbrackets (2013-02-10 22:36:48+00:00)
Title: Improve texture and vertex caches

This does the following:

* Makes the vertex cache cache based on frames, not draws. Fixes issues in Mimana, ClaDun, 30 Minute Hero, Patchwork Heroes, Senjou no Valkyria 3, Crystal Defenders, etc.
* Makes the texture cache use a similar system to the vertex cache (status, expontential backoff.)
* No longer deletes textures on invalidate ever, only on decimate and when the hash actually fails.
* Hashes based on the w/h using bufw as a stride.

This fixes texture and vertex cache issues in the games I was seeing them in, and still seems to be pretty fast.

It's still not perfect. In some games, the wrong texture will show for a few frames and then pop into place (similar problem to the vertex cache before.) Before it was just never showing the right thing though, so this is an improvement.

I double-checked the speed using the FF Type-0 demo. It's gotten faster recently and doesn't seem to have any noticeable slowdown from my changes. Probably it could be more efficient, though.

-[Unknown]