[Bf-blender-cvs] [a629677] master: Fix T48808: Regression: Cycles OpenCL broken after Hair BVH commit

Sergey Sharybin noreply at git.blender.org
Fri Jul 8 09:41:08 CEST 2016


Commit: a62967787cc9aa1bc6d4cca400e776b529838f4f
Author: Sergey Sharybin
Date:   Fri Jul 8 09:41:36 2016 +0200
Branches: master
https://developer.blender.org/rBa62967787cc9aa1bc6d4cca400e776b529838f4f

Fix T48808: Regression: Cycles OpenCL broken after Hair BVH commit

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

M	intern/cycles/kernel/geom/geom_bvh_nodes.h
M	intern/cycles/kernel/kernel_random.h
M	intern/cycles/util/util_transform.h

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

diff --git a/intern/cycles/kernel/geom/geom_bvh_nodes.h b/intern/cycles/kernel/geom/geom_bvh_nodes.h
index deb91ec..5b0d878 100644
--- a/intern/cycles/kernel/geom/geom_bvh_nodes.h
+++ b/intern/cycles/kernel/geom/geom_bvh_nodes.h
@@ -36,7 +36,7 @@ ccl_device_inline int bvh_aligned_node_intersect(KernelGlobals *kg,
                                                  const float t,
                                                  const int nodeAddr,
                                                  const uint visibility,
-                                                 float *dist)
+                                                 float dist[2])
 {
 
 	/* fetch node data */
@@ -85,7 +85,7 @@ ccl_device_inline int bvh_aligned_node_intersect_robust(KernelGlobals *kg,
                                                         const float extmax,
                                                         const int nodeAddr,
                                                         const uint visibility,
-                                                        float *dist)
+                                                        float dist[2])
 {
 
 	/* fetch node data */
@@ -146,7 +146,7 @@ ccl_device_inline bool bvh_unaligned_node_intersect_child(
         const float t,
         int nodeAddr,
         int child,
-        float *dist)
+        float dist[2])
 {
 	Transform space  = bvh_unaligned_node_fetch_space(kg, nodeAddr, child);
 	float3 aligned_dir = transform_direction(&space, dir);
@@ -172,10 +172,9 @@ ccl_device_inline bool bvh_unaligned_node_intersect_child_robust(
         const float3 dir,
         const float t,
         const float difl,
-        const float /*extmax*/,
         int nodeAddr,
         int child,
-        float *dist)
+        float dist[2])
 {
 	Transform space  = bvh_unaligned_node_fetch_space(kg, nodeAddr, child);
 	float3 aligned_dir = transform_direction(&space, dir);
@@ -210,7 +209,7 @@ ccl_device_inline int bvh_unaligned_node_intersect(KernelGlobals *kg,
                                                    const float t,
                                                    const int nodeAddr,
                                                    const uint visibility,
-                                                   float *dist)
+                                                   float dist[2])
 {
 	int mask = 0;
 	float4 cnodes = kernel_tex_fetch(__bvh_nodes, nodeAddr+0);
@@ -242,11 +241,11 @@ ccl_device_inline int bvh_unaligned_node_intersect_robust(KernelGlobals *kg,
                                                           const float extmax,
                                                           const int nodeAddr,
                                                           const uint visibility,
-                                                          float *dist)
+                                                          float dist[2])
 {
 	int mask = 0;
 	float4 cnodes = kernel_tex_fetch(__bvh_nodes, nodeAddr+0);
-	if(bvh_unaligned_node_intersect_child_robust(kg, P, dir, t, difl, extmax, nodeAddr, 0, &dist[0])) {
+	if(bvh_unaligned_node_intersect_child_robust(kg, P, dir, t, difl, nodeAddr, 0, &dist[0])) {
 #ifdef __VISIBILITY_FLAG__
 		if((__float_as_uint(cnodes.x) & visibility))
 #endif
@@ -254,7 +253,7 @@ ccl_device_inline int bvh_unaligned_node_intersect_robust(KernelGlobals *kg,
 			mask |= 1;
 		}
 	}
-	if(bvh_unaligned_node_intersect_child_robust(kg, P, dir, t, difl, extmax, nodeAddr, 1, &dist[1])) {
+	if(bvh_unaligned_node_intersect_child_robust(kg, P, dir, t, difl, nodeAddr, 1, &dist[1])) {
 #ifdef __VISIBILITY_FLAG__
 		if((__float_as_uint(cnodes.y) & visibility))
 #endif
@@ -509,7 +508,6 @@ int ccl_device_inline bvh_unaligned_node_intersect_robust(KernelGlobals *kg,
                                                           const ssef& tnear,
                                                           const ssef& tfar,
                                                           const float difl,
-                                                          const float /*extmax*/,
                                                           const int nodeAddr,
                                                           const uint visibility,
                                                           float dist[2])
@@ -636,7 +634,6 @@ ccl_device_inline int bvh_node_intersect_robust(KernelGlobals *kg,
 		                                           tnear,
 		                                           tfar,
 		                                           difl,
-		                                           extmax,
 		                                           nodeAddr,
 		                                           visibility,
 		                                           dist);
diff --git a/intern/cycles/kernel/kernel_random.h b/intern/cycles/kernel/kernel_random.h
index 94598e2..731dc04 100644
--- a/intern/cycles/kernel/kernel_random.h
+++ b/intern/cycles/kernel/kernel_random.h
@@ -309,7 +309,7 @@ ccl_device_inline void path_state_branch(PathState *state, int branch, int num_b
 	state->num_samples = state->num_samples*num_branches;
 }
 
-ccl_device_inline uint lcg_state_init(RNG *rng, const ccl_addr_space PathState *state, uint scramble)
+ccl_device_inline uint lcg_state_init(RNG *rng, const PathState *state, uint scramble)
 {
 	return lcg_init(*rng + state->rng_offset + state->sample*scramble);
 }
diff --git a/intern/cycles/util/util_transform.h b/intern/cycles/util/util_transform.h
index 7aee7e5..6fed18a 100644
--- a/intern/cycles/util/util_transform.h
+++ b/intern/cycles/util/util_transform.h
@@ -128,7 +128,7 @@ ccl_device_inline Transform make_transform(float a, float b, float c, float d,
 }
 
 /* Constructs a coordinate frame from a normalized normal. */
-ccl_device_inline Transform make_transform_frame(const float3& N)
+ccl_device_inline Transform make_transform_frame(float3 N)
 {
 	const float3 dx0 = cross(make_float3(1.0f, 0.0f, 0.0f), N);
 	const float3 dx1 = cross(make_float3(0.0f, 1.0f, 0.0f), N);




More information about the Bf-blender-cvs mailing list