diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-08-30 17:47:45 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-08-30 17:48:16 +0300 |
commit | 4ac5859f05892cf1456385fe7de3f13debdca858 (patch) | |
tree | c3f7618b0f926ffde8bf506af86874685e948a51 /intern/cycles | |
parent | 00d12ec04f83b20f9952bb5780d8fed9e870aac4 (diff) |
Cycles: Avoid copying objects in some places of BVH build
Gives barely measurable speedup of Spatial Split BVH build.
Diffstat (limited to 'intern/cycles')
-rw-r--r-- | intern/cycles/bvh/bvh_binning.cpp | 6 | ||||
-rw-r--r-- | intern/cycles/bvh/bvh_split.cpp | 4 |
2 files changed, 5 insertions, 5 deletions
diff --git a/intern/cycles/bvh/bvh_binning.cpp b/intern/cycles/bvh/bvh_binning.cpp index db96490a36f..8745e39c21e 100644 --- a/intern/cycles/bvh/bvh_binning.cpp +++ b/intern/cycles/bvh/bvh_binning.cpp @@ -76,8 +76,8 @@ BVHObjectBinning::BVHObjectBinning(const BVHRange& job, BVHReference *prims) prefetch_L2(&prims[start() + i + 8]); /* map even and odd primitive to bin */ - BVHReference prim0 = prims[start() + i + 0]; - BVHReference prim1 = prims[start() + i + 1]; + const BVHReference& prim0 = prims[start() + i + 0]; + const BVHReference& prim1 = prims[start() + i + 1]; int4 bin0 = get_bin(prim0.bounds()); int4 bin1 = get_bin(prim1.bounds()); @@ -96,7 +96,7 @@ BVHObjectBinning::BVHObjectBinning(const BVHRange& job, BVHReference *prims) /* for uneven number of primitives */ if(i < ssize_t(size())) { /* map primitive to bin */ - BVHReference prim0 = prims[start() + i]; + const BVHReference& prim0 = prims[start() + i]; int4 bin0 = get_bin(prim0.bounds()); /* increase bounds of bins */ diff --git a/intern/cycles/bvh/bvh_split.cpp b/intern/cycles/bvh/bvh_split.cpp index a697c44890f..534c1aa73b5 100644 --- a/intern/cycles/bvh/bvh_split.cpp +++ b/intern/cycles/bvh/bvh_split.cpp @@ -300,8 +300,8 @@ void BVHSpatialSplit::split_curve_primitive(const Mesh *mesh, /* curve split: NOTE - Currently ignores curve width and needs to be fixed.*/ const int k0 = mesh->curves[prim_index].first_key + segment_index; const int k1 = k0 + 1; - const float4 key0 = mesh->curve_keys[k0]; - const float4 key1 = mesh->curve_keys[k1]; + const float4& key0 = mesh->curve_keys[k0]; + const float4& key1 = mesh->curve_keys[k1]; float3 v0 = float4_to_float3(key0); float3 v1 = float4_to_float3(key1); |