diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-08-15 18:41:36 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-08-17 00:57:59 +0300 |
commit | 32e57fe4e76576c9fd628486d0845fd83bb8c51f (patch) | |
tree | 3c33531e22e91ff289bcec9e7edb699f7c817e99 /source | |
parent | d63c181887ab2b9ae5e2359d58f65883ce8a849e (diff) |
GPUFramebuffer: Fix wrong stencil clearing
Diffstat (limited to 'source')
4 files changed, 5 insertions, 4 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_engine.c b/source/blender/draw/engines/eevee/eevee_engine.c index 8c66ba057b5..c1e66033592 100644 --- a/source/blender/draw/engines/eevee/eevee_engine.c +++ b/source/blender/draw/engines/eevee/eevee_engine.c @@ -198,7 +198,7 @@ static void eevee_draw_background(void *vedata) while (loop_len--) { float clear_col[4] = {0.0f, 0.0f, 0.0f, 0.0f}; float clear_depth = 1.0f; - uint clear_stencil = 0xFF; + uint clear_stencil = 0x0; uint primes[3] = {2, 3, 7}; double offset[3] = {0.0, 0.0, 0.0}; double r[3]; diff --git a/source/blender/draw/engines/eevee/eevee_render.c b/source/blender/draw/engines/eevee/eevee_render.c index bc1bd97bdde..80d8c066a44 100644 --- a/source/blender/draw/engines/eevee/eevee_render.c +++ b/source/blender/draw/engines/eevee/eevee_render.c @@ -466,7 +466,7 @@ void EEVEE_render_draw(EEVEE_Data *vedata, RenderEngine *engine, RenderLayer *rl while (render_samples < tot_sample && !RE_engine_test_break(engine)) { float clear_col[4] = {0.0f, 0.0f, 0.0f, 0.0f}; float clear_depth = 1.0f; - uint clear_stencil = 0xFF; + uint clear_stencil = 0x00; uint primes[3] = {2, 3, 7}; double offset[3] = {0.0, 0.0, 0.0}; double r[3]; diff --git a/source/blender/draw/engines/workbench/workbench_deferred.c b/source/blender/draw/engines/workbench/workbench_deferred.c index 889aeb0257b..ecffade45c3 100644 --- a/source/blender/draw/engines/workbench/workbench_deferred.c +++ b/source/blender/draw/engines/workbench/workbench_deferred.c @@ -861,7 +861,7 @@ void workbench_deferred_draw_background(WORKBENCH_Data *vedata) WORKBENCH_PrivateData *wpd = stl->g_data; const float clear_depth = 1.0f; const float clear_color[4] = {0.0f, 0.0f, 0.0f, 0.0f}; - uint clear_stencil = 0xFF; + uint clear_stencil = 0x00; DRW_stats_group_start("Clear Background"); GPU_framebuffer_bind(fbl->prepass_fb); diff --git a/source/blender/gpu/intern/gpu_framebuffer.c b/source/blender/gpu/intern/gpu_framebuffer.c index 56abe040f32..21bfae00faa 100644 --- a/source/blender/gpu/intern/gpu_framebuffer.c +++ b/source/blender/gpu/intern/gpu_framebuffer.c @@ -500,7 +500,8 @@ void GPU_framebuffer_clear( glClearDepth(clear_depth); } if (buffers & GPU_STENCIL_BIT) { - glStencilMask(clear_stencil); + glStencilMask(0xFF); + glClearStencil(clear_stencil); } GLbitfield mask = convert_buffer_bits_to_gl(buffers); |