diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-10-31 14:32:09 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-10-31 14:32:18 +0300 |
commit | 117bc96ce88474d3c6b28e669e6ee339441051fb (patch) | |
tree | 92e2e8e07752b50aa18995f5e6bbd4ea2c550ce1 /source/blender/draw/engines/eevee/eevee_occlusion.c | |
parent | a248c2001a0a037b921355a6caaa161c270c762f (diff) |
Eevee: Fix dot corruption on intel HD5xx/6xx series
It is caused by some sync issue apparently. Adding glFlush in these
two places fixes it.
Caveat: it might have a small perf impact (did not measure it).
The fix is limited to the affected driver/operating systems.
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_occlusion.c')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_occlusion.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_occlusion.c b/source/blender/draw/engines/eevee/eevee_occlusion.c index 8ede22cda5a..03aee102136 100644 --- a/source/blender/draw/engines/eevee/eevee_occlusion.c +++ b/source/blender/draw/engines/eevee/eevee_occlusion.c @@ -37,6 +37,9 @@ #include "eevee_private.h" +#include "GPU_extensions.h" +#include "GPU_state.h" + static struct { /* Ground Truth Ambient Occlusion */ struct GPUShader *gtao_sh; @@ -250,6 +253,13 @@ void EEVEE_occlusion_compute( DRW_draw_pass(psl->ao_horizon_search); } + if (GPU_mip_render_workaround()) { + /* Fix dot corruption on intel HD5XX/HD6XX series. + * It seems affected drivers are the same that needs + * GPU_mip_render_workaround. */ + GPU_flush(); + } + /* Restore */ GPU_framebuffer_bind(fbl->main_fb); |