Edit Mesh: Add comments explaining weirdness in the code.
authormano-wii <germano.costa@ig.com.br>
Mon, 15 Oct 2018 12:50:31 +0000 (09:50 -0300)
committermano-wii <germano.costa@ig.com.br>
Mon, 15 Oct 2018 12:50:31 +0000 (09:50 -0300)
source/blender/draw/modes/shaders/edit_mesh_overlay_geom_tri.glsl

index 9e56a1f2b3c9dea5792c6337f3da56ca4fbf466a..a2f91381d574f995fe06d46b9929c9699f8751a9 100644 (file)
@@ -41,12 +41,7 @@ out float facing;
 #define Z_OFFSET 0.0
 #endif
 
-/* project to screen space */
-vec2 proj(vec4 pos)
-{
-       return (0.5 * (pos.xy / pos.w) + 0.5) * viewportSize;
-}
-
+/* Some bugged AMD drivers need these global variables. See T55961 */
 #ifdef VERTEX_SELECTION
 vec3 vertex_color[3];
 #endif
@@ -55,6 +50,12 @@ vec3 vertex_color[3];
 float v_facing[3];
 #endif
 
+/* project to screen space */
+vec2 proj(vec4 pos)
+{
+       return (0.5 * (pos.xy / pos.w) + 0.5) * viewportSize;
+}
+
 void doVertex(int v)
 {
 #ifdef VERTEX_SELECTION
@@ -169,6 +170,7 @@ void main()
 #endif
 
 #ifdef VERTEX_FACING
+       /* Weird but some buggy AMD drivers need this. */
        v_facing[0] = vFacing[0];
        v_facing[1] = vFacing[1];
        v_facing[2] = vFacing[2];