The different budget types for the texture cache. Each type has its own
memory budget. Once the budget is exceeded, entries with automatic eviction
are evicted. Entries with manual eviction share the same budget but are not
evicted once the budget is exceeded.
Keeping separate budgets ensures that we don’t evict entries from unrelated
textures if one texture gets full.
Items in the texture cache can either be standalone textures,
or a sub-rect inside the shared cache.
Describes the eviction policy for a given entry in the texture cache.
Information about which shader will use the entry.
A texture cache handle is a weak reference to a cache entry.