dispatch: hash shaders after generating them
pl_shader_signature
is really naive and subtly broken in practice.
Instead of using it, internally hash the fully-generated shader.
Fixes a major issue where the dispatch layer generated false positive cache hits when the only thing that changed about a shader was metadata about the descriptors etc.
This has the very unfortunate side effect of forcing the allocation of
pl_pass
+ temporary arrays on every single frame, which is a potential
CPU cost drawback. I'm still thinking about ways to improve this.