[Bf-blender-cvs] [c06d3b6] master: Cycles: Fix compilation error on Windows with OSL enabled

Sergey Sharybin noreply at git.blender.org
Mon Jul 11 18:15:57 CEST 2016


Commit: c06d3b6c3650be099d50da5830e956ae77896693
Author: Sergey Sharybin
Date:   Mon Jul 11 18:15:51 2016 +0200
Branches: master
https://developer.blender.org/rBc06d3b6c3650be099d50da5830e956ae77896693

Cycles: Fix compilation error on Windows with OSL enabled

Seems there's some conflict around `near` identifier in that configuration.

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

M	intern/cycles/kernel/bvh/bvh_nodes.h
M	intern/cycles/kernel/bvh/qbvh_nodes.h

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

diff --git a/intern/cycles/kernel/bvh/bvh_nodes.h b/intern/cycles/kernel/bvh/bvh_nodes.h
index 853976f..db2275b 100644
--- a/intern/cycles/kernel/bvh/bvh_nodes.h
+++ b/intern/cycles/kernel/bvh/bvh_nodes.h
@@ -160,10 +160,10 @@ ccl_device_inline bool bvh_unaligned_node_intersect_child(
 	const float far_x  = max(lower_xyz.x, upper_xyz.x);
 	const float far_y  = max(lower_xyz.y, upper_xyz.y);
 	const float far_z  = max(lower_xyz.z, upper_xyz.z);
-	const float near   = max4(0.0f, near_x, near_y, near_z);
-	const float far    = min4(t, far_x, far_y, far_z);
-	*dist = near;
-	return near <= far;
+	const float tnear   = max4(0.0f, near_x, near_y, near_z);
+	const float tfar    = min4(t, far_x, far_y, far_z);
+	*dist = tnear;
+	return tnear <= tfar;
 }
 
 ccl_device_inline bool bvh_unaligned_node_intersect_child_robust(
@@ -188,17 +188,17 @@ ccl_device_inline bool bvh_unaligned_node_intersect_child_robust(
 	const float far_x  = max(tLowerXYZ.x, tUpperXYZ.x);
 	const float far_y  = max(tLowerXYZ.y, tUpperXYZ.y);
 	const float far_z  = max(tLowerXYZ.z, tUpperXYZ.z);
-	const float near   = max4(0.0f, near_x, near_y, near_z);
-	const float far    = min4(t, far_x, far_y, far_z);
-	*dist = near;
+	const float tnear   = max4(0.0f, near_x, near_y, near_z);
+	const float tfar    = min4(t, far_x, far_y, far_z);
+	*dist = tnear;
 	if(difl != 0.0f) {
 		/* TODO(sergey): Same as for QBVH, needs a proper use. */
 		const float round_down = 1.0f - difl;
 		const float round_up = 1.0f + difl;
-		return round_down*near <= round_up*far;
+		return round_down*tnear <= round_up*tfar;
 	}
 	else {
-		return near <= far;
+		return tnear <= tfar;
 	}
 }
 
@@ -444,8 +444,8 @@ int ccl_device_inline bvh_aligned_node_intersect_robust(
 int ccl_device_inline bvh_unaligned_node_intersect(KernelGlobals *kg,
                                                    const float3 P,
                                                    const float3 dir,
-                                                   const ssef& tnear,
-                                                   const ssef& tfar,
+                                                   const ssef& isect_near,
+                                                   const ssef& isect_far,
                                                    const int node_addr,
                                                    const uint visibility,
                                                    float dist[2])
@@ -483,11 +483,11 @@ int ccl_device_inline bvh_unaligned_node_intersect(KernelGlobals *kg,
 	ssef tfar_y = max(lower_y, upper_y);
 	ssef tfar_z = max(lower_z, upper_z);
 
-	const ssef near = max4(tnear_x, tnear_y, tnear_z, tnear);
-	const ssef far = min4(tfar_x, tfar_y, tfar_z, tfar);
-	sseb vmask = near <= far;
-	dist[0] = near.f[0];
-	dist[1] = near.f[1];
+	const ssef tnear = max4(tnear_x, tnear_y, tnear_z, isect_near);
+	const ssef tfar = min4(tfar_x, tfar_y, tfar_z, isect_far);
+	sseb vmask = tnear <= tfar;
+	dist[0] = tnear.f[0];
+	dist[1] = tnear.f[1];
 
 	int mask = (int)movemask(vmask);
 
@@ -505,8 +505,8 @@ int ccl_device_inline bvh_unaligned_node_intersect(KernelGlobals *kg,
 int ccl_device_inline bvh_unaligned_node_intersect_robust(KernelGlobals *kg,
                                                           const float3 P,
                                                           const float3 dir,
-                                                          const ssef& tnear,
-                                                          const ssef& tfar,
+                                                          const ssef& isect_near,
+                                                          const ssef& isect_far,
                                                           const float difl,
                                                           const int node_addr,
                                                           const uint visibility,
@@ -545,20 +545,20 @@ int ccl_device_inline bvh_unaligned_node_intersect_robust(KernelGlobals *kg,
 	ssef tfar_y = max(lower_y, upper_y);
 	ssef tfar_z = max(lower_z, upper_z);
 
-	const ssef near = max4(tnear_x, tnear_y, tnear_z, tnear);
-	const ssef far = min4(tfar_x, tfar_y, tfar_z, tfar);
+	const ssef tnear = max4(tnear_x, tnear_y, tnear_z, isect_near);
+	const ssef tfar = min4(tfar_x, tfar_y, tfar_z, isect_far);
 	sseb vmask;
 	if(difl != 0.0f) {
 		const float round_down = 1.0f - difl;
 		const float round_up = 1.0f + difl;
-		vmask = round_down*near <= round_up*far;
+		vmask = round_down*tnear <= round_up*tfar;
 	}
 	else {
-		vmask = near <= far;
+		vmask = tnear <= tfar;
 	}
 
-	dist[0] = near.f[0];
-	dist[1] = near.f[1];
+	dist[0] = tnear.f[0];
+	dist[1] = tnear.f[1];
 
 	int mask = (int)movemask(vmask);
 
@@ -576,8 +576,8 @@ int ccl_device_inline bvh_unaligned_node_intersect_robust(KernelGlobals *kg,
 ccl_device_inline int bvh_node_intersect(KernelGlobals *kg,
                                          const float3& P,
                                          const float3& dir,
-                                         const ssef& tnear,
-                                         const ssef& tfar,
+                                         const ssef& isect_near,
+                                         const ssef& isect_far,
                                          const ssef& tsplat,
                                          const ssef Psplat[3],
                                          const ssef idirsplat[3],
@@ -591,8 +591,8 @@ ccl_device_inline int bvh_node_intersect(KernelGlobals *kg,
 		return bvh_unaligned_node_intersect(kg,
 		                                    P,
 		                                    dir,
-		                                    tnear,
-		                                    tfar,
+		                                    isect_near,
+		                                    isect_far,
 		                                    node_addr,
 		                                    visibility,
 		                                    dist);
@@ -614,8 +614,8 @@ ccl_device_inline int bvh_node_intersect(KernelGlobals *kg,
 ccl_device_inline int bvh_node_intersect_robust(KernelGlobals *kg,
                                                 const float3& P,
                                                 const float3& dir,
-                                                const ssef& tnear,
-                                                const ssef& tfar,
+                                                const ssef& isect_near,
+                                                const ssef& isect_far,
                                                 const ssef& tsplat,
                                                 const ssef Psplat[3],
                                                 const ssef idirsplat[3],
@@ -631,8 +631,8 @@ ccl_device_inline int bvh_node_intersect_robust(KernelGlobals *kg,
 		return bvh_unaligned_node_intersect_robust(kg,
 		                                           P,
 		                                           dir,
-		                                           tnear,
-		                                           tfar,
+		                                           isect_near,
+		                                           isect_far,
 		                                           difl,
 		                                           node_addr,
 		                                           visibility,
diff --git a/intern/cycles/kernel/bvh/qbvh_nodes.h b/intern/cycles/kernel/bvh/qbvh_nodes.h
index a833f4b..4d8695b 100644
--- a/intern/cycles/kernel/bvh/qbvh_nodes.h
+++ b/intern/cycles/kernel/bvh/qbvh_nodes.h
@@ -54,8 +54,8 @@ ccl_device_inline void qbvh_stack_sort(QBVHStackItem *ccl_restrict s1,
 /* Axis-aligned nodes intersection */
 
 ccl_device_inline int qbvh_aligned_node_intersect(KernelGlobals *ccl_restrict kg,
-                                                  const ssef& tnear,
-                                                  const ssef& tfar,
+                                                  const ssef& isect_near,
+                                                  const ssef& isect_far,
 #ifdef __KERNEL_AVX2__
                                                   const sse3f& org_idir,
 #else
@@ -89,24 +89,24 @@ ccl_device_inline int qbvh_aligned_node_intersect(KernelGlobals *ccl_restrict kg
 #endif
 
 #ifdef __KERNEL_SSE41__
-	const ssef near = maxi(maxi(tnear_x, tnear_y), maxi(tnear_z, tnear));
-	const ssef far = mini(mini(tfar_x, tfar_y), mini(tfar_z, tfar));
-	const sseb vmask = cast(near) > cast(far);
+	const ssef tnear = maxi(maxi(tnear_x, tnear_y), maxi(tnear_z, isect_near));
+	const ssef tfar = mini(mini(tfar_x, tfar_y), mini(tfar_z, isect_far));
+	const sseb vmask = cast(tnear) > cast(tfar);
 	int mask = (int)movemask(vmask)^0xf;
 #else
-	const ssef near = max4(tnear_x, tnear_y, tnear_z, tnear);
-	const ssef far = min4(tfar_x, tfar_y, tfar_z, tfar);
-	const sseb vmask = near <= far;
+	const ssef tnear = max4(tnear_x, tnear_y, tnear_z, isect_near);
+	const ssef tfar = min4(tfar_x, tfar_y, tfar_z, isect_far);
+	const sseb vmask = tnear <= tfar;
 	int mask = (int)movemask(vmask);
 #endif
-	*dist = near;
+	*dist = tnear;
 	return mask;
 }
 
 ccl_device_inline int qbvh_aligned_node_intersect_robust(
         KernelGlobals *ccl_restrict kg,
-        const ssef& tnear,
-        const ssef& tfar,
+        const ssef& isect_near,
+        const ssef& isect_far,
 #ifdef __KERNEL_AVX2__
         const sse3f& P_idir,
 #else
@@ -142,10 +142,10 @@ ccl_device_inline int qbvh_aligned_node_intersect_robust(
 
 	const float round_down = 1.0f - difl;
 	const float round_up = 1.0f + difl;
-	const ssef near = max4(tnear_x, tnear_y, tnear_z, tnear);
-	const ssef far = min4(tfar_x, tfar_y, tfar_z, tfar);
-	const sseb vmask = round_down*near <= round_up*far;
-	*dist = near;
+	const ssef tnear = max4(tnear_x, tnear_y, tnear_z, isect_near);
+	const ssef tfar = min4(tfar_x, tfar_y, tfar_z, isect_far);
+	const sseb vmask = round_down*tnear <= round_up*tfar;
+	*dist = tnear;
 	return (int)movemask(vmask);
 }
 
@@ -153,8 +153,8 @@ ccl_device_inline int qbvh_aligned_node_intersect_robust(
 
 ccl_device_inline int qbvh_unaligned_node_intersect(
         KernelGlobals *ccl

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list