Add alwaysRecalculateTextureHashes option for games that dynamically update/override existing textures - #113
Conversation
…update textures This option can help in games that dynamically update existing textures. Remix normally does not update the hash after texture creation which can lead to issues with texture replacements or texture tagging.
|
Have you done any perf testing in CPU bound scenarios? I'm not sure how often FlushImage, UpdateTexture, and UpdateSurface get called, but if it's frequent then this may introduce pretty considerable overhead. I'd recommend trying to just watch the FPS counters in dxvk.hud with it on and off, see if there's any difference. If there is, it may warrant further profiling / optimization. The |
Couldn't really tell a difference with it on and off but I'll do some actual performance tests and report my findings 👍 |
|
@MarkEHenderson I couldn't spot any differences in performance when cpu bound with it on/off. I've made a trace with it on and scoped a frame with pretty high cpu usage. Never used tracy before so not sure if what I did is correct:
The only downside I've noticed with this commit would be the jumping imgui texture list |

This PR adds a new option called
Always Recalculate Hashesunder the Game Setup - Textures Tab.This new option can help in games that dynamically update/override existing textures. Remix normally does not update the hash after texture creation which can lead to issues with texture replacements or texture tagging.
The most severe issue I had was a texture tagged as UI that was switched out with a texture used on a mesh after playing the game for a bit and remix kept the hash of the original UI texture. One can imagine the result.
That was very rare. Most of the time it resulted in this:
hash_issue01.mp4
GTA San Andreas - Hemry (Discord May 2025)
hash_issue02.mp4
Hemry tested this fix on GTA SA and reported the hash issue (switching textures) being fixed.
NFS Underground 2 - Hemry
He also tested the fix here:
Other games/projects: