[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60105] branches/soc-2013-depsgraph_mt/ source/blender: Mark some CCG funcrions as inlined

Sergey Sharybin sergey.vfx at gmail.com
Fri Sep 13 15:22:18 CEST 2013


Revision: 60105
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60105
Author:   nazgul
Date:     2013-09-13 13:22:18 +0000 (Fri, 13 Sep 2013)
Log Message:
-----------
Mark some CCG funcrions as inlined

This seems to be giving speedup up to 10%
and in fact perhaps the change need to go
to the trunk.

Modified Paths:
--------------
    branches/soc-2013-depsgraph_mt/source/blender/blenkernel/BKE_subsurf.h
    branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/CCGSubSurf.c
    branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/multires.c
    branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/paint.c
    branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/subsurf_ccg.c
    branches/soc-2013-depsgraph_mt/source/blender/blenloader/intern/writefile.c
    branches/soc-2013-depsgraph_mt/source/blender/editors/sculpt_paint/sculpt.c

Modified: branches/soc-2013-depsgraph_mt/source/blender/blenkernel/BKE_subsurf.h
===================================================================
--- branches/soc-2013-depsgraph_mt/source/blender/blenkernel/BKE_subsurf.h	2013-09-13 12:13:30 UTC (rev 60104)
+++ branches/soc-2013-depsgraph_mt/source/blender/blenkernel/BKE_subsurf.h	2013-09-13 13:22:18 UTC (rev 60105)
@@ -72,11 +72,11 @@
 void subsurf_calculate_limit_positions(struct Mesh *me, float (*positions_r)[3]);
 
 /* get gridsize from 'level', level must be greater than zero */
-int ccg_gridsize(int level);
+int BKE_ccg_gridsize(int level);
 
 /* x/y grid coordinates at 'low_level' can be multiplied by the result
  * of this function to convert to grid coordinates at 'high_level' */
