Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/render/svm.h
| Show First 20 Lines • Show All 106 Lines • ▼ Show 20 Lines | struct Stack { | ||||
| } | } | ||||
| int users[SVM_STACK_SIZE]; | int users[SVM_STACK_SIZE]; | ||||
| }; | }; | ||||
| struct StackBackup { | struct StackBackup { | ||||
| Stack stack; | Stack stack; | ||||
| vector<int> offsets; | vector<int> offsets; | ||||
| set<ShaderNode*> done; | ShaderNodeSet done; | ||||
| }; | }; | ||||
| void stack_backup(StackBackup& backup, set<ShaderNode*>& done); | void stack_backup(StackBackup& backup, ShaderNodeSet& done); | ||||
| void stack_restore(StackBackup& backup, set<ShaderNode*>& done); | void stack_restore(StackBackup& backup, ShaderNodeSet& done); | ||||
| void stack_clear_temporary(ShaderNode *node); | void stack_clear_temporary(ShaderNode *node); | ||||
| int stack_size(ShaderSocketType type); | int stack_size(ShaderSocketType type); | ||||
| void stack_clear_users(ShaderNode *node, set<ShaderNode*>& done); | void stack_clear_users(ShaderNode *node, ShaderNodeSet& done); | ||||
| bool node_skip_input(ShaderNode *node, ShaderInput *input); | bool node_skip_input(ShaderNode *node, ShaderInput *input); | ||||
| /* single closure */ | /* single closure */ | ||||
| void find_dependencies(set<ShaderNode*>& dependencies, | void find_dependencies(ShaderNodeSet& dependencies, | ||||
| const set<ShaderNode*>& done, | const ShaderNodeSet& done, | ||||
| ShaderInput *input, | ShaderInput *input, | ||||
| ShaderNode *skip_node = NULL); | ShaderNode *skip_node = NULL); | ||||
| void generate_node(ShaderNode *node, set<ShaderNode*>& done); | void generate_node(ShaderNode *node, ShaderNodeSet& done); | ||||
| void generate_closure_node(ShaderNode *node, set<ShaderNode*>& done); | void generate_closure_node(ShaderNode *node, ShaderNodeSet& done); | ||||
| void generated_shared_closure_nodes(ShaderNode *root_node, ShaderNode *node, | void generated_shared_closure_nodes(ShaderNode *root_node, ShaderNode *node, | ||||
| set<ShaderNode*>& done, | ShaderNodeSet& done, | ||||
| set<ShaderNode*>& closure_done, const set<ShaderNode*>& shared); | ShaderNodeSet& closure_done, | ||||
| void generate_svm_nodes(const set<ShaderNode*>& nodes, set<ShaderNode*>& done); | const ShaderNodeSet& shared); | ||||
| void generate_svm_nodes(const ShaderNodeSet& nodes, ShaderNodeSet& done); | |||||
| /* multi closure */ | /* multi closure */ | ||||
| void generate_multi_closure(ShaderNode *root_node, | void generate_multi_closure(ShaderNode *root_node, | ||||
| ShaderNode *node, | ShaderNode *node, | ||||
| set<ShaderNode*>& done, | ShaderNodeSet& done, | ||||
| set<ShaderNode*>& closure_done); | ShaderNodeSet& closure_done); | ||||
| /* compile */ | /* compile */ | ||||
| void compile_type(Shader *shader, ShaderGraph *graph, ShaderType type); | void compile_type(Shader *shader, ShaderGraph *graph, ShaderType type); | ||||
| vector<int4> svm_nodes; | vector<int4> svm_nodes; | ||||
| ShaderType current_type; | ShaderType current_type; | ||||
| Shader *current_shader; | Shader *current_shader; | ||||
| ShaderGraph *current_graph; | ShaderGraph *current_graph; | ||||
| Show All 10 Lines | |||||