[Bf-blender-cvs] [11310b5] master: Cycles: avoid some CUDA performance on scenes without deformation motion blur.
Brecht Van Lommel
noreply at git.blender.org
Sat Apr 26 14:30:12 CEST 2014
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;
More information about the Bf-blender-cvs
mailing list