[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [51618] trunk/blender/intern/cycles/render : Cycles: use simplier strategy in next_tile for viewport rendering
Sergey Sharybin
sergey.vfx at gmail.com
Thu Oct 25 14:03:41 CEST 2012
Revision: 51618
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=51618
Author: nazgul
Date: 2012-10-25 12:03:36 +0000 (Thu, 25 Oct 2012)
Log Message:
-----------
Cycles: use simplier strategy in next_tile for viewport rendering
No need to find tile closest to rendered center in this case, just
return first possible tile. Saves some computation power.
Modified Paths:
--------------
trunk/blender/intern/cycles/render/tile.cpp
trunk/blender/intern/cycles/render/tile.h
Modified: trunk/blender/intern/cycles/render/tile.cpp
===================================================================
--- trunk/blender/intern/cycles/render/tile.cpp 2012-10-25 11:48:56 UTC (rev 51617)
+++ trunk/blender/intern/cycles/render/tile.cpp 2012-10-25 12:03:36 UTC (rev 51618)
@@ -214,11 +214,28 @@
return best;
}
+list<Tile>::iterator TileManager::next_simple_tile(int device)
+{
+ list<Tile>::iterator iter;
+
+ int logical_device = preserve_tile_device? device: 0;
+
+ for(iter = state.tiles.begin(); iter != state.tiles.end(); iter++) {
+ if(iter->device == logical_device && iter->rendering == false)
+ return iter;
+ }
+
+ return state.tiles.end();
+}
+
bool TileManager::next_tile(Tile& tile, int device)
{
list<Tile>::iterator tile_it;
- tile_it = next_center_tile(device);
+ if(background)
+ tile_it = next_center_tile(device);
+ else
+ tile_it = next_simple_tile(device);
if(tile_it != state.tiles.end()) {
tile_it->rendering = true;
Modified: trunk/blender/intern/cycles/render/tile.h
===================================================================
--- trunk/blender/intern/cycles/render/tile.h 2012-10-25 11:48:56 UTC (rev 51617)
+++ trunk/blender/intern/cycles/render/tile.h 2012-10-25 12:03:36 UTC (rev 51618)
@@ -102,7 +102,13 @@
/* slices image into as much pieces as how many devices are rendering this image */
void gen_tiles_sliced();
- list<Tile>::iterator next_center_tile(int device = 0);
+ /* returns closest tile to center of rendered tiles
+ * mimics behavior of blender internal's tile order
+ */
+ list<Tile>::iterator next_center_tile(int device);
+
+ /* returns first unhandled tile starting from left bottom corner of the image */
+ list<Tile>::iterator next_simple_tile(int device);
};
CCL_NAMESPACE_END
More information about the Bf-blender-cvs
mailing list