Commit: 158a1de4fba657ae9a204d818dcc3efc27691da0
Author: Clément Foucault
Date:   Tue Feb 27 15:50:34 2018 +0100
Branches: blender2.8
https://developer.blender.org/rB158a1de4fba657ae9a204d818dcc3efc27691da0

DRW: Fix multithreading conflict with material previews.

===================================================================

M       source/blender/draw/intern/draw_manager.c

===================================================================

diff --git a/source/blender/draw/intern/draw_manager.c 
b/source/blender/draw/intern/draw_manager.c
index d9c564fd137..dafd16be270 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -3376,6 +3376,10 @@ void DRW_notify_view_update(const DRWUpdateContext 
*update_ctx)
                return;
        }
 
+       /* XXX Really nasty locking. But else this could
+        * be executed by the material previews thread
+        * while rendering a viewport. */
+       BLI_mutex_lock(&g_ogl_context_mutex);
 
        /* Reset before using it. */
        memset(&DST, 0x0, sizeof(DST));
@@ -3400,6 +3404,8 @@ void DRW_notify_view_update(const DRWUpdateContext 
*update_ctx)
        DST.viewport = NULL;
 
        drw_engines_disable();
+
+       BLI_mutex_unlock(&g_ogl_context_mutex);
 }
 
 /** \} */

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to