Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/intern
diff options
context:
space:
mode:
authorBrecht Van Lommel <brecht@blender.org>2021-10-14 18:52:19 +0300
committerBrecht Van Lommel <brecht@blender.org>2021-10-15 16:42:44 +0300
commit509b637d594f97ce1504c65430d0643ecb4c6f9a (patch)
tree3a889195440d8752d476c090919115d27b09763c /intern
parenteb71157e2a9c7abdeb7045bdf9b79d8ca27ba263 (diff)
Cleanup: don't copy constant memory to GPU multiple times for displacement
Diffstat (limited to 'intern')
-rw-r--r--intern/cycles/render/geometry.cpp3
-rw-r--r--intern/cycles/render/mesh_displace.cpp3
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,