From 96d200775a69a86fb491841ef171d2131841442f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Wed, 27 Mar 2019 19:15:23 +0100 Subject: Fix T62997 Eevee: visual artifacts during irradiance volume baking Seems to be a problem with Nvidia drivers. glFlush does not work but glFinish does ensure correct multithreading. --- source/blender/draw/intern/draw_manager.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'source/blender/draw') diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c index f8438742ed8..9f956717fb2 100644 --- a/source/blender/draw/intern/draw_manager.c +++ b/source/blender/draw/intern/draw_manager.c @@ -2008,6 +2008,12 @@ void DRW_custom_pipeline( GPU_viewport_free(DST.viewport); GPU_framebuffer_restore(); + /* The use of custom pipeline in other thread using the same + * resources as the main thread (viewport) may lead to data + * races and undefined behavior on certain drivers. Using + * GPU_finish to sync seems to fix the issue. (see T62997) */ + GPU_finish(); + #ifdef DEBUG /* Avoid accidental reuse. */ drw_state_ensure_not_reused(&DST); -- cgit v1.2.3