From fd2de82207e9519f1d1a5d470b45ae573a7bd6bd Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Wed, 15 Oct 2014 16:25:04 +0200 Subject: Fix T42160: CUDA error: ILLEGAL_ADDRESS in cuCtxSynchronize() This is so-called GPU limitation boundary hit, told compiler to NOT include volume bound function, otherwise some real weird things used to happen. We actually might want to do the same for CPU, inlining everything is not the way to get fastest code. --- intern/cycles/kernel/kernel_path_volume.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'intern') diff --git a/intern/cycles/kernel/kernel_path_volume.h b/intern/cycles/kernel/kernel_path_volume.h index da2d5e6eca8..d8143832294 100644 --- a/intern/cycles/kernel/kernel_path_volume.h +++ b/intern/cycles/kernel/kernel_path_volume.h @@ -56,7 +56,12 @@ ccl_device void kernel_path_volume_connect_light(KernelGlobals *kg, RNG *rng, #endif } -ccl_device bool kernel_path_volume_bounce(KernelGlobals *kg, RNG *rng, +#ifdef __KERNEL_GPU__ +ccl_device_noinline +#else +ccl_device +#endif +bool kernel_path_volume_bounce(KernelGlobals *kg, RNG *rng, ShaderData *sd, float3 *throughput, PathState *state, PathRadiance *L, Ray *ray) { /* sample phase function */ -- cgit v1.2.3