Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of Changes
Currently, we expand the texture, then hash the RGBA8 texture (when paltex is off). This is a lot of extra work when the texture data potentially hasn't changed.
So, instead, let's hash the GS blocks which back the texture.
There is the potential to have a few false positives here, since for tiny textures, the padding bytes in the block may be different. But worst case scenario, this just means an extra upload, which for tiny textures isn't a huge deal. The CPU savings from not expanding are more than worth it.
Based on #5290 for ease of testing.
Suggested Testing Steps
Test with preloading enabled, make sure performance is not worse (should be better in texture streaming heavy games, assuming no other bottlenecks).