[Bf-blender-cvs] [158a1de4fba] blender2.8: DRW: Fix multithreading conflict with material previews.

Clément Foucault noreply at git.blender.org
Tue Feb 27 15:51:06 CET 2018


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);
 }
 
 /** \} */



More information about the Bf-blender-cvs mailing list