diff options
author | Lukas Stockner <lukas.stockner@freenet.de> | 2019-07-31 09:29:18 +0300 |
---|---|---|
committer | Lukas Stockner <lukas.stockner@freenet.de> | 2019-07-31 22:03:45 +0300 |
commit | feed46c4ae480ccd3f1b1ee6bb61adaf308f85c3 (patch) | |
tree | 473f993bc20614aa7459aecb9d1fa52a5c92f86b /intern/cycles/render/svm.h | |
parent | c72f6b713f8323e0e7a71e91064f699bb9b288ab (diff) |
Merge per-shader SVM nodes in the main update thread to avoid locking and resizing overhead
In a test file containing 1300 copies of the same shader, this reduces shader update time from 3.1 sec to 0.05 sec.
Thanks to @swerner for noticing this issue.
Reviewers: brecht, sergey, swerner
Subscribers: swerner
Differential Revision: https://developer.blender.org/D5376
Diffstat (limited to 'intern/cycles/render/svm.h')
-rw-r--r-- | intern/cycles/render/svm.h | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/intern/cycles/render/svm.h b/intern/cycles/render/svm.h index d6964fb158b..7eac3e19bb3 100644 --- a/intern/cycles/render/svm.h +++ b/intern/cycles/render/svm.h @@ -50,13 +50,10 @@ class SVMShaderManager : public ShaderManager { 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, - array<int4> *global_svm_nodes); + array<int4> *svm_nodes); }; /* Graph Compiler */ |