[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60474] trunk/blender: Mark some CCG funcrions as inlined

Sergey Sharybin sergey.vfx at gmail.com
Tue Oct 1 11:17:36 CEST 2013


Revision: 60474
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60474
Author:   nazgul
Date:     2013-10-01 09:17:35 +0000 (Tue, 01 Oct 2013)
Log Message:
-----------
Mark some CCG funcrions as inlined

This seems to be giving speedup up to 10% in own tests.

--
svn merge -r60104:60105 ^/branches/soc-2013-depsgraph_mt

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60104

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

Property Changed:
----------------
    trunk/blender/
    trunk/blender/source/blender/editors/interface/interface.c
    trunk/blender/source/blender/editors/space_outliner/


Property changes on: trunk/blender
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/ge_dev:58091-58422
/branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/soc-2011-tomato:42376,42378-42379,42383,42385,42395,42397-42400,42407,42411,42418,42443-42444,42446,42467,42472,42486,42650-42652,42654-42655,42709-42710,42733-42734,42801,43872,44130,44141,44147-44149,44151-44152,44229-44230,45623-45625,46037,48089,48092,48551-48552,48679,48790,48792-48793,49076,49087,49292,49294,49466,49894,50052,50126,52854-52856,54573,58822,58989
/branches/soc-2013-depsgraph_mt:57516,57900,57939-57940,57945,57958-57961,58151,58155-58156,58169,58277-58279,58282-58283,58711,58787,58789,58796,59086-59087,59163,59166,59170,59181,59259-59260
/branches/soc-2013-dingto:57424,57487,57507,57525,57599,57670,57918-57919,57981,58091,58245,58253,58587,58772,58774-58775,58828,58835,59032,59214,59220,59251,59601
/tags/blender-2.67b-release/blender:57122
   + /branches/ge_dev:58091-58422
/branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/soc-2011-tomato:42376,42378-42379,42383,42385,42395,42397-42400,42407,42411,42418,42443-42444,42446,42467,42472,42486,42650-42652,42654-42655,42709-42710,42733-42734,42801,43872,44130,44141,44147-44149,44151-44152,44229-44230,45623-45625,46037,48089,48092,48551-48552,48679,48790,48792-48793,49076,49087,49292,49294,49466,49894,50052,50126,52854-52856,54573,58822,58989
/branches/soc-2013-depsgraph_mt:57516,57900,57939-57940,57945,57958-57961,58151,58155-58156,58169,58277-58279,58282-58283,58711,58787,58789,58796,59086-59087,59163,59166,59170,59181,59259-59260,60105
/branches/soc-2013-dingto:57424,57487,57507,57525,57599,57670,57918-57919,57981,58091,58245,58253,58587,58772,58774-58775,58828,58835,59032,59214,59220,59251,59601
/tags/blender-2.67b-release/blender:57122

Modified: trunk/blender/source/blender/blenkernel/BKE_subsurf.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_subsurf.h	2013-10-01 08:55:38 UTC (rev 60473)
+++ trunk/blender/source/blender/blenkernel/BKE_subsurf.h	2013-10-01 09:17:35 UTC (rev 60474)
@@ -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: trunk/blender/source/blender/blenkernel/intern/CCGSubSurf.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/CCGSubSurf.c	2013-10-01 08:55:38 UTC (rev 60473)
+++ trunk/blender/source/blender/blenkernel/intern/CCGSubSurf.c	2013-10-01 09:17:35 UTC (rev 60474)
@@ -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: trunk/blender/source/blender/blenkernel/intern/multires.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/multires.c	2013-10-01 08:55:38 UTC (rev 60473)
+++ trunk/blender/source/blender/blenkernel/intern/multires.c	2013-10-01 09:17:35 UTC (rev 60474)
@@ -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: trunk/blender/source/blender/blenkernel/intern/paint.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/paint.c	2013-10-01 08:55:38 UTC (rev 60473)
+++ trunk/blender/source/blender/blenkernel/intern/paint.c	2013-10-01 09:17:35 UTC (rev 60474)
@@ -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: trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c	2013-10-01 08:55:38 UTC (rev 60473)
+++ trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c	2013-10-01 09:17:35 UTC (rev 60474)
@@ -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: trunk/blender/source/blender/blenloader/intern/writefile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/writefile.c	2013-10-01 08:55:38 UTC (rev 60473)
+++ trunk/blender/source/blender/blenloader/intern/writefile.c	2013-10-01 09:17:35 UTC (rev 60474)
@@ -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);


Property changes on: trunk/blender/source/blender/editors/interface/interface.c
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/ge_candy/source/blender/editors/interface/interface.c:45070-46163

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list