Commit: 11310b554ab2f08c9f0d086f5f07694ba7ca9f19
Author: Brecht Van Lommel
Date:   Sat Apr 26 14:25:20 2014 +0200
https://developer.blender.org/rB11310b554ab2f08c9f0d086f5f07694ba7ca9f19

Cycles: avoid some CUDA performance on scenes without deformation motion blur.

===================================================================

M       intern/cycles/kernel/geom/geom_bvh_shadow.h
M       intern/cycles/kernel/geom/geom_bvh_subsurface.h
M       intern/cycles/kernel/geom/geom_bvh_traversal.h
M       intern/cycles/render/object.cpp

===================================================================

diff --git a/intern/cycles/kernel/geom/geom_bvh_shadow.h 
b/intern/cycles/kernel/geom/geom_bvh_shadow.h
index 6e981fb..be9def0 100644
--- a/intern/cycles/kernel/geom/geom_bvh_shadow.h
+++ b/intern/cycles/kernel/geom/geom_bvh_shadow.h
@@ -221,10 +221,12 @@ ccl_device bool BVH_FUNCTION_NAME
                                                                hit = 
triangle_intersect(kg, isect_array, P, dir, PATH_RAY_SHADOW, object, primAddr);
                                                                break;
                                                        }
+#if FEATURE(BVH_MOTION)
                                                        case 
PRIMITIVE_MOTION_TRIANGLE: {
                                                                hit = 
motion_triangle_intersect(kg, isect_array, P, dir, ray->time, PATH_RAY_SHADOW, 
object, primAddr);
                                                                break;
                                                        }
+#endif
 #if FEATURE(BVH_HAIR)
                                                        case PRIMITIVE_CURVE:
                                                        case 
PRIMITIVE_MOTION_CURVE: {
diff --git a/intern/cycles/kernel/geom/geom_bvh_subsurface.h 
b/intern/cycles/kernel/geom/geom_bvh_subsurface.h
index 30fc3d6..a19f05d 100644
--- a/intern/cycles/kernel/geom/geom_bvh_subsurface.h
+++ b/intern/cycles/kernel/geom/geom_bvh_subsurface.h
@@ -218,10 +218,12 @@ ccl_device uint BVH_FUNCTION_NAME(KernelGlobals *kg, 
const Ray *ray, Intersectio
                                                                
triangle_intersect_subsurface(kg, isect_array, P, dir, object, primAddr, 
isect_t, &num_hits, lcg_state, max_hits);
                                                                break;
                                                        }
+#if FEATURE(BVH_MOTION)
                                                        case 
PRIMITIVE_MOTION_TRIANGLE: {
                                                                
motion_triangle_intersect_subsurface(kg, isect_array, P, dir, ray->time, 
object, primAddr, isect_t, &num_hits, lcg_state, max_hits);
                                                                break;
                                                        }
+#endif
                                                        default: {
                                                                break;
                                                        }
diff --git a/intern/cycles/kernel/geom/geom_bvh_traversal.h 
b/intern/cycles/kernel/geom/geom_bvh_traversal.h
index 6cb622d..e6da939 100644
--- a/intern/cycles/kernel/geom/geom_bvh_traversal.h
+++ b/intern/cycles/kernel/geom/geom_bvh_traversal.h
@@ -256,10 +256,12 @@ ccl_device bool BVH_FUNCTION_NAME
                                                                hit = 
triangle_intersect(kg, isect, P, dir, visibility, object, primAddr);
                                                                break;
                                                        }
+#if FEATURE(BVH_MOTION)
                                                        case 
PRIMITIVE_MOTION_TRIANGLE: {
                                                                hit = 
motion_triangle_intersect(kg, isect, P, dir, ray->time, visibility, object, 
primAddr);
                                                                break;
                                                        }
+#endif
 #if FEATURE(BVH_HAIR)
                                                        case PRIMITIVE_CURVE:
                                                        case 
PRIMITIVE_MOTION_CURVE: {
diff --git a/intern/cycles/render/object.cpp b/intern/cycles/render/object.cpp
index dab00ea..b58caab 100644
--- a/intern/cycles/render/object.cpp
+++ b/intern/cycles/render/object.cpp
@@ -321,6 +321,9 @@ void ObjectManager::device_update_transforms(Device 
*device, DeviceScene *dscene
                }
 #endif
 
+               if(mesh->use_motion_blur)
+                       have_motion = true;
+
                /* dupli object coords and motion info */
                int totalsteps = mesh->motion_steps;
                int numsteps = (totalsteps - 1)/2;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to