Created attachment 82246 [details]
See attached testcase, which uses -webkit-linear-gradient and background-size to draw diagonal stripes of various sizes along a square background. There are two similar problems here, which I assume have the same root cause.
1. When using "top left" as the anchor for the gradient, current Chromium builds sometimes draw one or two pixels the wrong color at the left edge of each gradient box, resulting in a jarring effect like this:
2. When using "-45deg", the effect is worse; at virtually any background-size, bands of the gradient fluctuate in width by a pixel or two, resulting in an odd studded appearance. It's so bad that with a background-size of 2px, this /diagonal/ gradient renders as a pattern of /vertical/ lines.
The spec doesn't legislate precisely how to render gradients, but current Gecko draws smooth diagonal lines at any size and zoom level, which seems more correct (or at least more useful).
Both problems occur as long as two color stops collide within a pixel, even if they don't have exactly the same length. If they're at least a pixel apart, the rendering is perfect.
I notice this bug in Chrome Version 19.0.1084.46 but not in Firefox or Safari 5.1.7. The issue can be seen on these test pages:
Seems to be fixed in Chrome Version 21.0.1151.1 canary.
Created attachment 462985 [details]
rendering in safari, firefox, chrome
Tested on macOS 13.0
A Safari 16.1 186220.127.116.11.1
B Safari Technology Preview 16.4 18618.104.22.168
C Firefox Nightly 107.0a1 10722.10.14
D Google Chrome Canary 108.0.5355.0 5355.0