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
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2020-09-16 21:15:56 +0300
committerClément Foucault <foucault.clem@gmail.com>2020-09-16 21:17:03 +0300
commit1fb7f36acb04cd4e158a376cecffcd1468c24393 (patch)
treea9dc098a9ec99789b92f2aa958a0f91a235892e0 /source/blender/draw
parent5cf6f5e66d2c4601098975a7ab5dde3fd0f35ec3 (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.glsl7
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;