Blender Git Commit Log
Git Commits -> Revision 3e6edf5
September 8, 2021, 07:49 (GMT) |
Sculpt dyntopo: * BLI_table_gset now internally uses a SmallHash instead of a GHash. Profiling revealed this to be quite a bit faster. * This is something of a stopgap until C++-afication of pbvh, when we'll have our pick of a bunch of really nice C++ hashmap libs. * pbvh_collapse_edge bites the dust; dyntopo now uses BM_collapse_edge. Of the three topology operations (subdivide edge, collapse edge, dissolve 3/4 valence vertex) only dissolve still has a dyntopo-specific implementation. * Fixed a bunch of annoying memory corruption bugs. * Non-manifold triangles are now detected in more places. SmallHash changes: * Enabled removal * Fixed infinite loop bug caused by improperly counting free*d* cells versus free cells. * Added a BLI_smallhash_ensure_p method that works just like the GHash version. Sculpt replay system * Roughed out a simple system to record and play back sculpt strokes using a simple text format. * This is exclusively for performance profiling and unit tests. * For each brush stroke the system saves a copy of the active StrokeCache and PaintStroke and parts of Sculpt. This should make profiling DRAM thrashing a lot easier. |
Commit Details:
Full Hash: 3e6edf5278e8fbc1f7163f62b67074867b531bfc
Parent Commit: 37bce7b
Lines Changed: +2433, -380
1 Added Path:
/source/blender/editors/sculpt_paint/sculpt_replay.c (+1233, -0) (View)
18 Modified Paths:
/source/blender/blenkernel/BKE_pbvh.h (+1, -1) (Diff)
/source/blender/blenkernel/intern/dyntopo.c (+764, -184) (Diff)
/source/blender/blenkernel/intern/pbvh.c (+5, -0) (Diff)
/source/blender/blenkernel/intern/pbvh_bmesh.c (+51, -120) (Diff)
/source/blender/blenkernel/intern/pbvh_intern.h (+2, -0) (Diff)
/source/blender/blenlib/BLI_smallhash.h (+1, -1) (Diff)
/source/blender/blenlib/intern/BLI_table_gset.c (+46, -22) (Diff)
/source/blender/blenlib/intern/smallhash.c (+55, -11) (Diff)
/source/blender/bmesh/intern/bmesh_log.c (+31, -0) (Diff)
/source/blender/bmesh/intern/bmesh_mesh.c (+6, -2) (Diff)
/source/blender/editors/sculpt_paint/CMakeLists.txt (+1, -0) (Diff)
/source/blender/editors/sculpt_paint/sculpt.c (+35, -12) (Diff)
/source/blender/editors/sculpt_paint/sculpt_automasking.c (+9, -11) (Diff)
/source/blender/editors/sculpt_paint/sculpt_detail.c (+1, -1) (Diff)
/source/blender/editors/sculpt_paint/sculpt_intern.h (+29, -9) (Diff)
/source/blender/editors/sculpt_paint/sculpt_smooth.c (+18, -6) (Diff)
/source/blender/editors/sculpt_paint/sculpt_undo.c (+58, -0) (Diff)
/source/blender/makesrna/intern/rna_sculpt_paint.c (+87, -0) (Diff)
/source/blender/blenkernel/intern/dyntopo.c (+764, -184) (Diff)
/source/blender/blenkernel/intern/pbvh.c (+5, -0) (Diff)
/source/blender/blenkernel/intern/pbvh_bmesh.c (+51, -120) (Diff)
/source/blender/blenkernel/intern/pbvh_intern.h (+2, -0) (Diff)
/source/blender/blenlib/BLI_smallhash.h (+1, -1) (Diff)
/source/blender/blenlib/intern/BLI_table_gset.c (+46, -22) (Diff)
/source/blender/blenlib/intern/smallhash.c (+55, -11) (Diff)
/source/blender/bmesh/intern/bmesh_log.c (+31, -0) (Diff)
/source/blender/bmesh/intern/bmesh_mesh.c (+6, -2) (Diff)
/source/blender/editors/sculpt_paint/CMakeLists.txt (+1, -0) (Diff)
/source/blender/editors/sculpt_paint/sculpt.c (+35, -12) (Diff)
/source/blender/editors/sculpt_paint/sculpt_automasking.c (+9, -11) (Diff)
/source/blender/editors/sculpt_paint/sculpt_detail.c (+1, -1) (Diff)
/source/blender/editors/sculpt_paint/sculpt_intern.h (+29, -9) (Diff)
/source/blender/editors/sculpt_paint/sculpt_smooth.c (+18, -6) (Diff)
/source/blender/editors/sculpt_paint/sculpt_undo.c (+58, -0) (Diff)
/source/blender/makesrna/intern/rna_sculpt_paint.c (+87, -0) (Diff)