diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-05-04 16:42:06 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-05-04 17:22:23 +0300 |
commit | e6ce78895ddd64bcaed24fa4e075ad86da670831 (patch) | |
tree | 52ee6ae07572bfca534973558350572062d4c0a4 /source/blender/draw/engines/eevee/eevee_lights.c | |
parent | f48e53f5625b5c4091cddee09154b43ee98ecfdb (diff) |
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.
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_lights.c')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_lights.c | 7 |
1 files changed, 5 insertions, 2 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; |