[Bf-blender-cvs] [e3ae7d1f2f4] master: Fix T83942: improve error checking when trying to render high resolution volume

Jacques Lucke noreply at git.blender.org
Fri Jan 8 12:14:23 CET 2021


Commit: e3ae7d1f2f4592a0cc9032e2056b2236a39795f8
Author: Jacques Lucke
Date:   Fri Jan 8 12:14:12 2021 +0100
Branches: master
https://developer.blender.org/rBe3ae7d1f2f4592a0cc9032e2056b2236a39795f8

Fix T83942: improve error checking when trying to render high resolution volume

Reviewers: fclem

Differential Revision: https://developer.blender.org/D10032

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

M	source/blender/draw/intern/draw_cache_impl_volume.c

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

diff --git a/source/blender/draw/intern/draw_cache_impl_volume.c b/source/blender/draw/intern/draw_cache_impl_volume.c
index 1119e0458a5..7244dfd12c3 100644
--- a/source/blender/draw/intern/draw_cache_impl_volume.c
+++ b/source/blender/draw/intern/draw_cache_impl_volume.c
@@ -330,9 +330,17 @@ static DRWVolumeGrid *volume_grid_cache_get(Volume *volume,
                                                 format,
                                                 GPU_DATA_FLOAT,
                                                 dense_grid.voxels);
-    GPU_texture_swizzle_set(cache_grid->texture, (channels == 3) ? "rgb1" : "rrr1");
-    GPU_texture_wrap_mode(cache_grid->texture, false, false);
-    BKE_volume_dense_float_grid_clear(&dense_grid);
+    /* The texture can be null if the resolution along one axis is larger than
+     * GL_MAX_3D_TEXTURE_SIZE. */
+    if (cache_grid->texture != NULL) {
+      GPU_texture_swizzle_set(cache_grid->texture, (channels == 3) ? "rgb1" : "rrr1");
+      GPU_texture_wrap_mode(cache_grid->texture, false, false);
+      BKE_volume_dense_float_grid_clear(&dense_grid);
+    }
+    else {
+      MEM_freeN(dense_grid.voxels);
+      printf("Error: Could not allocate 3D texture for volume.\n");
+    }
   }
 
   /* Free grid from memory if it wasn't previously loaded. */



More information about the Bf-blender-cvs mailing list