This adds a function that can turn an existing `bNodeTree` into an inlined one. The new node tree has all node groups, repeat zones, closures and bundles inlined. So it's just a flat tree that ideally can be consumed easily by render engines. As part of the process, it also does constant folding. The goal is to support more advanced features from geometry nodes (repeat zones, etc.) in shader nodes which the evaluator is more limited because it has to be able to run on the GPU. Creating an inlined `bNodeTree` is likely the most direct way to get but may also be limiting in the future. Since this is a fairly local change, it's likely still worth it to support these features in all render engines without having to make their evaluators significantly more complex. Some limitations apply here that do not apply in Geometry Nodes. For example, the iterations count in a repeat zone has to be a constant after constant folding. There is also a `Test Inlining Shader Nodes` operator that creates the inlined tree and creates a group node for it. This is just for testing purposes. #145811 will make this functionality available to the Python API as well so that external renderers can use it too.
This folder contains files used by ctest testing system in Blender. The purpose of this files it to do automated render tests for Cycles, Workbench and EEVEE. If you want to extend this collection make sure the file is really small and uses as few samples as possible for reliable detection of render regressions. Each file is expected to be rendered in around one second.