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
diff options
context:
space:
mode:
Diffstat (limited to 'intern/cycles/kernel/kernel_accumulate.h')
-rw-r--r--intern/cycles/kernel/kernel_accumulate.h17
1 files changed, 13 insertions, 4 deletions
diff --git a/intern/cycles/kernel/kernel_accumulate.h b/intern/cycles/kernel/kernel_accumulate.h
index d4bb1ef8685..5f32150d33c 100644
--- a/intern/cycles/kernel/kernel_accumulate.h
+++ b/intern/cycles/kernel/kernel_accumulate.h
@@ -473,10 +473,8 @@ ccl_device_inline void kernel_accum_transparent(KernelGlobals kg,
ConstIntegratorState state,
const uint32_t path_flag,
const float transparent,
- ccl_global float *ccl_restrict render_buffer)
+ ccl_global float *ccl_restrict buffer)
{
- ccl_global float *buffer = kernel_accum_pixel_render_buffer(kg, state, render_buffer);
-
if (kernel_data.film.light_pass_flag & PASSMASK(COMBINED)) {
kernel_write_pass_float(buffer + kernel_data.film.pass_combined + 3, transparent);
}
@@ -484,6 +482,17 @@ ccl_device_inline void kernel_accum_transparent(KernelGlobals kg,
kernel_accum_shadow_catcher_transparent_only(kg, path_flag, transparent, buffer);
}
+/* Write holdout to render buffer. */
+ccl_device_inline void kernel_accum_holdout(KernelGlobals kg,
+ ConstIntegratorState state,
+ const uint32_t path_flag,
+ const float transparent,
+ ccl_global float *ccl_restrict render_buffer)
+{
+ ccl_global float *buffer = kernel_accum_pixel_render_buffer(kg, state, render_buffer);
+ kernel_accum_transparent(kg, state, path_flag, transparent, buffer);
+}
+
/* Write background contribution to render buffer.
*
* Includes transparency, matching kernel_accum_transparent. */
@@ -501,7 +510,7 @@ ccl_device_inline void kernel_accum_background(KernelGlobals kg,
const uint32_t path_flag = INTEGRATOR_STATE(state, path, flag);
if (is_transparent_background_ray) {
- kernel_accum_transparent(kg, state, path_flag, transparent, render_buffer);
+ kernel_accum_transparent(kg, state, path_flag, transparent, buffer);
}
else {
const int sample = INTEGRATOR_STATE(state, path, sample);