From e6ce78895ddd64bcaed24fa4e075ad86da670831 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Fri, 4 May 2018 15:42:06 +0200 Subject: [PATCH] Eevee: Cap Shadow resolution to 4096px^2. As much as I want to give freedom to the user, 1.5G of vram for a single shadow is a big of a stability issue. So limiting to 4096 for now, we may remove this limit in the future. --- source/blender/draw/engines/eevee/eevee_lights.c | 7 +++++-- source/blender/makesrna/intern/rna_layer.c | 1 - 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/source/blender/draw/engines/eevee/eevee_lights.c b/source/blender/draw/engines/eevee/eevee_lights.c index b7790d7dd0f..c123ea033ca 100644 --- a/source/blender/draw/engines/eevee/eevee_lights.c +++ b/source/blender/draw/engines/eevee/eevee_lights.c @@ -138,7 +138,7 @@ void EEVEE_lights_init(EEVEE_ViewLayerData *sldata) (linfo->shadow_method != sh_method) || (linfo->shadow_high_bitdepth != sh_high_bitdepth)) { - BLI_assert((sh_cube_size > 0) && (sh_cube_size <= 8192)); + BLI_assert((sh_cube_size > 0) && (sh_cube_size <= 4096)); DRW_TEXTURE_FREE_SAFE(sldata->shadow_cube_pool); DRW_TEXTURE_FREE_SAFE(sldata->shadow_cube_target); DRW_TEXTURE_FREE_SAFE(sldata->shadow_cube_blur); @@ -149,6 +149,7 @@ void EEVEE_lights_init(EEVEE_ViewLayerData *sldata) int new_cube_target_size = (int)ceil(sqrt((float)(sh_cube_size * sh_cube_size) / 6.0f) * 3.0f); CLAMP(new_cube_target_size, 1, 4096); + CLAMP(sh_cube_size, 1, 4096); linfo->shadow_cube_target_size = new_cube_target_size; linfo->shadow_render_data.cube_texel_size = 1.0 / (float)linfo->shadow_cube_target_size; @@ -158,10 +159,12 @@ void EEVEE_lights_init(EEVEE_ViewLayerData *sldata) (linfo->shadow_method != sh_method) || (linfo->shadow_high_bitdepth != sh_high_bitdepth)) { - BLI_assert((sh_cascade_size > 0) && (sh_cascade_size <= 8192)); + BLI_assert((sh_cascade_size > 0) && (sh_cascade_size <= 4096)); DRW_TEXTURE_FREE_SAFE(sldata->shadow_cascade_pool); DRW_TEXTURE_FREE_SAFE(sldata->shadow_cascade_target); DRW_TEXTURE_FREE_SAFE(sldata->shadow_cascade_blur); + + CLAMP(sh_cascade_size, 1, 4096); } linfo->shadow_high_bitdepth = sh_high_bitdepth; diff --git a/source/blender/makesrna/intern/rna_layer.c b/source/blender/makesrna/intern/rna_layer.c index 921b6a27e42..cbc88835c1b 100644 --- a/source/blender/makesrna/intern/rna_layer.c +++ b/source/blender/makesrna/intern/rna_layer.c @@ -1141,7 +1141,6 @@ static void rna_def_view_layer_engine_settings_eevee(BlenderRNA *brna) {1024, "1024", 0, "1024px", ""}, {2048, "2048", 0, "2048px", ""}, {4096, "4096", 0, "4096px", ""}, - {8192, "8192", 0, "8192px", ""}, {0, NULL, 0, NULL, NULL} };