[Bf-blender-cvs] [a21f5ec5624] master: Fix T73763: Laggy with nodes Editor + International Fonts

mano-wii noreply at git.blender.org
Fri Feb 14 15:25:53 CET 2020


Commit: a21f5ec56245f7f1fbede4aa3c140a582c3a6a1b
Author: mano-wii
Date:   Fri Feb 14 11:25:41 2020 -0300
Branches: master
https://developer.blender.org/rBa21f5ec56245f7f1fbede4aa3c140a582c3a6a1b

Fix T73763: Laggy with nodes Editor + International Fonts

Two main reasons for the lag:
- Allocation of memory with transfer to GPU.
- BLF_cache_clear();

The memory allocation seems to be unnecessary, so I removed it.

Reviewed By: brecht

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

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

M	source/blender/blenfont/intern/blf_glyph.c
M	source/blender/editors/interface/view2d.c

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

diff --git a/source/blender/blenfont/intern/blf_glyph.c b/source/blender/blenfont/intern/blf_glyph.c
index 535366b78fa..ba464c76bd1 100644
--- a/source/blender/blenfont/intern/blf_glyph.c
+++ b/source/blender/blenfont/intern/blf_glyph.c
@@ -265,11 +265,9 @@ static void blf_glyph_cache_texture(FontBLF *font, GlyphCacheBLF *gc)
     gc->p2_height = font->tex_size_max;
   }
 
-  unsigned char *pixels = MEM_callocN((size_t)gc->p2_width * (size_t)gc->p2_height,
-                                      "BLF texture init");
   GPUTexture *tex = GPU_texture_create_nD(
-      gc->p2_width, gc->p2_height, 0, 2, pixels, GPU_R8, GPU_DATA_UNSIGNED_BYTE, 0, false, error);
-  MEM_freeN(pixels);
+      gc->p2_width, gc->p2_height, 0, 2, NULL, GPU_R8, GPU_DATA_UNSIGNED_BYTE, 0, false, error);
+
   gc->textures[gc->texture_current] = tex;
   GPU_texture_bind(tex, 0);
   GPU_texture_wrap_mode(tex, false);
diff --git a/source/blender/editors/interface/view2d.c b/source/blender/editors/interface/view2d.c
index 517d8ca51a3..3ee4d6a085e 100644
--- a/source/blender/editors/interface/view2d.c
+++ b/source/blender/editors/interface/view2d.c
@@ -1123,7 +1123,8 @@ void UI_view2d_zoom_cache_reset(void)
   /* While scaling we can accumulate fonts at many sizes (~20 or so).
    * Not an issue with embedded font, but can use over 500Mb with i18n ones! See [#38244]. */
 
-  /* note: only some views draw text, we could check for this case to avoid clearning cache */
+  /* note: This can be very bad for performance.
+   *       Only some views draw text, we could check for this case to avoid clearning cache. */
   BLF_cache_clear();
 }



More information about the Bf-blender-cvs mailing list