Fix T52470: cycles OpenCL hair rendering not working after recent changes.
This commit is contained in:
parent
ce0fce2207
commit
1d1ddd48db
Notes:
blender-bot
2023-02-14 06:40:30 +01:00
Referenced by issue #52470, Failed loading render kernel when rendering Victor benchmark file
|
@ -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;
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue