Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2018-08-15 18:41:36 +0300
committerClément Foucault <foucault.clem@gmail.com>2018-08-17 00:57:59 +0300
commit32e57fe4e76576c9fd628486d0845fd83bb8c51f (patch)
tree3c33531e22e91ff289bcec9e7edb699f7c817e99 /source
parentd63c181887ab2b9ae5e2359d58f65883ce8a849e (diff)
GPUFramebuffer: Fix wrong stencil clearing
Diffstat (limited to 'source')
-rw-r--r--source/blender/draw/engines/eevee/eevee_engine.c2
-rw-r--r--source/blender/draw/engines/eevee/eevee_render.c2
-rw-r--r--source/blender/draw/engines/workbench/workbench_deferred.c2
-rw-r--r--source/blender/gpu/intern/gpu_framebuffer.c3
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);