From 36f44c6e02a5e35bb4572f232b867bb055dbb2d8 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Mon, 14 Jan 2013 17:30:20 +0000 Subject: [PATCH] Change some big functions from __device_inline to __device, which makes CPU kernel compilation much faster when using MSVC. Sideeffect of this change is that CPU rendering is few percent faster now. CUDA rendering is the same speed. --- intern/cycles/kernel/kernel_bvh.h | 4 ++-- intern/cycles/kernel/kernel_shader.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/intern/cycles/kernel/kernel_bvh.h b/intern/cycles/kernel/kernel_bvh.h index 2cb29207b05..6d770041b26 100644 --- a/intern/cycles/kernel/kernel_bvh.h +++ b/intern/cycles/kernel/kernel_bvh.h @@ -344,7 +344,7 @@ __device_inline void bvh_curve_intersect(KernelGlobals *kg, Intersection *isect, } #endif -__device_inline bool bvh_intersect(KernelGlobals *kg, const Ray *ray, const uint visibility, Intersection *isect) +__device bool bvh_intersect(KernelGlobals *kg, const Ray *ray, const uint visibility, Intersection *isect) { /* traversal stack in CUDA thread-local memory */ int traversalStack[BVH_STACK_SIZE]; @@ -470,7 +470,7 @@ __device_inline bool bvh_intersect(KernelGlobals *kg, const Ray *ray, const uint } #ifdef __OBJECT_MOTION__ -__device_inline bool bvh_intersect_motion(KernelGlobals *kg, const Ray *ray, const uint visibility, Intersection *isect) +__device bool bvh_intersect_motion(KernelGlobals *kg, const Ray *ray, const uint visibility, Intersection *isect) { /* traversal stack in CUDA thread-local memory */ int traversalStack[BVH_STACK_SIZE]; diff --git a/intern/cycles/kernel/kernel_shader.h b/intern/cycles/kernel/kernel_shader.h index 0a5a2ab54b0..b7d87427bd3 100644 --- a/intern/cycles/kernel/kernel_shader.h +++ b/intern/cycles/kernel/kernel_shader.h @@ -53,7 +53,7 @@ __device_noinline void shader_setup_object_transforms(KernelGlobals *kg, ShaderD } #endif -__device_inline void shader_setup_from_ray(KernelGlobals *kg, ShaderData *sd, +__device void shader_setup_from_ray(KernelGlobals *kg, ShaderData *sd, const Intersection *isect, const Ray *ray) { #ifdef __INSTANCING__