forked from bartvdbraak/blender
Cycles / BVH: Remove unused temp copy of prim_object.
This will save some memory during BVH Build.
This commit is contained in:
parent
5eecfbd980
commit
bd92168643
@ -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);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user