diff options
Diffstat (limited to 'intern/cycles/bvh')
-rw-r--r-- | intern/cycles/bvh/bvh_build.cpp | 10 | ||||
-rw-r--r-- | intern/cycles/bvh/bvh_params.h | 5 |
2 files changed, 13 insertions, 2 deletions
diff --git a/intern/cycles/bvh/bvh_build.cpp b/intern/cycles/bvh/bvh_build.cpp index eb4cca92b6b..5547229a910 100644 --- a/intern/cycles/bvh/bvh_build.cpp +++ b/intern/cycles/bvh/bvh_build.cpp @@ -28,6 +28,7 @@ #include "util_debug.h" #include "util_foreach.h" +#include "util_logging.h" #include "util_progress.h" #include "util_time.h" @@ -223,7 +224,8 @@ BVHNode* BVHBuild::run() spatial_right_bounds.resize(max(root.size(), (int)BVHParams::NUM_SPATIAL_BINS) - 1); /* init progress updates */ - progress_start_time = time_dt(); + double build_start_time; + build_start_time = progress_start_time = time_dt(); progress_count = 0; progress_total = references.size(); progress_original_total = progress_total; @@ -258,6 +260,10 @@ BVHNode* BVHBuild::run() } } + VLOG(1) << "BVH built in " + << time_dt() - build_start_time + << " seconds."; + return rootnode; } @@ -394,7 +400,7 @@ BVHNode* BVHBuild::build_node(const BVHRange& range, int level) progress_total += left.size() + right.size() - range.size(); size_t total = progress_total; - /* leaft node */ + /* left node */ BVHNode *leftnode = build_node(left, level + 1); /* right node (modify start for splits) */ diff --git a/intern/cycles/bvh/bvh_params.h b/intern/cycles/bvh/bvh_params.h index e073b69472e..43c2d9b2683 100644 --- a/intern/cycles/bvh/bvh_params.h +++ b/intern/cycles/bvh/bvh_params.h @@ -115,6 +115,11 @@ public: __forceinline int prim_object() const { return __float_as_int(rbounds.max.w); } __forceinline int prim_type() const { return type; } + BVHReference& operator=(const BVHReference &arg) { + memcpy(this, &arg, sizeof(BVHReference)); + return *this; + } + protected: BoundBox rbounds; uint type; |