EEVEE; calculate groups only once to speed up shader compilation
I have an issue where a reasonably complex group is taking 24 seconds each time I plug something into one of the groups sockets.
It would be great if the inside of the group did not recalculate unless something inside the group has changed.
This would also mean that no matter how many materials use a group, only one of them would need to calculate the group, and all of the others would use that data.
If the inside of the group was never changed, then the expensive group calculation would only need to happen once in that Blender session.
2 Comments
This is technical totally not advised as this would not perform due to how OpenGL/Vulkan works. Adding this feature requires a virtualization of the shader, similar to cycles. So it won't be optimized for real time rendering anymore and that is just a key point what eevee is all about.
* @Jeroen Bakker * Yep, it needs t be implemented on the OpenGL/Vulkan libraries it appears after speaking with Brecht.
An ammendment to the OpenGl and Vulcan libraries to hash each node during compilation, associate that hash with the portion of the graph that it relates to, and then if the hash has changed on re-compilation, re-calculate, else use existing portion of graph to save minutes of needless processing to arrive back at something we already have.