[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