I don't know why, but the following examples: http://srufaculty.sru.edu/david.dailey/svg/Turbulence1.svg http://srufaculty.sru.edu/david.dailey/svg/later/displace4.svg http://srufaculty.sru.edu/david.dailey/svg/later/displace7.svg fail when opened in Safari 6 with tiled drawing on (Mountain Lion, etc.) <rdar://problem/12951224>
I am unsure how WebKit handles tiled drawings if I recover it correctly. But we limit the filter size (the area that get filtered) to WebCore's viewport IIRC. That might or might not be a problem for tiled drawing.
Created attachment 181375 [details] Testcase
If you resize the window down so that only 1 tile shows, it starts to work. I think some caching is happening when we attempt to draw the filtered element into other tiles where it's clipped out, and that empty version is getting cached.
Turning off the caching in RenderSVGResourceFilter fixes this. So this is about the filtered content being rendered into each tile, but clipped out in some, and a bad version getting cached.
Of course RenderSVGShape::paint() bails at: if (!SVGRenderSupport::paintInfoIntersectsRepaintRect(boundingBox, m_localTransform, paintInfo)) return; when painting tiles that don't contain the filtered shape. SVGRenderingContext needs to educated about multiple paint passes of the same rendered into different contexts with different clips.
Confusingly, this seems to have progressed. Will bisect the progression.
Oh, Florin actually explicitly fixed this. Duping. *** This bug has been marked as a duplicate of bug 106221 ***