Cycles / BVH: Remove unused temp copy of prim_object.

This will save some memory during BVH Build.
This commit is contained in:
Thomas Dinges 2015-02-18 01:12:53 +01:00
parent 5eecfbd980
commit bd92168643
2 changed files with 6 additions and 7 deletions

@ -226,8 +226,7 @@ void BVH::build(Progress& progress)
/* pack nodes */ /* pack nodes */
progress.set_substatus("Packing BVH nodes"); progress.set_substatus("Packing BVH nodes");
array<int> tmp_prim_object = pack.prim_object; pack_nodes(root);
pack_nodes(tmp_prim_object, root);
/* free build nodes */ /* free build nodes */
root->deleteSubtree(); root->deleteSubtree();
@ -539,7 +538,7 @@ void RegularBVH::pack_node(int idx, const BoundBox& b0, const BoundBox& b1, int
memcpy(&pack.nodes[idx * BVH_NODE_SIZE], data, sizeof(int4)*BVH_NODE_SIZE); memcpy(&pack.nodes[idx * BVH_NODE_SIZE], data, sizeof(int4)*BVH_NODE_SIZE);
} }
void RegularBVH::pack_nodes(const array<int>& prims, const BVHNode *root) void RegularBVH::pack_nodes(const BVHNode *root)
{ {
size_t node_size = root->getSubtreeSize(BVH_STAT_NODE_COUNT); size_t node_size = root->getSubtreeSize(BVH_STAT_NODE_COUNT);
@ -755,7 +754,7 @@ void QBVH::pack_inner(const BVHStackEntry& e, const BVHStackEntry *en, int num)
/* Quad SIMD Nodes */ /* Quad SIMD Nodes */
void QBVH::pack_nodes(const array<int>& prims, const BVHNode *root) void QBVH::pack_nodes(const BVHNode *root)
{ {
size_t node_size = root->getSubtreeSize(BVH_STAT_QNODE_COUNT); size_t node_size = root->getSubtreeSize(BVH_STAT_QNODE_COUNT);

@ -111,7 +111,7 @@ protected:
void pack_instances(size_t nodes_size); void pack_instances(size_t nodes_size);
/* for subclasses to implement */ /* for subclasses to implement */
virtual void pack_nodes(const array<int>& prims, const BVHNode *root) = 0; virtual void pack_nodes(const BVHNode *root) = 0;
virtual void refit_nodes() = 0; virtual void refit_nodes() = 0;
}; };
@ -126,7 +126,7 @@ protected:
RegularBVH(const BVHParams& params, const vector<Object*>& objects); RegularBVH(const BVHParams& params, const vector<Object*>& objects);
/* pack */ /* pack */
void pack_nodes(const array<int>& prims, const BVHNode *root); void pack_nodes(const BVHNode *root);
void pack_leaf(const BVHStackEntry& e, const LeafNode *leaf); void pack_leaf(const BVHStackEntry& e, const LeafNode *leaf);
void pack_inner(const BVHStackEntry& e, const BVHStackEntry& e0, const BVHStackEntry& e1); void pack_inner(const BVHStackEntry& e, const BVHStackEntry& e0, const BVHStackEntry& e1);
void pack_node(int idx, const BoundBox& b0, const BoundBox& b1, int c0, int c1, uint visibility0, uint visibility1); void pack_node(int idx, const BoundBox& b0, const BoundBox& b1, int c0, int c1, uint visibility0, uint visibility1);
@ -147,7 +147,7 @@ protected:
QBVH(const BVHParams& params, const vector<Object*>& objects); QBVH(const BVHParams& params, const vector<Object*>& objects);
/* pack */ /* pack */
void pack_nodes(const array<int>& prims, const BVHNode *root); void pack_nodes(const BVHNode *root);
void pack_leaf(const BVHStackEntry& e, const LeafNode *leaf); void pack_leaf(const BVHStackEntry& e, const LeafNode *leaf);
void pack_inner(const BVHStackEntry& e, const BVHStackEntry *en, int num); void pack_inner(const BVHStackEntry& e, const BVHStackEntry *en, int num);