diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-02-15 21:11:02 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-02-15 21:11:02 +0300 |
commit | c93069083eca9e4829c05b2dc8b7c35b4e70f590 (patch) | |
tree | 928e2b86a097d39e1bfed82d18d9e7b504361543 /intern/cycles/kernel/geom | |
parent | 1336e97b1242bc99b91cb74b3a810724b544c596 (diff) |
Cycles: Tweaks for 32bit CUDA binaries
Tweak some inline policies. Not totally crazy yet, and in fact we now
have one less ifdef statement now.
Diffstat (limited to 'intern/cycles/kernel/geom')
-rw-r--r-- | intern/cycles/kernel/geom/geom_motion_triangle.h | 7 | ||||
-rw-r--r-- | intern/cycles/kernel/geom/geom_triangle_intersect.h | 9 |
2 files changed, 10 insertions, 6 deletions
diff --git a/intern/cycles/kernel/geom/geom_motion_triangle.h b/intern/cycles/kernel/geom/geom_motion_triangle.h index a7b3f5cad28..7f3562b4687 100644 --- a/intern/cycles/kernel/geom/geom_motion_triangle.h +++ b/intern/cycles/kernel/geom/geom_motion_triangle.h @@ -178,7 +178,12 @@ ccl_device_inline float3 motion_triangle_refine(KernelGlobals *kg, ShaderData *s /* Same as above, except that isect->t is assumed to be in object space for instancing */ #ifdef __SUBSURFACE__ -ccl_device_inline float3 motion_triangle_refine_subsurface(KernelGlobals *kg, ShaderData *sd, const Intersection *isect, const Ray *ray, float3 verts[3]) +# if defined(__KERNEL_CUDA__) && (defined(i386) || defined(_M_IX86)) +ccl_device_noinline +# else +ccl_device_inline +# endif +float3 motion_triangle_refine_subsurface(KernelGlobals *kg, ShaderData *sd, const Intersection *isect, const Ray *ray, float3 verts[3]) { float3 P = ray->P; float3 D = ray->D; diff --git a/intern/cycles/kernel/geom/geom_triangle_intersect.h b/intern/cycles/kernel/geom/geom_triangle_intersect.h index 35f2d905da0..df02d60f382 100644 --- a/intern/cycles/kernel/geom/geom_triangle_intersect.h +++ b/intern/cycles/kernel/geom/geom_triangle_intersect.h @@ -49,13 +49,12 @@ typedef struct IsectPrecalc { float Sx, Sy, Sz; } IsectPrecalc; -#if defined(__KERNEL_CUDA__) -ccl_device_inline -#elif defined(__KERNEL_OPENCL_APPLE__) +#if (defined(__KERNEL_OPENCL_APPLE__)) || \ + (defined(__KERNEL_CUDA__) && (defined(i386) || defined(_M_IX86))) ccl_device_noinline -#else /* defined(__KERNEL_OPENCL_APPLE__) */ +#else ccl_device_inline -#endif /* defined(__KERNEL_OPENCL_APPLE__) */ +#endif void triangle_intersect_precalc(float3 dir, IsectPrecalc *isect_precalc) { |