diff --git a/intern/cycles/kernel/geom/geom.h b/intern/cycles/kernel/geom/geom.h index 38fd7858a99..bf0d86e6206 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 09d05f17e89..57c799ccd4f 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 acb1bbd01c0..89b582557fe 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 9989f83c031..efa519fbe3e 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 21466cca92a..00eaa1761a1 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. */