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
path: root/intern
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2012-08-01 16:59:47 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2012-08-01 16:59:47 +0400
commit7ffa42075e29033a54a606a75b802d17f4a0f079 (patch)
tree7cdf1aa17fe0966859f1877d30ca53a2387ad46a /intern
parente00c7558bd30a087f4ffcb5197ec25a72fa76db5 (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.h4
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);