}
let border_color = unpackUnorm4x8ToFloat(cmd_rect.border_color).bgra;
- primitive_color = lerp(background_color, border_color, smoothstep(1.0, 0.0, 1.0 - d - border_width));
- primitive_color = lerp(primitive_color, float4(0.0), smoothstep(1.0, 0.0, 1.0 - d));
+
+ let edge_border = -d;
+ let alpha_border = clamp(edge_border + 0.5, 0.0, 1.0);
+
+ let edge = -d - border_width;
+ let alpha = clamp(edge + 0.5, 0.0, 1.0);
+
+ let border = lerp(float4(0.0), border_color, alpha_border);
+ primitive_color = lerp(border, background_color, alpha);
let clip_b = (scissor.offset_max - scissor.offset_min) / 2.0;
let clip_p = scissor.offset_min + clip_b - sample_center;