Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2011-08-10 18:26:51 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2011-08-10 18:26:51 +0400
commitb98ccf699878d70b7cbfdd7863440c34326a5569 (patch)
tree7dde3d3deddedb5d54f2a45ffbb517f2999a83dc /intern/cycles/kernel/svm/svm_math.h
parentabc601d10ee51aa8de83004094e2e6c73e96e2eb (diff)
Cycles: amd opencl compatibility fixes.
Diffstat (limited to 'intern/cycles/kernel/svm/svm_math.h')
-rw-r--r--intern/cycles/kernel/svm/svm_math.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/intern/cycles/kernel/svm/svm_math.h b/intern/cycles/kernel/svm/svm_math.h
index 401bd22b45a..bc2f774097e 100644
--- a/intern/cycles/kernel/svm/svm_math.h
+++ b/intern/cycles/kernel/svm/svm_math.h
@@ -21,7 +21,7 @@ CCL_NAMESPACE_BEGIN
__device float safe_asinf(float a)
{
if(a <= -1.0f)
- return -M_PI_2;
+ return -M_PI_2_F;
else if(a >= 1.0f)
return M_PI_2_F;
@@ -114,15 +114,20 @@ __device float svm_math(NodeMath type, float Fac1, float Fac2)
return Fac;
}
+__device float average_fac(float3 v)
+{
+ return (fabsf(v.x) + fabsf(v.y) + fabsf(v.z))/3.0f;
+}
+
__device void svm_vector_math(float *Fac, float3 *Vector, NodeVectorMath type, float3 Vector1, float3 Vector2)
{
if(type == NODE_VECTOR_MATH_ADD) {
*Vector = Vector1 + Vector2;
- *Fac = (fabsf(Vector->x) + fabsf(Vector->y) + fabsf(Vector->z))/3.0f;
+ *Fac = average_fac(*Vector);
}
else if(type == NODE_VECTOR_MATH_SUBTRACT) {
*Vector = Vector1 - Vector2;
- *Fac = (fabsf(Vector->x) + fabsf(Vector->y) + fabsf(Vector->z))/3.0f;
+ *Fac = average_fac(*Vector);
}
else if(type == NODE_VECTOR_MATH_AVERAGE) {
*Fac = len(Vector1 + Vector2);