From 1fb7f36acb04cd4e158a376cecffcd1468c24393 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Wed, 16 Sep 2020 20:15:56 +0200 Subject: Fix T79315 Normals Overlays broken with hidden geometry Was caused by non-initialized variables before a return inside the vertex shader. --- .../draw/engines/overlay/shaders/edit_mesh_normal_vert.glsl | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'source/blender/draw') diff --git a/source/blender/draw/engines/overlay/shaders/edit_mesh_normal_vert.glsl b/source/blender/draw/engines/overlay/shaders/edit_mesh_normal_vert.glsl index c2aeae4df91..007495f84e0 100644 --- a/source/blender/draw/engines/overlay/shaders/edit_mesh_normal_vert.glsl +++ b/source/blender/draw/engines/overlay/shaders/edit_mesh_normal_vert.glsl @@ -20,11 +20,14 @@ void main() { GPU_INTEL_VERTEX_SHADER_WORKAROUND + /* Avoid undefined behavior after return. */ + finalColor = vec4(0.0); + gl_Position = vec4(0.0); + vec3 nor; /* Select the right normal by checking if the generic attribute is used. */ if (!all(equal(lnor.xyz, vec3(0)))) { if (lnor.w < 0.0) { - finalColor = vec4(0.0); return; } nor = lnor.xyz; @@ -32,7 +35,6 @@ void main() } else if (!all(equal(vnor.xyz, vec3(0)))) { if (vnor.w < 0.0) { - finalColor = vec4(0.0); return; } nor = vnor.xyz; @@ -41,7 +43,6 @@ void main() else { nor = norAndFlag.xyz; if (all(equal(nor, vec3(0)))) { - finalColor = vec4(0.0); return; } finalColor = colorNormal; -- cgit v1.2.3