Created attachment 590133 [details]
Linear gradients that are part of a pattern are not rendered correctly.
This is always visible when the pattern is applied to a path.
The behavior changes when the pattern is applied to a circle. I've created an animated test case that clearly shows this. Note that turning the animation off doesn't help.
I was able to work around it by setting patternContentUnits to objectBoundingBox and transforming the coordinates.
Originally reported on StackOverflow:
Created attachment 590134 [details]
Workaround for the problem by using patternContentUnits="objectBoundingBox"
Created attachment 641449 [details]
Actually circle is no different to path. Your testcase changes y for the circle, but transform for the path, meaning that you are not changing user space for the former, but are for the latter. This testcase animates transform for both the circle and the path to compare apples to apples.
I'm not entirely sure this is even a bug to be honest, but I don't have time to consider it properly right now during this drive-by comment.
Created attachment 641465 [details]
Static test case
Static version of the test case
Created attachment 641474 [details]
Screenshots of the static test case in FF/Chrome/IE
I agree with you, translate has the same effect for circles and paths.
Animation is not required to reproduce the bug. I've used it to highlight the issue, but it can be observed for static shapes. See the static test case and screenshots.
Fixed by patch in bug 773595