Commit: 12ad52c887b889c6a1abfd3c28c6f16486eed681
Author: MATILLAT Quentin
Date: Fri Jul 19 11:32:02 2019 +0200
Branches: soc-2019-embree-gpu
https://developer.blender.org/rB12ad52c887b889c6a1abfd3c28c6f16486eed681
Pre-reserve memory to reduce reallocation
===================================================================
M intern/cycles/bvh/bvh_embree_converter.cpp
===================================================================
diff --git a/intern/cycles/bvh/bvh_embree_converter.cpp
b/intern/cycles/bvh/bvh_embree_converter.cpp
index 6b92e2bc008..162485a621a 100644
--- a/intern/cycles/bvh/bvh_embree_converter.cpp
+++ b/intern/cycles/bvh/bvh_embree_converter.cpp
@@ -671,11 +671,25 @@ void pack_inner(const BVHStackEntry &e, const
BVHStackEntry &c0, const BVHStackE
}
void BVHEmbreeConverter::fillPack(PackedBVH &pack, vector<Object *> objects) {
+ int num_prim = 0;
+
+ for (size_t i = 0; i < this->s->size(); i++) {
+ const auto tree = this->s->get(i);
+ if(tree != nullptr)
+ num_prim += 4 * tree->size();
+ }
+
pack.prim_visibility.clear();
+ pack.prim_visibility.reserve(num_prim);
pack.prim_object.clear();
+ pack.prim_object.reserve(num_prim);
pack.prim_type.clear();
+ pack.prim_type.reserve(num_prim);
pack.prim_index.clear();
+ pack.prim_index.reserve(num_prim);
pack.prim_tri_index.clear();
+ pack.prim_tri_index.reserve(num_prim);
+
pack.prim_tri_verts.clear();
this->pack = &pack;
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs