[Bf-blender-cvs] [1fb7f36acb0] master: Fix T79315 Normals Overlays broken with hidden geometry

Clément Foucault noreply at git.blender.org
Wed Sep 16 20:17:07 CEST 2020


Commit: 1fb7f36acb04cd4e158a376cecffcd1468c24393
Author: Clément Foucault
Date:   Wed Sep 16 20:15:56 2020 +0200
Branches: master
https://developer.blender.org/rB1fb7f36acb04cd4e158a376cecffcd1468c24393

Fix T79315 Normals Overlays broken with hidden geometry

Was caused by non-initialized variables before a return inside
the vertex shader.

===================================================================

M	source/blender/draw/engines/overlay/shaders/edit_mesh_normal_vert.glsl

===================================================================

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;



More information about the Bf-blender-cvs mailing list