Blender Git Loki

Git Commits -> Revision 612604f

January 20, 2017, 10:25 (GMT)
Cycles: BVH-related SSE optimization

Several ideas here:

- Optimize calculation of near_{x,y,z} in a way that does not require
3 if() statements per update, which avoids negative effect of wrong
branch prediction.

- Optimization of direction clamping for BVH.

- Optimization of point/direction transform.

Brings ~1.5% speedup again depending on a scene (unfortunately, this
speedup can't be sum across all previous commits because speedup of
each of the changes varies from scene to scene, but it still seems to
be nice solid speedup of few percent on Linux and bigger speedup was
reported on Windows).

Once again ,thanks Maxym for inspiration!

Still TODO: We have multiple places where we need to calculate near
x,y,z indices in BVH, for now it's only done for main BVH traversal.
Will try to move this calculation to an utility function and see if
that can be easily re-used across all the BVH flavors.

Commit Details:

Full Hash: 612604f23ae9242c1e3edf3cf31e8af3e6ab9fa6
Parent Commit: 4db44ce
Lines Changed: +99, -1

3 Modified Paths:

/intern/cycles/kernel/bvh/qbvh_traversal.h (+46, -0) (Diff)
/intern/cycles/kernel/geom/geom_object.h (+18, -1) (Diff)
/intern/cycles/util/util_transform.h (+35, -0) (Diff)
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021