Fix #32907: failure rendering a complex node setup, hitting fixed max number
of closures limit. Optimized the code now so it can handle more. Change SVM mix/add closure handling, now we transform the node graph so that the mix weights are fed into the closure nodes directly.
This commit is contained in:
@@ -130,14 +130,7 @@ protected:
|
||||
void generate_closure(ShaderNode *node, set<ShaderNode*>& done);
|
||||
|
||||
/* multi closure */
|
||||
struct MultiClosureData {
|
||||
int stack_offset;
|
||||
int users;
|
||||
};
|
||||
|
||||
void generate_multi_closure(ShaderNode *node, set<ShaderNode*>& done,
|
||||
map<ShaderNode*,MultiClosureData>& closure_data, uint in_offset);
|
||||
void count_closure_users(ShaderNode *node, map<ShaderNode*, MultiClosureData>& closure_data);
|
||||
void generate_multi_closure(ShaderNode *node, set<ShaderNode*>& done);
|
||||
|
||||
/* compile */
|
||||
void compile_type(Shader *shader, ShaderGraph *graph, ShaderType type);
|
||||
|
Reference in New Issue
Block a user