* Pass CbufSlot when getting info from the texture descriptor
Fixes some issues with bindless textures, when CbufSlot is not equal to the current TextureBufferIndex.
Specifically fixes a random chance of full screen colour flickering in Super Mario Party.
* Apply suggestions from code review
Oops
Co-authored-by: gdkchan <gab.dark.100@gmail.com>
Co-authored-by: gdkchan <gab.dark.100@gmail.com>
This adds the guest GPU accessor to hashes computation.
As this change all the hashes from the cache, I added some migration
logic.
This is required for #1755.
* shader cache: Fix possible race causing crashes on manifest at startup
This fix a misplace function call ending up causing possibly two write
on the cache.info at the same time.
* shader cache: Make RemoveManifestEntries async too to be sure all operations are perform before starting the game
* shader cache: Fix invalid virtual address clean up
This fix an issue causing the virtual address of texture descriptors to
not be cleaned up when caching and instead cleaning texture format and swizzle.
This should fix duplicate high duplication in the cache for certain
games and possible texture corruption issues.
**THIS WILL INVALIDATE ALL SHADER CACHE LEVELS CONSIDERING THE NATURE OF THE ISSUE**
* shader cache: Address gdk's comment
Here come Salieri, my implementation of a disk shader cache!
"I'm sure you know why I named it that."
"It doesn't really mean anything."
This implementation collects shaders at runtime and cache them to be later compiled when starting a game.