Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/intern
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2014-12-25 12:15:37 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2014-12-25 12:15:37 +0300
commitfe06ec82a91a508b953e14277a97323a6eea901e (patch)
treee789d8c66f061c1db4b4c78db1fb9883fb1ee8fc /intern
parent010f3ee43871974abb99cd6f9e0204b29003fc4e (diff)
Cycles: Workaround CUDA 6.5.16 error after watertight commit
This issue doesn't happen with 6.5.12 and there's slight piece of hope it'll be fixed in next toolkit releases.. For now we're forcing CUDA to not inline ray precalculation. This could lead to some speed regression, but wouldn't expect it to be huge -- this code does not run that often comparing to actual triangle intersection.
Diffstat (limited to 'intern')
-rw-r--r--intern/cycles/kernel/geom/geom_triangle_intersect.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/intern/cycles/kernel/geom/geom_triangle_intersect.h b/intern/cycles/kernel/geom/geom_triangle_intersect.h
index 049e8f3680e..5090d553c41 100644
--- a/intern/cycles/kernel/geom/geom_triangle_intersect.h
+++ b/intern/cycles/kernel/geom/geom_triangle_intersect.h
@@ -49,8 +49,14 @@ typedef struct IsectPrecalc {
float Sx, Sy, Sz;
} IsectPrecalc;
-ccl_device_inline void triangle_intersect_precalc(float3 dir,
- IsectPrecalc *isect_precalc)
+/* Workaround for CUDA toolkit 6.5.16. */
+#ifdef __KERNEL_CPU__
+ccl_device_inline
+#else
+ccl_device_noinline
+#endif
+void triangle_intersect_precalc(float3 dir,
+ IsectPrecalc *isect_precalc)
{
/* Calculate dimension where the ray direction is maximal. */
int kz = util_max_axis(make_float3(fabsf(dir.x),