diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-10-07 17:05:51 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-10-07 17:05:51 +0300 |
commit | 33297db9de8f9313ed6975bd3645c45093e7c0e6 (patch) | |
tree | c0590025470ae2df125a13410f5a0e1582c128e9 /source | |
parent | 90f5e61b72550bfe1e371626e99d3342214ce7ff (diff) |
OpenGL: Do not schedule new frames for write if error happens
Also do not attempt to write any already scheduled frames.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/editors/render/render_opengl.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/source/blender/editors/render/render_opengl.c b/source/blender/editors/render/render_opengl.c index db0ffb90344..3737c32a140 100644 --- a/source/blender/editors/render/render_opengl.c +++ b/source/blender/editors/render/render_opengl.c @@ -841,6 +841,11 @@ static void write_result_func(TaskPool * __restrict pool, const bool is_movie = BKE_imtype_is_movie(scene->r.im_format.imtype); const int cfra = task_data->cfra; bool ok; + /* Don't attempt to write if we've got an error. */ + if (!oglrender->pool_ok) { + RE_FreeRenderResult(rr); + return; + } /* Construct local thread0safe copy of reports structure which we can * safely pass to the underlying functions. */ @@ -907,6 +912,7 @@ static void write_result_func(TaskPool * __restrict pool, static bool schedule_write_result(OGLRender *oglrender, RenderResult *rr) { if (!oglrender->pool_ok) { + RE_FreeRenderResult(rr); return false; } Scene *scene = oglrender->scene; |