This patch does a few things:
- Uses the same age-based expiration that we use for the standalone cache for the shared cache.
- Tracks the last time we expired shared entries.
- When allocation fails, tries to expire old entries before allocating another layer, assuming we haven't done so just a few frames ago.
- Eliminates the size limits on the shared caches, and just grows them instead of allocating standalone entries.
The last bit could cause us to get stuck with larger total texture
allocations than we do now, if a lot of entries were used in quick
succession (since we never drop shared entries like we do with
standalone entries). However, I think it's probably unlikely enough
that it's fine to ship it for a few days while I finish up shrinking
support.
The parameters here (75 and 25) still aren't perfect, and I'll tune them going
forward.
Depends on D11272