Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2016-07-08 10:41:36 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2016-07-08 10:41:36 +0300
commita62967787cc9aa1bc6d4cca400e776b529838f4f (patch)
tree98189c6047d9d1da6288c111e73380c14449ed0a /intern/cycles
parentd5d26338b5a13aaaaefd051efcbbc93c453b57c7 (diff)
Fix T48808: Regression: Cycles OpenCL broken after Hair BVH commit
Diffstat (limited to 'intern/cycles')
-rw-r--r--intern/cycles/kernel/geom/geom_bvh_nodes.h19
-rw-r--r--intern/cycles/kernel/kernel_random.h2
-rw-r--r--intern/cycles/util/util_transform.h2
3 files changed, 10 insertions, 13 deletions
diff --git a/intern/cycles/kernel/geom/geom_bvh_nodes.h b/intern/cycles/kernel/geom/geom_bvh_nodes.h
index deb91ec95f5..5b0d8785d0e 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 94598e2565e..731dc0407c5 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 7aee7e5da86..6fed18a3db8 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);