         float scale = -dot(local_step, (normal));                             \
         if (scale >= 0.0) {                                                   \
             if (dist > opaque_start * scale) {                                \
-                start_corner = info;                                          \
+                SET_CORNER(start_corner, info);                               \
                 start_plane = vec4(offset, normal);                           \
                 float inv_scale = recip(max(scale, 1.0e-6));                  \
                 opaque_start = dist * inv_scale;                              \

        // if no corner is intersected, they will just zero the AA.
        vec4 start_corner = vec4(vec2(1.0e6), vec2(1.0));
        vec4 end_corner = vec4(vec2(1.0e6), vec2(1.0));

        // Clip against the corner half-spaces. We have already computed the
        // corner half-spaces in the vertex shader.

        vec2 n_br = vClipParams.zz;
        vec2 n_bl = vec2(-vClipParams.z, vClipParams.z);

        #define SET_CORNER(corner, info)

        // Clip against the corner half-spaces.
        CLIP_CORNER(corner_tl, n_tl, );
        CLIP_CORNER(corner_tr, n_tr, );
        CLIP_CORNER(corner_br, n_br, );
        CLIP_CORNER(corner_bl, n_bl, );

        // Later we need to calculate distance AA for both corners and the
        // outer bounding rect. For the fast-path, this is all done inside
