[Bf-blender-cvs] [ec351d1d446] cycles_procedural_api: handle comments from review

Kévin Dietrich noreply at git.blender.org
Thu Nov 5 18:57:51 CET 2020


Commit: ec351d1d446c26214212c69a011bedacc7abc41d
Author: Kévin Dietrich
Date:   Fri Oct 30 02:53:45 2020 +0100
Branches: cycles_procedural_api
https://developer.blender.org/rBec351d1d446c26214212c69a011bedacc7abc41d

handle comments from review

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

M	intern/cycles/bvh/bvh_optix.cpp
M	intern/cycles/bvh/bvh_optix.h
M	intern/cycles/device/device_optix.cpp
M	intern/cycles/render/geometry.cpp
M	intern/cycles/render/geometry.h

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

diff --git a/intern/cycles/bvh/bvh_optix.cpp b/intern/cycles/bvh/bvh_optix.cpp
index 9dfe3c56445..f2666688123 100644
--- a/intern/cycles/bvh/bvh_optix.cpp
+++ b/intern/cycles/bvh/bvh_optix.cpp
@@ -39,6 +39,7 @@ BVHOptiX::BVHOptiX(const BVHParams &params_,
 {
   optix_handle = 0;
   optix_data_handle = 0;
+  do_refit = false;
 }
 
 BVHOptiX::~BVHOptiX()
@@ -218,7 +219,7 @@ void BVHOptiX::pack_nodes(const BVHNode *)
 
 void BVHOptiX::refit_nodes()
 {
-  geometry[0]->do_optix_refit = true;
+  do_refit = true;
 }
 
 BVHNode *BVHOptiX::widen_children_nodes(const BVHNode *)
diff --git a/intern/cycles/bvh/bvh_optix.h b/intern/cycles/bvh/bvh_optix.h
index 38da6b55c5d..5465770af9f 100644
--- a/intern/cycles/bvh/bvh_optix.h
+++ b/intern/cycles/bvh/bvh_optix.h
@@ -33,8 +33,9 @@ class BVHOptiX : public BVH {
   friend class BVH;
 
  public:  
-  unsigned long long optix_handle;
-  unsigned long long optix_data_handle;
+  uint64_t optix_handle;
+  uint64_t optix_data_handle;
+  bool do_refit;
 
   BVHOptiX(const BVHParams &params,
            const vector<Geometry *> &geometry,
diff --git a/intern/cycles/device/device_optix.cpp b/intern/cycles/device/device_optix.cpp
index c9667852497..5558354d03c 100644
--- a/intern/cycles/device/device_optix.cpp
+++ b/intern/cycles/device/device_optix.cpp
@@ -1194,7 +1194,7 @@ class OptiXDevice : public CUDADevice {
     std::set<CUdeviceptr> refit_mem;
 
     for (Geometry *geom : bvh->geometry) {
-      if (geom->do_optix_refit) {
+      if (static_cast<BVHOptiX *>(geom->bvh)->do_refit) {
         refit_mem.insert(static_cast<BVHOptiX *>(geom->bvh)->optix_data_handle);
       }
     }
@@ -1219,7 +1219,7 @@ class OptiXDevice : public CUDADevice {
       OptixBuildOperation operation;
       CUdeviceptr out_data;
       // Refit is only possible in viewport for now.
-      if (ob->geometry->do_optix_refit && !background) {
+      if (static_cast<BVHOptiX *>(geom->bvh)->do_refit && !background) {
         out_data = static_cast<BVHOptiX *>(geom->bvh)->optix_data_handle;
         handle = static_cast<BVHOptiX *>(geom->bvh)->optix_handle;
         operation = OPTIX_BUILD_OPERATION_UPDATE;
@@ -1397,7 +1397,7 @@ class OptiXDevice : public CUDADevice {
           geometry.insert({ob->geometry, handle});
           static_cast<BVHOptiX *>(geom->bvh)->optix_data_handle = out_data;
           static_cast<BVHOptiX *>(geom->bvh)->optix_handle = handle;
-          geom->do_optix_refit = false;
+          static_cast<BVHOptiX *>(geom->bvh)->do_refit = false;
         }
         else {
           return false;
@@ -1471,7 +1471,7 @@ class OptiXDevice : public CUDADevice {
           geometry.insert({ob->geometry, handle});
           static_cast<BVHOptiX *>(geom->bvh)->optix_data_handle = out_data;
           static_cast<BVHOptiX *>(geom->bvh)->optix_handle = handle;
-          geom->do_optix_refit = false;
+          static_cast<BVHOptiX *>(geom->bvh)->do_refit = false;
         }
         else {
           return false;
diff --git a/intern/cycles/render/geometry.cpp b/intern/cycles/render/geometry.cpp
index 587ed4f418b..9457d5e0205 100644
--- a/intern/cycles/render/geometry.cpp
+++ b/intern/cycles/render/geometry.cpp
@@ -74,7 +74,6 @@ Geometry::Geometry(const NodeType *node_type, const Type type)
   attr_map_offset = 0;
   optix_prim_offset = 0;
   prim_offset = 0;
-  do_optix_refit = false;
 }
 
 Geometry::~Geometry()
diff --git a/intern/cycles/render/geometry.h b/intern/cycles/render/geometry.h
index 2728d29de41..9367c4a9de7 100644
--- a/intern/cycles/render/geometry.h
+++ b/intern/cycles/render/geometry.h
@@ -90,7 +90,6 @@ class Geometry : public Node {
   /* Update Flags */
   bool need_update;
   bool need_update_rebuild;
-  bool do_optix_refit;
 
   /* Index into scene->geometry (only valid during update) */
   size_t index;



More information about the Bf-blender-cvs mailing list