                 aa_start = opaque_start - apex * inv_scale;                   \
             }                                                                 \
         } else if (dist > opaque_end * scale) {                               \
-            end_corner = info;                                                \
+            SET_CORNER(end_corner, info);                                     \
             end_plane = vec4(offset, normal);                                 \
             float inv_scale = recip(min(scale, -1.0e-6));                     \
             opaque_end = dist * inv_scale;                                    \

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

        bool start_corner = false;
        bool end_corner = false;

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

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

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