Fix T46906: Cycles syntax error while compiling OpenCL kernels

The safe normalization was using a float as a condition, now the intended non-zero test is explicit.
This commit is contained in:
Lukas Stockner 2015-12-01 13:53:29 +01:00
parent b2e36dcd7d
commit 8512e284a0

@ -351,7 +351,7 @@ ccl_device_inline float2 normalize_len(const float2 a, float *t)
ccl_device_inline float2 safe_normalize(const float2 a)
{
float t = len(a);
return (t)? a/t: a;
return (t != 0.0f)? a/t: a;
}
ccl_device_inline bool operator==(const float2 a, const float2 b)
@ -553,7 +553,7 @@ ccl_device_inline float3 normalize_len(const float3 a, float *t)
ccl_device_inline float3 safe_normalize(const float3 a)
{
float t = len(a);
return (t)? a/t: a;
return (t != 0.0f)? a/t: a;
}
#ifndef __KERNEL_OPENCL__
@ -866,7 +866,7 @@ ccl_device_inline float4 normalize(const float4 a)
ccl_device_inline float4 safe_normalize(const float4 a)
{
float t = len(a);
return (t)? a/t: a;
return (t != 0.0f)? a/t: a;
}
ccl_device_inline float4 min(float4 a, float4 b)