Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2015-05-19 10:31:37 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2015-05-19 10:42:07 +0300
commitda34136de1093e7da9bc10881d11e2f553f4d8d0 (patch)
tree55baa34238e4c34a00852d798541cd06d530b792 /intern/cycles/render
parentf868be62950c06ad348d8326f9cbd6d6c285bfcb (diff)
Cycles: Check for validity of the tiles arrays in progressive refine
In certain configurations (for example when start resolution is set to small value for background render and progressive refine enabled) number of tiles might change in the tile manager. This situation will confuse progressive refine feature and likely cause crash. We might also add some settings verification in the session constructor, but having an assert with brief explanation about what's wrong should already be much better than nothing.
Diffstat (limited to 'intern/cycles/render')
-rw-r--r--intern/cycles/render/session.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp
index 275de4d15d8..b880a62f4de 100644
--- a/intern/cycles/render/session.cpp
+++ b/intern/cycles/render/session.cpp
@@ -409,6 +409,11 @@ bool Session::acquire_tile(Device *tile_device, RenderTile& rtile)
if(tile_buffers.size() == 0)
tile_buffers.resize(tile_manager.state.num_tiles, NULL);
+ /* In certain circumstances number of tiles in the tile manager could
+ * be changed. This is not supported by the progressive refine feature.
+ */
+ assert(tile_buffers.size() == tile_manager.state.num_tiles);
+
tilebuffers = tile_buffers[tile.index];
if(tilebuffers == NULL) {
tilebuffers = new RenderBuffers(tile_device);