diff options
Diffstat (limited to 'intern/cycles/kernel/geom/geom_qbvh_volume.h')
-rw-r--r-- | intern/cycles/kernel/geom/geom_qbvh_volume.h | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/intern/cycles/kernel/geom/geom_qbvh_volume.h b/intern/cycles/kernel/geom/geom_qbvh_volume.h index 2aae90380c1..d66c6e2b1e5 100644 --- a/intern/cycles/kernel/geom/geom_qbvh_volume.h +++ b/intern/cycles/kernel/geom/geom_qbvh_volume.h @@ -94,7 +94,7 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(QBVH)(KernelGlobals *kg, /* Traverse internal nodes. */ while(nodeAddr >= 0 && nodeAddr != ENTRYPOINT_SENTINEL) { #ifdef __VISIBILITY_FLAG__ - float4 inodes = kernel_tex_fetch(__bvh_nodes, nodeAddr*BVH_QNODE_SIZE+0); + float4 inodes = kernel_tex_fetch(__bvh_nodes, nodeAddr+0); if((__float_as_uint(inodes.x) & visibility) == 0) { /* Pop. */ nodeAddr = traversalStack[stackPtr].addr; @@ -119,8 +119,7 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(QBVH)(KernelGlobals *kg, &dist); if(traverseChild != 0) { - float4 cnodes = kernel_tex_fetch(__bvh_nodes, - nodeAddr*BVH_QNODE_SIZE+7); + float4 cnodes = kernel_tex_fetch(__bvh_nodes, nodeAddr+7); /* One child is hit, continue with that child. */ int r = __bscf(traverseChild); @@ -213,7 +212,7 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(QBVH)(KernelGlobals *kg, /* If node is leaf, fetch triangle list. */ if(nodeAddr < 0) { - float4 leaf = kernel_tex_fetch(__bvh_leaf_nodes, (-nodeAddr-1)*BVH_QNODE_LEAF_SIZE); + float4 leaf = kernel_tex_fetch(__bvh_leaf_nodes, (-nodeAddr-1)); int primAddr = __float_as_int(leaf.x); #if BVH_FEATURE(BVH_INSTANCING) |