diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2020-09-16 21:15:56 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2020-09-16 21:17:03 +0300 |
commit | 1fb7f36acb04cd4e158a376cecffcd1468c24393 (patch) | |
tree | a9dc098a9ec99789b92f2aa958a0f91a235892e0 /source/blender/draw | |
parent | 5cf6f5e66d2c4601098975a7ab5dde3fd0f35ec3 (diff) |
Fix T79315 Normals Overlays broken with hidden geometry
Was caused by non-initialized variables before a return inside
the vertex shader.
Diffstat (limited to 'source/blender/draw')
-rw-r--r-- | source/blender/draw/engines/overlay/shaders/edit_mesh_normal_vert.glsl | 7 |
1 files changed, 4 insertions, 3 deletions
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; |