[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 ¶ms_,
{
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 ¶ms,
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