Commit: 3ec168465d31c90cc75b5ea70de492dbeb4ac992
Author: Sv. Lockal
Date:   Sun May 10 19:04:24 2015 +0000
Branches: master
https://developer.blender.org/rB3ec168465d31c90cc75b5ea70de492dbeb4ac992

Cycles: fix compilation on 32-bit Windows for half-floats

Reported by IRC user HG1.

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

M       intern/cycles/util/util_half.h

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

diff --git a/intern/cycles/util/util_half.h b/intern/cycles/util/util_half.h
index 9642f8e..f4bac98 100644
--- a/intern/cycles/util/util_half.h
+++ b/intern/cycles/util/util_half.h
@@ -54,10 +54,12 @@ ccl_device_inline void float4_store_half(half *h, float4 f, 
float scale)
        for(int i = 0; i < 4; i++) {
                /* optimized float to half for pixels:
                 * assumes no negative, no nan, no inf, and sets denormal to 0 
*/
+               union { uint i; float f; } in;
                float fscale = f[i] * scale;
-               float x = min(max(fscale, 0.0f), 65504.0f);
+               in.f = (fscale > 0.0f)? ((fscale < 65504.0f)? fscale: 
65504.0f): 0.0f;
+               int x = in.i;
 
-               int absolute = __float_as_uint(in) & 0x7FFFFFFF;
+               int absolute = x & 0x7FFFFFFF;
                int Z = absolute + 0xC8000000;
                int result = (absolute < 0x38800000)? 0: Z;
                int rshift = (result >> 13);

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

Reply via email to