Open kwokcb opened 1 year ago
Found that a shader rebuild is also required when changing the input streams being used. Otherwise the shader will always reuse emit stream requirements from the last code generation.
Nodes to consider would include and
Changes to input values which actually are topological changes which require the shader to be rebuilt are not caught -- resulting in the appearance of not working. Value changes currently directly modify shader inputs for efficiency.
This does not necessarily apply to all backend targets but any that call C++ to generate new code such as conditionals. Enumerants also will fall into this category if a single choice is encoded when generating (e.g. such as image node texture addressing. Value changes which affect transparent display may also not be caught.
e.g. is a graph with a switch node where a change in the
which
selection input will result in nothing updating.if the condition is being fed by an interface input, then changes at the interface level which affect a conditional should be considered, though a full downstream traversal could be "expensive" at least the first level interface should work. e.g. which would be this graph: