From 2f4aef9f3bc1880496d5a8f1a23992f8a03d0af5 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Mon, 19 Jan 2015 13:39:35 +0500 Subject: [PATCH] Cycles: Avoid crash in statistics when canceling BVH build Also add missing render_time initialization in progress. --- intern/cycles/bvh/bvh_build.cpp | 17 +++++++++-------- intern/cycles/util/util_progress.h | 1 + 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/intern/cycles/bvh/bvh_build.cpp b/intern/cycles/bvh/bvh_build.cpp index 32946c8b47c..e248040301a 100644 --- a/intern/cycles/bvh/bvh_build.cpp +++ b/intern/cycles/bvh/bvh_build.cpp @@ -268,21 +268,22 @@ BVHNode* BVHBuild::run() if(progress.get_cancel()) { rootnode->deleteSubtree(); rootnode = NULL; + VLOG(1) << "BVH build cancelled."; } else if(!params.use_spatial_split) { /*rotate(rootnode, 4, 5);*/ rootnode->update_visibility(); + VLOG(1) << "BVH build statistics:\n" + << " Build time: " << time_dt() - build_start_time << "\n" + << " Total number of nodes: " + << rootnode->getSubtreeSize(BVH_STAT_NODE_COUNT) << "\n" + << " Number of inner nodes: " + << rootnode->getSubtreeSize(BVH_STAT_INNER_COUNT) << "\n" + << " Number of leaf nodes: " + << rootnode->getSubtreeSize(BVH_STAT_LEAF_COUNT) << "\n"; } } - VLOG(1) << "BVH build statistics:\n" - << " Build time: " << time_dt() - build_start_time << "\n" - << " Total number of nodes: " - << rootnode->getSubtreeSize(BVH_STAT_NODE_COUNT) << "\n" - << " Number of inner nodes: " - << rootnode->getSubtreeSize(BVH_STAT_INNER_COUNT) << "\n" - << " Number of leaf nodes: " - << rootnode->getSubtreeSize(BVH_STAT_LEAF_COUNT) << "\n"; return rootnode; } diff --git a/intern/cycles/util/util_progress.h b/intern/cycles/util/util_progress.h index 315aa753bdd..0ff48630a81 100644 --- a/intern/cycles/util/util_progress.h +++ b/intern/cycles/util/util_progress.h @@ -38,6 +38,7 @@ public: sample = 0; start_time = time_dt(); total_time = 0.0f; + render_time = 0.0f; tile_time = 0.0f; status = "Initializing"; substatus = "";