Blender Git Loki
Git Commits -> Revision e63c947
Revision e63c947 by Antonio Vazquez (master) November 20, 2018, 19:05 (GMT) |
GP: Refactor drawing engine to single VBO This is part of T57829. Reduce the number of batches used to only one by shader type. This reduces GPU overhead and increase a lot the FPS. As the number of batches is small, the time to allocate and free memory was reduced in 90% or more. Also the code has been simplified and all batch management has been removed because this is not necessary. Now, all shading groups are created after all vertex buffer data for all strokes has been created using DRW_shgroup_call_range_add(). All batch cache data has been moved to the Object runtime struct and not as before where some parts (derived data) were saved inside GPD datablock. For particles, now the code is faster and cleaner and gets better FPS. Thanks to Cl�ment Foucault for his help and advices to improve speed. |
Commit Details:
Full Hash: e63c9472049f64221b34c4d2dd3101086b61520e
Parent Commit: 140d383
Lines Changed: +932, -785
28 Modified Paths:
/source/blender/blenkernel/BKE_gpencil.h (+0, -1) (Diff)
/source/blender/blenkernel/BKE_gpencil_modifier.h (+5, -0) (Diff)
/source/blender/blenkernel/intern/gpencil.c (+0, -48) (Diff)
/source/blender/blenloader/intern/readfile.c (+0, -2) (Diff)
/source/blender/draw/engines/gpencil/gpencil_cache_utils.c (+93, -153) (Diff)
/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c (+126, -120) (Diff)
/source/blender/draw/engines/gpencil/gpencil_draw_utils.c (+567, -385) (Diff)
/source/blender/draw/engines/gpencil/gpencil_engine.c (+22, -45) (Diff)
/source/blender/draw/engines/gpencil/gpencil_engine.h (+70, -25) (Diff)
/source/blender/editors/gpencil/gpencil_data.c (+0, -2) (Diff)
/source/blender/editors/gpencil/gpencil_utils.c (+3, -1) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpencilarmature.c (+1, -0) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpencilarray.c (+8, -0) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpencilbuild.c (+1, -0) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpencilcolor.c (+1, -0) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpencilhook.c (+1, -0) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpencillattice.c (+1, -0) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpencilmirror.c (+16, -0) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpencilnoise.c (+1, -0) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpenciloffset.c (+1, -0) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpencilopacity.c (+1, -0) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpencilsimplify.c (+1, -0) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpencilsmooth.c (+1, -0) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpencilsubdiv.c (+9, -0) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpencilthick.c (+1, -0) (Diff)
/source/blender/gpencil_modifiers/intern/mod_gpenciltime.c (+1, -0) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpenciltint.c (+1, -0) (Diff)
/source/blender/makesdna/DNA_gpencil_types.h (+0, -3) (Diff)
/source/blender/blenkernel/BKE_gpencil_modifier.h (+5, -0) (Diff)
/source/blender/blenkernel/intern/gpencil.c (+0, -48) (Diff)
/source/blender/blenloader/intern/readfile.c (+0, -2) (Diff)
/source/blender/draw/engines/gpencil/gpencil_cache_utils.c (+93, -153) (Diff)
/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c (+126, -120) (Diff)
/source/blender/draw/engines/gpencil/gpencil_draw_utils.c (+567, -385) (Diff)
/source/blender/draw/engines/gpencil/gpencil_engine.c (+22, -45) (Diff)
/source/blender/draw/engines/gpencil/gpencil_engine.h (+70, -25) (Diff)
/source/blender/editors/gpencil/gpencil_data.c (+0, -2) (Diff)
/source/blender/editors/gpencil/gpencil_utils.c (+3, -1) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpencilarmature.c (+1, -0) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpencilarray.c (+8, -0) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpencilbuild.c (+1, -0) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpencilcolor.c (+1, -0) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpencilhook.c (+1, -0) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpencillattice.c (+1, -0) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpencilmirror.c (+16, -0) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpencilnoise.c (+1, -0) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpenciloffset.c (+1, -0) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpencilopacity.c (+1, -0) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpencilsimplify.c (+1, -0) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpencilsmooth.c (+1, -0) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpencilsubdiv.c (+9, -0) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpencilthick.c (+1, -0) (Diff)
/source/blender/gpencil_modifiers/intern/mod_gpenciltime.c (+1, -0) (Diff)
/source/blender/gpencil_modifiers/intern/MOD_gpenciltint.c (+1, -0) (Diff)
/source/blender/makesdna/DNA_gpencil_types.h (+0, -3) (Diff)