[Bf-blender-cvs] [16b4b412e6b] blender-v2.83-release: EEVEE: LightCache: Add warning if the cache cannot be saved

Clément Foucault noreply at git.blender.org
Wed Aug 12 09:44:10 CEST 2020


Commit: 16b4b412e6b380eb92b5e66d7ba932f715943f28
Author: Clément Foucault
Date:   Wed Aug 5 02:26:16 2020 +0200
Branches: blender-v2.83-release
https://developer.blender.org/rB16b4b412e6b380eb92b5e66d7ba932f715943f28

EEVEE: LightCache: Add warning if the cache cannot be saved

===================================================================

M	source/blender/draw/engines/eevee/eevee_lightcache.c

===================================================================

diff --git a/source/blender/draw/engines/eevee/eevee_lightcache.c b/source/blender/draw/engines/eevee/eevee_lightcache.c
index 614c749b9aa..bb23e898f38 100644
--- a/source/blender/draw/engines/eevee/eevee_lightcache.c
+++ b/source/blender/draw/engines/eevee/eevee_lightcache.c
@@ -206,6 +206,21 @@ static bool eevee_lightcache_version_check(LightCache *lcache)
   }
 }
 
+static bool eevee_lightcache_can_be_saved(LightCache *lcache)
+{
+  if (lcache->grid_tx.data) {
+    if (MEM_allocN_len(lcache->grid_tx.data) >= INT_MAX) {
+      return false;
+    }
+  }
+  if (lcache->cube_tx.data) {
+    if (MEM_allocN_len(lcache->cube_tx.data) >= INT_MAX) {
+      return false;
+    }
+  }
+  return true;
+}
+
 static int eevee_lightcache_irradiance_sample_count(LightCache *lcache)
 {
   int total_irr_samples = 0;
@@ -242,6 +257,13 @@ void EEVEE_lightcache_info_update(SceneEEVEE *eevee)
       return;
     }
 
+    if (!eevee_lightcache_can_be_saved(lcache)) {
+      BLI_strncpy(eevee->light_cache_info,
+                  TIP_("Error: LightCache is too large and will not be saved to disk"),
+                  sizeof(eevee->light_cache_info));
+      return;
+    }
+
     char formatted_mem[15];
     BLI_str_format_byte_unit(formatted_mem, eevee_lightcache_memsize_get(lcache), false);



More information about the Bf-blender-cvs mailing list