-int ccg_factor(int low_level, int high_level);
+int BKE_ccg_factor(int low_level, int high_level);
 
 void subsurf_copy_grid_hidden(struct DerivedMesh *dm,
                               const struct MPoly *mpoly,

Modified: branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/CCGSubSurf.c
===================================================================
--- branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/CCGSubSurf.c	2013-09-13 12:13:30 UTC (rev 60104)
+++ branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/CCGSubSurf.c	2013-09-13 13:22:18 UTC (rev 60105)
@@ -248,7 +248,7 @@
 
 /***/
 
-int ccg_gridsize(int level)
+BLI_INLINE int ccg_gridsize(int level)
 {
 	BLI_assert(level > 0);
 	BLI_assert(level <= CCGSUBSURF_LEVEL_MAX + 1);
@@ -256,15 +256,20 @@
 	return (1 << (level - 1)) + 1;
 }
 
-int ccg_factor(int low_level, int high_level)
+int BKE_ccg_gridsize(int level)
 {
+	return ccg_gridsize(level);
+}
+
+int BKE_ccg_factor(int low_level, int high_level)
+{
 	BLI_assert(low_level > 0 && high_level > 0);
 	BLI_assert(low_level <= high_level);
 
 	return 1 << (high_level - low_level);
 }
 
-static int ccg_edgesize(int level)
+BLI_INLINE int ccg_edgesize(int level)
 {
 	BLI_assert(level > 0);
 	BLI_assert(level <= CCGSUBSURF_LEVEL_MAX + 1);
@@ -272,7 +277,7 @@
 	return 1 + (1 << level);
 }
 
-static int ccg_spacing(int high_level, int low_level)
+BLI_INLINE int ccg_spacing(int high_level, int low_level)
 {
 	BLI_assert(high_level > 0 && low_level > 0);
 	BLI_assert(high_level >= low_level);
@@ -281,7 +286,7 @@
 	return 1 << (high_level - low_level);
 }
 
-static int ccg_edgebase(int level)
+BLI_INLINE int ccg_edgebase(int level)
 {
 	BLI_assert(level > 0);
 	BLI_assert(level <= CCGSUBSURF_LEVEL_MAX + 1);
@@ -742,7 +747,7 @@
 	byte *gridBase = FACE_getCenterData(f) + dataSize * (1 + S * (maxGridSize + maxGridSize * maxGridSize));
 	return (float *) &gridBase[dataSize * (maxGridSize + (y * maxGridSize + x) * spacing) + normalDataOffset];
 }
-static int _face_getVertIndex(CCGFace *f, CCGVert *v)
+BLI_INLINE int _face_getVertIndex(CCGFace *f, CCGVert *v)
 {
 	int i;
 	for (i = 0; i < f->numVerts; i++)
@@ -750,7 +755,7 @@
 			return i;
 	return -1;
 }
-static int _face_getEdgeIndex(CCGFace *f, CCGEdge *e)
+BLI_INLINE int _face_getEdgeIndex(CCGFace *f, CCGEdge *e)
 {
 	int i;
 	for (i = 0; i < f->numVerts; i++)

Modified: branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/multires.c
===================================================================
--- branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/multires.c	2013-09-13 12:13:30 UTC (rev 60104)
+++ branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/multires.c	2013-09-13 13:22:18 UTC (rev 60105)
@@ -114,8 +114,8 @@
                                                    BLI_bitmap *prev_hidden)
 {
 	BLI_bitmap *subd;
-	int hi_gridsize = ccg_gridsize(hi_level);
-	int lo_gridsize = ccg_gridsize(lo_level);
+	int hi_gridsize = BKE_ccg_gridsize(hi_level);
+	int lo_gridsize = BKE_ccg_gridsize(lo_level);
 	int yh, xh, xl, yl, xo, yo, hi_ndx;
 	int offset, factor;
 
@@ -127,7 +127,7 @@
 
 	subd = BLI_BITMAP_NEW(hi_gridsize * hi_gridsize, "MDisps.hidden upsample");
 
-	factor = ccg_factor(lo_level, hi_level);
+	factor = BKE_ccg_factor(lo_level, hi_level);
 	offset = 1 << (hi_level - lo_level - 1);
 
 	/* low-res blocks */
@@ -173,12 +173,12 @@
                                                      int new_level)
 {
 	BLI_bitmap *new_hidden;
-	int new_gridsize = ccg_gridsize(new_level);
-	int old_gridsize = ccg_gridsize(old_level);
+	int new_gridsize = BKE_ccg_gridsize(new_level);
+	int old_gridsize = BKE_ccg_gridsize(old_level);
 	int x, y, factor, old_value;
 
 	BLI_assert(new_level <= old_level);
-	factor = ccg_factor(new_level, old_level);
+	factor = BKE_ccg_factor(new_level, old_level);
 	new_hidden = BLI_BITMAP_NEW(new_gridsize * new_gridsize,
 	                            "downsample hidden");
 
@@ -246,7 +246,7 @@
 {
 	MDisps *mdisps = CustomData_add_layer(&me->ldata, CD_MDISPS,
 	                                      CD_CALLOC, NULL, me->totloop);
-	int gridsize = ccg_gridsize(level);
+	int gridsize = BKE_ccg_gridsize(level);
 	int gridarea = gridsize * gridsize;
 	int i, j, k;
 	
@@ -594,7 +594,7 @@
 static void multires_grid_paint_mask_downsample(GridPaintMask *gpm, int level)
 {
 	if (level < gpm->level) {
-		int gridsize = ccg_gridsize(level);
+		int gridsize = BKE_ccg_gridsize(level);
 		float *data = MEM_callocN(sizeof(float) * gridsize * gridsize,
 		                          "multires_grid_paint_mask_downsample");
 		int x, y;

Modified: branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/paint.c
===================================================================
--- branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/paint.c	2013-09-13 12:13:30 UTC (rev 60104)
+++ branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/paint.c	2013-09-13 13:22:18 UTC (rev 60105)
@@ -359,8 +359,8 @@
 float paint_grid_paint_mask(const GridPaintMask *gpm, unsigned level,
                             unsigned x, unsigned y)
 {
-	int factor = ccg_factor(level, gpm->level);
-	int gridsize = ccg_gridsize(gpm->level);
+	int factor = BKE_ccg_factor(level, gpm->level);
+	int gridsize = BKE_ccg_gridsize(gpm->level);
 	
 	return gpm->data[(y * factor) * gridsize + (x * factor)];
 }

Modified: branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/subsurf_ccg.c
===================================================================
--- branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/subsurf_ccg.c	2013-09-13 12:13:30 UTC (rev 60104)
+++ branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/subsurf_ccg.c	2013-09-13 13:22:18 UTC (rev 60105)
@@ -1064,8 +1064,8 @@
 
 		for (j = 0; j < mpoly[i].totloop; j++) {
 			const MDisps *md = &mdisps[mpoly[i].loopstart + j];
-			int hidden_gridsize = ccg_gridsize(md->level);
-			int factor = ccg_factor(level, md->level);
+			int hidden_gridsize = BKE_ccg_gridsize(md->level);
+			int factor = BKE_ccg_factor(level, md->level);
 			
 			if (!md->hidden)
 				continue;
@@ -1107,8 +1107,8 @@
 			if (!gpm->data)
 				continue;
 
-			factor = ccg_factor(level, gpm->level);
-			gpm_gridsize = ccg_gridsize(gpm->level);
+			factor = BKE_ccg_factor(level, gpm->level);
+			gpm_gridsize = BKE_ccg_gridsize(gpm->level);
 			
 			for (y = 0; y < gridSize; y++) {
 				for (x = 0; x < gridSize; x++) {

Modified: branches/soc-2013-depsgraph_mt/source/blender/blenloader/intern/writefile.c
===================================================================
--- branches/soc-2013-depsgraph_mt/source/blender/blenloader/intern/writefile.c	2013-09-13 12:13:30 UTC (rev 60104)
+++ branches/soc-2013-depsgraph_mt/source/blender/blenloader/intern/writefile.c	2013-09-13 13:22:18 UTC (rev 60105)
@@ -1736,7 +1736,7 @@
 		for (i = 0; i < count; ++i) {
 			GridPaintMask *gpm = &grid_paint_mask[i];
 			if (gpm->data) {
-				const int gridsize = ccg_gridsize(gpm->level);
+				const int gridsize = BKE_ccg_gridsize(gpm->level);
 				writedata(wd, DATA,
 				          sizeof(*gpm->data) * gridsize * gridsize,
 				          gpm->data);

Modified: branches/soc-2013-depsgraph_mt/source/blender/editors/sculpt_paint/sculpt.c
===================================================================
--- branches/soc-2013-depsgraph_mt/source/blender/editors/sculpt_paint/sculpt.c	2013-09-13 12:13:30 UTC (rev 60104)
+++ branches/soc-2013-depsgraph_mt/source/blender/editors/sculpt_paint/sculpt.c	2013-09-13 13:22:18 UTC (rev 60105)
@@ -4859,7 +4859,7 @@
 	if (mmd && !CustomData_has_layer(&me->ldata, CD_GRID_PAINT_MASK)) {
 		GridPaintMask *gmask;
 		int level = max_ii(1, mmd->sculptlvl);
-		int gridsize = ccg_gridsize(level);
+		int gridsize = BKE_ccg_gridsize(level);
 		int gridarea = gridsize * gridsize;
 		int i, j;
 




More information about the Bf-blender-cvs mailing list