diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2019-03-27 21:15:23 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2019-03-27 21:15:32 +0300 |
commit | 96d200775a69a86fb491841ef171d2131841442f (patch) | |
tree | ea467ee9ac4eb0595565c84673c1d940d1c0c71e | |
parent | 6d1921dd81664c74318b62ae1b2d5e609abce1b4 (diff) |
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.
-rw-r--r-- | source/blender/draw/intern/draw_manager.c | 6 |
1 files changed, 6 insertions, 0 deletions
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); |