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>2013-01-15 11:56:38 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2013-01-15 11:56:38 +0400
commit440ef7356aa45f908b755489423d06209514f875 (patch)
treec578a2a3ab999041491b55dc02364751f26896dd /source/blender/compositor/operations
parentf9133c5ccc31c1de836e6129662aed510441d424 (diff)
Two threading issues:
- Drawing masks in image editor requires LOCK_DRAW_IMAGE around ED_space_image_get* functions since they'll acquire image buffer. Lock is needed because viewers will be modified directly in compositor (see commend in draw_image_main) - Seems that was wrong order of invalidating render result and viewer image invalidation happened in Composite node, which could easily lead to thread lock.
Diffstat (limited to 'source/blender/compositor/operations')
-rw-r--r--source/blender/compositor/operations/COM_CompositorOperation.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/source/blender/compositor/operations/COM_CompositorOperation.cpp b/source/blender/compositor/operations/COM_CompositorOperation.cpp
index 141d071dddc..e6a49082a71 100644
--- a/source/blender/compositor/operations/COM_CompositorOperation.cpp
+++ b/source/blender/compositor/operations/COM_CompositorOperation.cpp
@@ -91,14 +91,14 @@ void CompositorOperation::deinitExecution()
}
}
- BLI_lock_thread(LOCK_DRAW_IMAGE);
- BKE_image_signal(BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result"), NULL, IMA_SIGNAL_FREE);
- BLI_unlock_thread(LOCK_DRAW_IMAGE);
-
if (re) {
RE_ReleaseResult(re);
re = NULL;
}
+
+ BLI_lock_thread(LOCK_DRAW_IMAGE);
+ BKE_image_signal(BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result"), NULL, IMA_SIGNAL_FREE);
+ BLI_unlock_thread(LOCK_DRAW_IMAGE);
}
else {
if (this->m_outputBuffer) {