diff options
Diffstat (limited to 'intern/cycles/render/svm.h')
-rw-r--r-- | intern/cycles/render/svm.h | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/intern/cycles/render/svm.h b/intern/cycles/render/svm.h index 99e91ca0c3e..a501b6bc8b1 100644 --- a/intern/cycles/render/svm.h +++ b/intern/cycles/render/svm.h @@ -23,6 +23,7 @@ #include "util_set.h" #include "util_string.h" +#include "util_thread.h" CCL_NAMESPACE_BEGIN @@ -46,6 +47,15 @@ public: void device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress); void device_free(Device *device, DeviceScene *dscene, Scene *scene); + +protected: + /* Lock used to synchronize threaded nodes compilation. */ + thread_spin_lock nodes_lock_; + + void device_update_shader(Scene *scene, + Shader *shader, + Progress *progress, + vector<int4> *global_svm_nodes); }; /* Graph Compiler */ @@ -200,7 +210,7 @@ protected: /* compile */ void compile_type(Shader *shader, ShaderGraph *graph, ShaderType type); - vector<int4> svm_nodes; + vector<int4> current_svm_nodes; ShaderType current_type; Shader *current_shader; ShaderGraph *current_graph; |