diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-08-01 16:59:47 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-08-01 16:59:47 +0400 |
commit | 7ffa42075e29033a54a606a75b802d17f4a0f079 (patch) | |
tree | 7cdf1aa17fe0966859f1877d30ca53a2387ad46a /intern | |
parent | e00c7558bd30a087f4ffcb5197ec25a72fa76db5 (diff) |
Fix #32205: Holdout shader + transparent background stays black with Alpha = 1
It was read of initialized memory around holdout_weight in cases when
holdout material is used. Seems that it should be assigned to result
of shader_holdout_eval here.
If Brecht could double check this it'll be great.
This could potentially fix #32224: Holdout Error with CUDA Cycles Render
Diffstat (limited to 'intern')
-rw-r--r-- | intern/cycles/kernel/kernel_path.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/intern/cycles/kernel/kernel_path.h b/intern/cycles/kernel/kernel_path.h index 98ab9169c21..f5188345948 100644 --- a/intern/cycles/kernel/kernel_path.h +++ b/intern/cycles/kernel/kernel_path.h @@ -288,7 +288,7 @@ __device float4 kernel_path_progressive(KernelGlobals *kg, RNG *rng, int sample, if(sd.flag & SD_HOLDOUT_MASK) holdout_weight = make_float3(1.0f, 1.0f, 1.0f); else - shader_holdout_eval(kg, &sd); + holdout_weight = shader_holdout_eval(kg, &sd); /* any throughput is ok, should all be identical here */ L_transparent += average(holdout_weight*throughput); @@ -655,7 +655,7 @@ __device float4 kernel_path_non_progressive(KernelGlobals *kg, RNG *rng, int sam if(sd.flag & SD_HOLDOUT_MASK) holdout_weight = make_float3(1.0f, 1.0f, 1.0f); else - shader_holdout_eval(kg, &sd); + holdout_weight = shader_holdout_eval(kg, &sd); /* any throughput is ok, should all be identical here */ L_transparent += average(holdout_weight*throughput); |