diff options
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_cryptomatte.c')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_cryptomatte.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_cryptomatte.c b/source/blender/draw/engines/eevee/eevee_cryptomatte.c index 91a230e987c..90948d67895 100644 --- a/source/blender/draw/engines/eevee/eevee_cryptomatte.c +++ b/source/blender/draw/engines/eevee/eevee_cryptomatte.c @@ -161,6 +161,14 @@ void EEVEE_cryptomatte_output_init(EEVEE_ViewLayerData *UNUSED(sldata), g_data->cryptomatte_download_buffer = MEM_malloc_arrayN( sizeof(float), buffer_size * num_cryptomatte_layers, __func__); } + else { + /* During multiview rendering the `cryptomatte_accum_buffer` is deallocated after all views + * have been rendered. Clear it here to be reused by the next view. */ + memset(g_data->cryptomatte_accum_buffer, + 0, + buffer_size * eevee_cryptomatte_pixel_stride(view_layer) * + sizeof(EEVEE_CryptomatteSample)); + } DRW_texture_ensure_fullscreen_2d(&txl->cryptomatte, format, 0); GPU_framebuffer_ensure_config(&fbl->cryptomatte_fb, |