diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-10-23 16:52:04 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-10-23 19:04:45 +0300 |
commit | ee8e866a0e9c43f3d0883bb45e4043995743946b (patch) | |
tree | 9f78baec81ff565d123d0e826928de0ee1cef7b8 /source/blender/draw | |
parent | 2c35307f097218d81793c4820d848ac5fea16a8f (diff) |
Eevee: Fix crash when baking
Was caused by the normal pass being enbaled in the renderlayer settings.
Fix T57344
Diffstat (limited to 'source/blender/draw')
5 files changed, 6 insertions, 6 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_effects.c b/source/blender/draw/engines/eevee/eevee_effects.c index fe71558f74a..2978ea38d19 100644 --- a/source/blender/draw/engines/eevee/eevee_effects.c +++ b/source/blender/draw/engines/eevee/eevee_effects.c @@ -144,7 +144,7 @@ static void eevee_create_shader_downsample(void) GPU_FRAMEBUFFER_FREE_SAFE(fb_color); \ } -void EEVEE_effects_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, Object *camera) +void EEVEE_effects_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, Object *camera, const bool minimal) { EEVEE_CommonUniformBuffer *common_data = &sldata->common_data; EEVEE_StorageList *stl = vedata->stl; @@ -181,7 +181,7 @@ void EEVEE_effects_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, Object effects->enabled_effects |= EEVEE_volumes_init(sldata, vedata); /* Force normal buffer creation. */ - if (DRW_state_is_image_render() && + if (DRW_state_is_image_render() && !minimal && (view_layer->passflag & SCE_PASS_NORMAL) != 0) { effects->enabled_effects |= EFFECT_NORMAL_BUFFER; diff --git a/source/blender/draw/engines/eevee/eevee_engine.c b/source/blender/draw/engines/eevee/eevee_engine.c index bea7d000181..fdd908dbc44 100644 --- a/source/blender/draw/engines/eevee/eevee_engine.c +++ b/source/blender/draw/engines/eevee/eevee_engine.c @@ -96,7 +96,7 @@ static void eevee_engine_init(void *ved) } /* EEVEE_effects_init needs to go first for TAA */ - EEVEE_effects_init(sldata, vedata, camera); + EEVEE_effects_init(sldata, vedata, camera, false); EEVEE_materials_init(sldata, stl, fbl); EEVEE_lights_init(sldata); EEVEE_lightprobes_init(sldata, vedata); diff --git a/source/blender/draw/engines/eevee/eevee_lightcache.c b/source/blender/draw/engines/eevee/eevee_lightcache.c index d399e48c298..7448396eebb 100644 --- a/source/blender/draw/engines/eevee/eevee_lightcache.c +++ b/source/blender/draw/engines/eevee/eevee_lightcache.c @@ -669,7 +669,7 @@ static void eevee_lightbake_cache_create(EEVEE_Data *vedata, EEVEE_LightBake *lb }; DRW_render_viewport_size_set(viewport_size); - EEVEE_effects_init(sldata, vedata, NULL); + EEVEE_effects_init(sldata, vedata, NULL, true); EEVEE_materials_init(sldata, stl, fbl); EEVEE_lights_init(sldata); EEVEE_lightprobes_init(sldata, vedata); diff --git a/source/blender/draw/engines/eevee/eevee_private.h b/source/blender/draw/engines/eevee/eevee_private.h index c5d184e1a84..b0393959d84 100644 --- a/source/blender/draw/engines/eevee/eevee_private.h +++ b/source/blender/draw/engines/eevee/eevee_private.h @@ -957,7 +957,7 @@ void EEVEE_volumes_free_smoke_textures(void); void EEVEE_volumes_free(void); /* eevee_effects.c */ -void EEVEE_effects_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, Object *camera); +void EEVEE_effects_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, Object *camera, const bool minimal); void EEVEE_effects_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata); void EEVEE_create_minmax_buffer(EEVEE_Data *vedata, struct GPUTexture *depth_src, int layer); void EEVEE_downsample_buffer(EEVEE_Data *vedata, struct GPUTexture *texture_src, int level); diff --git a/source/blender/draw/engines/eevee/eevee_render.c b/source/blender/draw/engines/eevee/eevee_render.c index e24142e3f71..b110b3f253e 100644 --- a/source/blender/draw/engines/eevee/eevee_render.c +++ b/source/blender/draw/engines/eevee/eevee_render.c @@ -114,7 +114,7 @@ void EEVEE_render_init(EEVEE_Data *ved, RenderEngine *engine, struct Depsgraph * DRW_viewport_matrix_override_set(g_data->viewinv, DRW_MAT_VIEWINV); /* EEVEE_effects_init needs to go first for TAA */ - EEVEE_effects_init(sldata, vedata, ob_camera_eval); + EEVEE_effects_init(sldata, vedata, ob_camera_eval, false); EEVEE_materials_init(sldata, stl, fbl); EEVEE_lights_init(sldata); EEVEE_lightprobes_init(sldata, vedata); |