Optimization: Edit Mesh Overlay
authormano-wii <germano.costa@ig.com.br>
Wed, 17 Oct 2018 18:45:58 +0000 (15:45 -0300)
committermano-wii <germano.costa@ig.com.br>
Wed, 17 Oct 2018 18:46:58 +0000 (15:46 -0300)
In tests with edit_cage: performance jumped from 9.37ms to 9.17ms.

source/blender/draw/modes/shaders/edit_mesh_overlay_geom_tri.glsl

index 908bb531a60a7b24630056e3171c986fad8fdb22..f36a17dcb70096f7c95ff0252ce7ea1102163a4d 100644 (file)
@@ -86,12 +86,11 @@ void doVertexOfs(int v, vec2 fixvec)
 
 void mask_edge_flag(int v, ivec3 eflag)
 {
-       int vbe = (v + 2) % 3;
        int vaf = (v + 1) % 3;
 
        /* Only shade the edge that we are currently drawing.
         * (fix corner bleeding) */
-       flag[vbe] |= (EDGE_EXISTS & eflag[vbe]);
+       flag = eflag;
        flag[vaf] &= ~EDGE_EXISTS;
        flag[v]   &= ~EDGE_EXISTS;
 }
@@ -167,8 +166,6 @@ void main()
        /* Remember that we are assuming the last vertex
         * of a triangle is the provoking vertex (decide what flat attribs are). */
 
-       flag = eflag;
-
        if ((eflag[2] & EDGE_EXISTS) != 0) {
                /* Do 0 -> 1 edge strip */
                faceColor = vec4(fcol.rgb, 0.0);