Cycles: Avoid over-allocation in packing BVH instances

This solves quite an over-allocation in BVH instances packing code,
unfortunately, it's not a magic bullet to solve memory bump caused
by the recent QBVH changes.

For that we'll likely need to decouple storage for leaf and inner
nodes. However, it's not really clear for now if it's something
important since that'd still be just a fraction of memory comparing
to all the hi-res textures.
This commit is contained in:
Sergey Sharybin 2014-12-17 23:31:12 +05:00
parent 8cfac731a5
commit f4a959f734

@ -418,7 +418,7 @@ void BVH::pack_instances(size_t nodes_size)
if(mesh_map.find(mesh) == mesh_map.end()) { if(mesh_map.find(mesh) == mesh_map.end()) {
prim_index_size += bvh->pack.prim_index.size(); prim_index_size += bvh->pack.prim_index.size();
tri_woop_size += bvh->pack.tri_woop.size(); tri_woop_size += bvh->pack.tri_woop.size();
nodes_size += bvh->pack.nodes.size()*nsize; nodes_size += bvh->pack.nodes.size();
mesh_map[mesh] = 1; mesh_map[mesh] = 1;
} }