When you modify a Texture directly on the GPU side (eg. via Compute Shaders), Unity has no way of knowing that the texture has changed. This can break some things if you assign the texture as a density volume mask, a light cookie texture, etc.
I first stumbled upon Texture.imageContentsHash
, but don’t actually use that - confusingly enough, it’s an editor-only property and doesn’t even exist in UnityEngine.dll
in builds.
What you actually want is:
Texture.IncrementUpdateCount
Increment the update counter.
Call this method when you update a Texture from the GPU side, or you want to explicitly increment the counter.
Simply call the method on the texture and - if you’re lucky - Unity will notice that the texture has changed.
0
1
// bump the texture version
texture.IncrementUpdateCount();