[Bf-blender-cvs] [bb4b6cddcb8] master: Mesh Batch Cache: Speedup: Only alloc gpu_attrs if needed and don't clear

Clément Foucault noreply at git.blender.org
Wed May 8 17:59:23 CEST 2019


Commit: bb4b6cddcb89fb64479c6a246565b34ad0b74d82
Author: Clément Foucault
Date:   Wed May 8 12:00:50 2019 +0200
Branches: master
https://developer.blender.org/rBbb4b6cddcb89fb64479c6a246565b34ad0b74d82

Mesh Batch Cache: Speedup: Only alloc gpu_attrs if needed and don't clear

No need to clear since GPU_material_vertex_attrs is overriding

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

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

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

diff --git a/source/blender/draw/intern/draw_cache_impl_mesh.c b/source/blender/draw/intern/draw_cache_impl_mesh.c
index 02ebe16fb37..f3db1467883 100644
--- a/source/blender/draw/intern/draw_cache_impl_mesh.c
+++ b/source/blender/draw/intern/draw_cache_impl_mesh.c
@@ -423,13 +423,13 @@ static DRW_MeshCDMask mesh_cd_calc_used_gpu_layers(const Mesh *me,
   const CustomData *cd_ldata = (me->edit_mesh) ? &me->edit_mesh->bm->ldata : &me->ldata;
 
   /* See: DM_vertex_attributes_from_gpu for similar logic */
-  GPUVertAttrLayers gpu_attrs = {{{0}}};
   DRW_MeshCDMask cd_used;
   mesh_cd_layers_type_clear(&cd_used);
 
   for (int i = 0; i < gpumat_array_len; i++) {
     GPUMaterial *gpumat = gpumat_array[i];
     if (gpumat) {
+      GPUVertAttrLayers gpu_attrs;
       GPU_material_vertex_attrs(gpumat, &gpu_attrs);
       for (int j = 0; j < gpu_attrs.totlayer; j++) {
         const char *name = gpu_attrs.layer[j].name;



More information about the Bf-blender-cvs mailing list