[Bf-blender-cvs] [c65f4b3d76d] master: DrawManager: Early return for buffer cache creation

Germano Cavalcante noreply at git.blender.org
Fri May 28 16:51:24 CEST 2021


Commit: c65f4b3d76deb47017a2e661290481e5e613b5db
Author: Germano Cavalcante
Date:   Fri May 28 11:51:05 2021 -0300
Branches: master
https://developer.blender.org/rBc65f4b3d76deb47017a2e661290481e5e613b5db

DrawManager: Early return for buffer cache creation

No real functional changes.

This is useful for benchmark cases when `cache->uv_cage` is passed but
has no buffers are requested.

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

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

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

diff --git a/source/blender/draw/intern/draw_cache_extract_mesh.c b/source/blender/draw/intern/draw_cache_extract_mesh.c
index f167ea3d540..fe162e6ea6d 100644
--- a/source/blender/draw/intern/draw_cache_extract_mesh.c
+++ b/source/blender/draw/intern/draw_cache_extract_mesh.c
@@ -5956,12 +5956,14 @@ void mesh_buffer_cache_create_requested(struct TaskGraph *task_graph,
   eMRDataType data_flag = 0;
 
   const bool do_lines_loose_subbuffer = mbc.ibo.lines_loose != NULL;
+  bool do_extract = false;
 
 #define TEST_ASSIGN(type, type_lowercase, name) \
   do { \
     if (DRW_TEST_ASSIGN_##type(mbc.type_lowercase.name)) { \
       iter_flag |= mesh_extract_iter_type(&extract_##name); \
       data_flag |= extract_##name.data_flag; \
+      do_extract = true; \
     } \
   } while (0)
 
@@ -6000,6 +6002,10 @@ void mesh_buffer_cache_create_requested(struct TaskGraph *task_graph,
   TEST_ASSIGN(IBO, ibo, edituv_points);
   TEST_ASSIGN(IBO, ibo, edituv_fdots);
 
+  if (!do_extract) {
+    return;
+  }
+
   if (do_lines_loose_subbuffer) {
     iter_flag |= MR_ITER_LEDGE;
   }



More information about the Bf-blender-cvs mailing list