[Bf-blender-cvs] [1d1ddd48db4] master: Fix T52470: cycles OpenCL hair rendering not working after recent changes.

Brecht Van Lommel noreply at git.blender.org
Sun Aug 20 23:49:38 CEST 2017


Commit: 1d1ddd48db432eb9ff646297d559756668fe6843
Author: Brecht Van Lommel
Date:   Sun Aug 20 23:16:25 2017 +0200
Branches: master
https://developer.blender.org/rB1d1ddd48db432eb9ff646297d559756668fe6843

Fix T52470: cycles OpenCL hair rendering not working after recent changes.

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

M	intern/cycles/kernel/kernel_path_subsurface.h
M	intern/cycles/kernel/kernel_random.h
M	intern/cycles/kernel/kernel_shader.h
M	intern/cycles/kernel/split/kernel_subsurface_scatter.h

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

diff --git a/intern/cycles/kernel/kernel_path_subsurface.h b/intern/cycles/kernel/kernel_path_subsurface.h
index 5fce5ed59d2..9bccc9201e0 100644
--- a/intern/cycles/kernel/kernel_path_subsurface.h
+++ b/intern/cycles/kernel/kernel_path_subsurface.h
@@ -46,7 +46,7 @@ bool kernel_path_subsurface_scatter(
 		 */
 		kernel_assert(!ss_indirect->tracing);
 
-		uint lcg_state = lcg_state_init(state, 0x68bc21eb);
+		uint lcg_state = lcg_state_init_addrspace(state, 0x68bc21eb);
 
 		SubsurfaceIntersection ss_isect;
 		float bssrdf_u, bssrdf_v;
diff --git a/intern/cycles/kernel/kernel_random.h b/intern/cycles/kernel/kernel_random.h
index 459333f9807..221d92f5de1 100644
--- a/intern/cycles/kernel/kernel_random.h
+++ b/intern/cycles/kernel/kernel_random.h
@@ -307,12 +307,19 @@ ccl_device_inline void path_state_branch(ccl_addr_space PathState *state,
 	state->num_samples = state->num_samples*num_branches;
 }
 
-ccl_device_inline uint lcg_state_init(ccl_addr_space PathState *state,
+ccl_device_inline uint lcg_state_init(PathState *state,
                                       uint scramble)
 {
 	return lcg_init(state->rng_hash + state->rng_offset + state->sample*scramble);
 }
 
+ccl_device_inline uint lcg_state_init_addrspace(ccl_addr_space PathState *state,
+                                                uint scramble)
+{
+	return lcg_init(state->rng_hash + state->rng_offset + state->sample*scramble);
+}
+
+
 ccl_device float lcg_step_float_addrspace(ccl_addr_space uint *rng)
 {
 	/* Implicit mod 2^32 */
diff --git a/intern/cycles/kernel/kernel_shader.h b/intern/cycles/kernel/kernel_shader.h
index 6b706cfdc86..a47766565a8 100644
--- a/intern/cycles/kernel/kernel_shader.h
+++ b/intern/cycles/kernel/kernel_shader.h
@@ -896,7 +896,7 @@ ccl_device void shader_eval_surface(KernelGlobals *kg, ShaderData *sd,
 	}
 
 	if(sd->flag & SD_BSDF_NEEDS_LCG) {
-		sd->lcg_state = lcg_state_init(state, 0xb4bc3953);
+		sd->lcg_state = lcg_state_init_addrspace(state, 0xb4bc3953);
 	}
 }
 
diff --git a/intern/cycles/kernel/split/kernel_subsurface_scatter.h b/intern/cycles/kernel/split/kernel_subsurface_scatter.h
index 76d198abc8a..a487e53df5c 100644
--- a/intern/cycles/kernel/split/kernel_subsurface_scatter.h
+++ b/intern/cycles/kernel/split/kernel_subsurface_scatter.h
@@ -51,8 +51,8 @@ ccl_device_noinline bool kernel_split_branched_path_subsurface_indirect_light_it
 		if(branched_state->ss_next_sample == 0 && branched_state->next_hit == 0 &&
 		   branched_state->next_closure == 0 && branched_state->next_sample == 0)
 		{
-			branched_state->lcg_state = lcg_state_init(&branched_state->path_state,
-			                                           0x68bc21eb);
+			branched_state->lcg_state = lcg_state_init_addrspace(&branched_state->path_state,
+			                                                     0x68bc21eb);
 		}
 		int num_samples = kernel_data.integrator.subsurface_samples;
 		float num_samples_inv = 1.0f/num_samples;
@@ -258,7 +258,7 @@ ccl_device void kernel_subsurface_scatter(KernelGlobals *kg)
 
 				/* do bssrdf scatter step if we picked a bssrdf closure */
 				if(sc) {
-					uint lcg_state = lcg_state_init(state, 0x68bc21eb);
+					uint lcg_state = lcg_state_init_addrspace(state, 0x68bc21eb);
 					float bssrdf_u, bssrdf_v;
 					path_state_rng_2D(kg,
 					                  state,



More information about the Bf-blender-cvs mailing list