Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2018-05-04 16:42:06 +0300
committerClément Foucault <foucault.clem@gmail.com>2018-05-04 17:22:23 +0300
commite6ce78895ddd64bcaed24fa4e075ad86da670831 (patch)
tree52ee6ae07572bfca534973558350572062d4c0a4 /source/blender/draw/engines/eevee/eevee_lights.c
parentf48e53f5625b5c4091cddee09154b43ee98ecfdb (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.c7
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;