diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-05-31 18:47:54 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-05-31 18:48:42 +0300 |
commit | d2bb0e660bdec00164a9fc72d145e308fb723d16 (patch) | |
tree | 118db6c99469065ccd804af55f25ba486a3875a5 /intern/cycles/kernel/kernel_bake.h | |
parent | ad1c3bef8bb0b405d22bfed8007629276cb0d68f (diff) |
Fix T46207: Slow OpenCL GPU bake and blown out baking Cycles render
Diffstat (limited to 'intern/cycles/kernel/kernel_bake.h')
-rw-r--r-- | intern/cycles/kernel/kernel_bake.h | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/intern/cycles/kernel/kernel_bake.h b/intern/cycles/kernel/kernel_bake.h index 3966a06fe33..8d05befe1d4 100644 --- a/intern/cycles/kernel/kernel_bake.h +++ b/intern/cycles/kernel/kernel_bake.h @@ -482,12 +482,10 @@ ccl_device void kernel_bake_evaluate(KernelGlobals *kg, ccl_global uint4 *input, } /* write output */ - float output_fac = is_aa_pass(type)? 1.0f/num_samples: 1.0f; + const float output_fac = is_aa_pass(type)? 1.0f/num_samples: 1.0f; + const float4 scaled_result = make_float4(out.x, out.y, out.z, 1.0f) * output_fac; - if(sample == 0) - output[i] = make_float4(out.x, out.y, out.z, 1.0f) * output_fac; - else - output[i] += make_float4(out.x, out.y, out.z, 1.0f) * output_fac; + output[i] = (sample == 0)? scaled_result: output[i] + scaled_result; } #endif /* __BAKING__ */ |