[Bf-blender-cvs] [4051728] master: Cycles: Bump stack size for QBVH traversal code

Sergey Sharybin noreply at git.blender.org
Mon Dec 29 09:38:30 CET 2014


Commit: 40517283ca12a423140cbe20652418839877026a
Author: Sergey Sharybin
Date:   Mon Dec 29 13:37:18 2014 +0500
Branches: master
https://developer.blender.org/rB40517283ca12a423140cbe20652418839877026a

Cycles: Bump stack size for QBVH traversal code

Traversal now can push up to 2x of nodes to the stack, so need some tweaks
to the stack size.

===================================================================

M	intern/cycles/kernel/geom/geom.h
M	intern/cycles/kernel/geom/geom_qbvh_shadow.h
M	intern/cycles/kernel/geom/geom_qbvh_subsurface.h
M	intern/cycles/kernel/geom/geom_qbvh_traversal.h
M	intern/cycles/kernel/geom/geom_qbvh_volume.h

===================================================================

diff --git a/intern/cycles/kernel/geom/geom.h b/intern/cycles/kernel/geom/geom.h
index 38fd785..bf0d86e 100644
--- a/intern/cycles/kernel/geom/geom.h
+++ b/intern/cycles/kernel/geom/geom.h
@@ -20,6 +20,7 @@
 
 /* 64 object BVH + 64 mesh BVH + 64 object node splitting */
 #define BVH_STACK_SIZE 192
+#define BVH_QSTACK_SIZE 384
 #define BVH_NODE_SIZE 4
 #define BVH_QNODE_SIZE 7
 #define TRI_NODE_SIZE 3
diff --git a/intern/cycles/kernel/geom/geom_qbvh_shadow.h b/intern/cycles/kernel/geom/geom_qbvh_shadow.h
index 09d05f1..57c799c 100644
--- a/intern/cycles/kernel/geom/geom_qbvh_shadow.h
+++ b/intern/cycles/kernel/geom/geom_qbvh_shadow.h
@@ -39,7 +39,7 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(QBVH)(KernelGlobals *kg,
 	 */
 
 	/* Traversal stack in CUDA thread-local memory. */
-	QBVHStackItem traversalStack[BVH_STACK_SIZE];
+	QBVHStackItem traversalStack[BVH_QSTACK_SIZE];
 	traversalStack[0].addr = ENTRYPOINT_SENTINEL;
 
 	/* Traversal variables in registers. */
diff --git a/intern/cycles/kernel/geom/geom_qbvh_subsurface.h b/intern/cycles/kernel/geom/geom_qbvh_subsurface.h
index acb1bbd..89b5825 100644
--- a/intern/cycles/kernel/geom/geom_qbvh_subsurface.h
+++ b/intern/cycles/kernel/geom/geom_qbvh_subsurface.h
@@ -42,7 +42,7 @@ ccl_device uint BVH_FUNCTION_FULL_NAME(QBVH)(KernelGlobals *kg,
 	 */
 
 	/* Traversal stack in CUDA thread-local memory. */
-	QBVHStackItem traversalStack[BVH_STACK_SIZE];
+	QBVHStackItem traversalStack[BVH_QSTACK_SIZE];
 	traversalStack[0].addr = ENTRYPOINT_SENTINEL;
 
 	/* Traversal variables in registers. */
diff --git a/intern/cycles/kernel/geom/geom_qbvh_traversal.h b/intern/cycles/kernel/geom/geom_qbvh_traversal.h
index 9989f83..efa519f 100644
--- a/intern/cycles/kernel/geom/geom_qbvh_traversal.h
+++ b/intern/cycles/kernel/geom/geom_qbvh_traversal.h
@@ -47,7 +47,7 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(QBVH)(KernelGlobals *kg,
 	 */
 
 	/* Traversal stack in CUDA thread-local memory. */
-	QBVHStackItem traversalStack[BVH_STACK_SIZE];
+	QBVHStackItem traversalStack[BVH_QSTACK_SIZE];
 	traversalStack[0].addr = ENTRYPOINT_SENTINEL;
 	traversalStack[0].dist = -FLT_MAX;
 
diff --git a/intern/cycles/kernel/geom/geom_qbvh_volume.h b/intern/cycles/kernel/geom/geom_qbvh_volume.h
index 21466cc..00eaa17 100644
--- a/intern/cycles/kernel/geom/geom_qbvh_volume.h
+++ b/intern/cycles/kernel/geom/geom_qbvh_volume.h
@@ -38,7 +38,7 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(QBVH)(KernelGlobals *kg,
 	 */
 
 	/* Traversal stack in CUDA thread-local memory. */
-	QBVHStackItem traversalStack[BVH_STACK_SIZE];
+	QBVHStackItem traversalStack[BVH_QSTACK_SIZE];
 	traversalStack[0].addr = ENTRYPOINT_SENTINEL;
 
 	/* Traversal variables in registers. */




More information about the Bf-blender-cvs mailing list