forked from bartvdbraak/blender
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:
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)
|
ccl_device_inline float2 safe_normalize(const float2 a)
|
||||||
{
|
{
|
||||||
float t = len(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)
|
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)
|
ccl_device_inline float3 safe_normalize(const float3 a)
|
||||||
{
|
{
|
||||||
float t = len(a);
|
float t = len(a);
|
||||||
return (t)? a/t: a;
|
return (t != 0.0f)? a/t: a;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef __KERNEL_OPENCL__
|
#ifndef __KERNEL_OPENCL__
|
||||||
@ -866,7 +866,7 @@ ccl_device_inline float4 normalize(const float4 a)
|
|||||||
ccl_device_inline float4 safe_normalize(const float4 a)
|
ccl_device_inline float4 safe_normalize(const float4 a)
|
||||||
{
|
{
|
||||||
float t = len(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)
|
ccl_device_inline float4 min(float4 a, float4 b)
|
||||||
|
Loading…
Reference in New Issue
Block a user