Blender Git Loki
Git Commits -> Revision 60f164b
Revision 60f164b by Sergey Sharybin (cycles_bvh) June 14, 2016, 12:29 (GMT) |
Cycles: Switch node address to absolute values in BVH tree This seems to be straightforward way to support heterogeneous nodes in the same tree. There is some penalty related on 4gig limit of the address space now, but here are the things: - Traversal code was already using ints to store final offset, so there can't be regressions really. - We know that node size is 16 bytes aligned, so we use SHR/SHL magic to increase address space of nodes still. This is a required commit to make it possible to encode both aligned and unaligned nodes in the same array. Also, in the future we can use this to get rid of __leaf_nodes array (which is a bit tricky to do since trickery in pack_instances(). |
Commit Details:
Full Hash: 60f164b6aa325c31572940d56dc2b0b04f62fa0f
Parent Commit: 66f8aba
Lines Changed: +80, -97
15 Modified Paths:
/intern/cycles/bvh/bvh.cpp (+12, -16) (Diff)
/intern/cycles/kernel/geom/geom.h (+0, -7) (Diff)
/intern/cycles/kernel/geom/geom_bvh_curve.h (+18, -18) (Diff)
/intern/cycles/kernel/geom/geom_bvh_shadow.h (+6, -6) (Diff)
/intern/cycles/kernel/geom/geom_bvh_subsurface.h (+6, -6) (Diff)
/intern/cycles/kernel/geom/geom_bvh_traversal.h (+6, -6) (Diff)
/intern/cycles/kernel/geom/geom_bvh_volume.h (+6, -6) (Diff)
/intern/cycles/kernel/geom/geom_bvh_volume_all.h (+6, -6) (Diff)
/intern/cycles/kernel/geom/geom_qbvh.h (+2, -2) (Diff)
/intern/cycles/kernel/geom/geom_qbvh_curve.h (+4, -4) (Diff)
/intern/cycles/kernel/geom/geom_qbvh_shadow.h (+3, -4) (Diff)
/intern/cycles/kernel/geom/geom_qbvh_subsurface.h (+2, -3) (Diff)
/intern/cycles/kernel/geom/geom_qbvh_traversal.h (+3, -5) (Diff)
/intern/cycles/kernel/geom/geom_qbvh_volume.h (+3, -4) (Diff)
/intern/cycles/kernel/geom/geom_qbvh_volume_all.h (+3, -4) (Diff)
/intern/cycles/kernel/geom/geom.h (+0, -7) (Diff)
/intern/cycles/kernel/geom/geom_bvh_curve.h (+18, -18) (Diff)
/intern/cycles/kernel/geom/geom_bvh_shadow.h (+6, -6) (Diff)
/intern/cycles/kernel/geom/geom_bvh_subsurface.h (+6, -6) (Diff)
/intern/cycles/kernel/geom/geom_bvh_traversal.h (+6, -6) (Diff)
/intern/cycles/kernel/geom/geom_bvh_volume.h (+6, -6) (Diff)
/intern/cycles/kernel/geom/geom_bvh_volume_all.h (+6, -6) (Diff)
/intern/cycles/kernel/geom/geom_qbvh.h (+2, -2) (Diff)
/intern/cycles/kernel/geom/geom_qbvh_curve.h (+4, -4) (Diff)
/intern/cycles/kernel/geom/geom_qbvh_shadow.h (+3, -4) (Diff)
/intern/cycles/kernel/geom/geom_qbvh_subsurface.h (+2, -3) (Diff)
/intern/cycles/kernel/geom/geom_qbvh_traversal.h (+3, -5) (Diff)
/intern/cycles/kernel/geom/geom_qbvh_volume.h (+3, -4) (Diff)
/intern/cycles/kernel/geom/geom_qbvh_volume_all.h (+3, -4) (Diff)