[Bf-blender-cvs] [509b637d594] master: Cleanup: don't copy constant memory to GPU multiple times for displacement

Brecht Van Lommel noreply at git.blender.org
Fri Oct 15 15:59:43 CEST 2021


Commit: 509b637d594f97ce1504c65430d0643ecb4c6f9a
Author: Brecht Van Lommel
Date:   Thu Oct 14 17:52:19 2021 +0200
Branches: master
https://developer.blender.org/rB509b637d594f97ce1504c65430d0643ecb4c6f9a

Cleanup: don't copy constant memory to GPU multiple times for displacement

===================================================================

M	intern/cycles/render/geometry.cpp
M	intern/cycles/render/mesh_displace.cpp

===================================================================

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,



More information about the Bf-blender-cvs mailing list