diff options
author | Brecht Van Lommel <brecht@blender.org> | 2021-10-14 18:52:19 +0300 |
---|---|---|
committer | Brecht Van Lommel <brecht@blender.org> | 2021-10-15 16:42:44 +0300 |
commit | 509b637d594f97ce1504c65430d0643ecb4c6f9a (patch) | |
tree | 3a889195440d8752d476c090919115d27b09763c /intern/cycles | |
parent | eb71157e2a9c7abdeb7045bdf9b79d8ca27ba263 (diff) |
Cleanup: don't copy constant memory to GPU multiple times for displacement
Diffstat (limited to 'intern/cycles')
-rw-r--r-- | intern/cycles/render/geometry.cpp | 3 | ||||
-rw-r--r-- | intern/cycles/render/mesh_displace.cpp | 3 |
2 files changed, 3 insertions, 3 deletions
diff --git a/intern/cycles/render/geometry.cpp b/intern/cycles/render/geometry.cpp index 39681ef3d66..0304f168187 100644 --- a/intern/cycles/render/geometry.cpp +++ b/intern/cycles/render/geometry.cpp @@ -1800,6 +1800,9 @@ void GeometryManager::device_update(Device *device, size_t num_bvh = 0; { + /* Copy constant data needed by shader evaluation. */ + device->const_copy_to("__data", &dscene->data, sizeof(dscene->data)); + scoped_callback_timer timer([scene](double time) { if (scene->update_stats) { scene->update_stats->geometry.times.add_entry({"device_update (displacement)", time}); diff --git a/intern/cycles/render/mesh_displace.cpp b/intern/cycles/render/mesh_displace.cpp index bf8a4585907..a08874e6fa8 100644 --- a/intern/cycles/render/mesh_displace.cpp +++ b/intern/cycles/render/mesh_displace.cpp @@ -191,9 +191,6 @@ bool GeometryManager::displace( } } - /* Needs to be up to data for attribute access. */ - device->const_copy_to("__data", &dscene->data, sizeof(dscene->data)); - /* Evaluate shader on device. */ ShaderEval shader_eval(device, progress); if (!shader_eval.eval(SHADER_EVAL_DISPLACE, |