Eevee: Fix crash when baking
Was caused by the normal pass being enbaled in the renderlayer settings. Fix T57344
This commit is contained in:
parent
2c35307f09
commit
ee8e866a0e
Notes:
blender-bot
2023-03-24 17:05:22 +01:00
Referenced by issue #57344, Blender CRASHES any time I try to bake indirect ligthing
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue