Making object which uses volume shader invisible will mark the shader as not having a volume, forcing re-compilation of the shader to bring it back to a consistent state. The compilation is happening as part of scene update, which needs to know kernel features. So there is a feedback loop. Use more relaxed way of knowing whether there is a volume in the shader for the kernel features, which doesn't require shader to be compiled first. Solves issues from the report, but potentially causes extra memory allocated if the volume part of graph is fully optimized out. This downside is solvable, but would need to split scene update into two steps (the one which requires on kernel, and the one which does not). It will be an interesting project to tackle, but for a bug fix is better to use simpler solution.
27 KiB
27 KiB