Fix T41023: Specific material cause bad render result, different on CPU/GPU
Issue was caused by too much aggressive optimization, which skipped execution of some nodes leading to an uninitialized memory read in SVM stack.
This commit is contained in:
@@ -123,15 +123,21 @@ protected:
|
||||
|
||||
/* single closure */
|
||||
void find_dependencies(set<ShaderNode*>& dependencies,
|
||||
const set<ShaderNode*>& done, ShaderInput *input);
|
||||
const set<ShaderNode*>& done,
|
||||
ShaderInput *input,
|
||||
ShaderNode *skip_node = NULL);
|
||||
void generate_node(ShaderNode *node, set<ShaderNode*>& done);
|
||||
void generate_closure_node(ShaderNode *node, set<ShaderNode*>& done);
|
||||
void generated_shared_closure_nodes(ShaderNode *node, set<ShaderNode*>& done,
|
||||
void generated_shared_closure_nodes(ShaderNode *root_node, ShaderNode *node,
|
||||
set<ShaderNode*>& done,
|
||||
set<ShaderNode*>& closure_done, const set<ShaderNode*>& shared);
|
||||
void generate_svm_nodes(const set<ShaderNode*>& nodes, set<ShaderNode*>& done);
|
||||
|
||||
/* multi closure */
|
||||
void generate_multi_closure(ShaderNode *node, set<ShaderNode*>& done, set<ShaderNode*>& closure_done);
|
||||
void generate_multi_closure(ShaderNode *root_node,
|
||||
ShaderNode *node,
|
||||
set<ShaderNode*>& done,
|
||||
set<ShaderNode*>& closure_done);
|
||||
|
||||
/* compile */
|
||||
void compile_type(Shader *shader, ShaderGraph *graph, ShaderType type);
|
||||
|
Reference in New Issue
Block a user