Bug 16015

Summary: REGRESSION: Screen artifacts in SVG rendering (caused by float rounding issues in svg:image)
Product: WebKit Reporter: Richard Carlos Torr <rcarlostorr>
Component: SVGAssignee: Oliver Hunt <oliver>
Status: RESOLVED FIXED    
Severity: Normal CC: hyatt, oliver
Priority: P1 Keywords: InRadar, NeedsReduction, Regression
Version: 528+ (Nightly build)   
Hardware: Mac   
OS: OS X 10.5   
URL: http://www.carto.net/papers/svg/dock/index.svg
Attachments:
Description Flags
Screenshot
none
test case (uses remote URL)
none
r29177 screenshot
none
Cache local bounds, and don't use integer metrics from RenderObject oliver: review+

Description Richard Carlos Torr 2007-11-16 05:28:46 PST
The page at http://www.carto.net/papers/svg/dock/index.svg works perfectly in Safari 3.0.4 on Leopard, but the WebKit nightly build leaves artifacts behind as the "dock" magnifies.
Comment 1 Richard Carlos Torr 2007-11-16 05:30:04 PST
Created attachment 17314 [details]
Screenshot

Screenshot of bug
Comment 2 Alexey Proskuryakov 2007-11-16 08:04:21 PST
Confirmed with r27834; works with Safari 3 on 10.4.11.
Comment 3 Eric Seidel (no email) 2007-11-21 22:27:01 PST
That's awesome.  This is entirely related to the overpainting fixes we did for Sun Labs Lively Kernel.  Fixing a bunch of overpainting bugs revealed some underpainting bugs. :)
Comment 4 Eric Seidel (no email) 2007-11-21 22:30:36 PST
Hum... looks like we have some other redraw bugs on this SVG as well. I just filed bug 16090 to cover our overpainting.
Comment 5 David Kilzer (:ddkilzer) 2007-11-28 22:05:55 PST
<rdar://problem/5619313>
Comment 6 Eric Seidel (no email) 2007-12-15 03:17:33 PST
This is caused by float rounding errors in our RenderSVGImage code.  See attached test case.
Comment 7 Eric Seidel (no email) 2007-12-15 03:18:21 PST
Created attachment 17910 [details]
test case (uses remote URL)
Comment 8 Mark Rowe (bdash) 2007-12-21 21:25:20 PST
*** Bug 16569 has been marked as a duplicate of this bug. ***
Comment 9 Oliver Hunt 2007-12-21 21:40:49 PST
hyatt adding you to cc, what are your thoughts? (see comments in Bug 16569 )
Comment 10 Oliver Hunt 2008-01-04 14:37:39 PST
The dock example now works -- it was effected by a bug in the layout code.

This bug confuses me as it should be fixed now (the test case still leaves a trail).

It looks like the cached absolute bounds rect is somehow being changed between paint and layout, which
leads to us reporting an incorrect dirty rect.  As yet i have been unable to find the source of this change :(
Comment 11 Alexey Proskuryakov 2008-01-04 15:54:26 PST
Created attachment 18280 [details]
r29177 screenshot

> The dock example now works -- it was effected by a bug in the layout code.

I'm still seeing the problem with r29177, see an attached screenshot.
Comment 12 Oliver Hunt 2008-01-04 20:33:55 PST
Created attachment 18281 [details]
Cache local bounds, and don't use integer metrics from RenderObject
Comment 13 Beth Dakin 2008-01-04 21:14:07 PST
Fixed with r29191.
Comment 14 Oliver Hunt 2008-01-04 21:18:32 PST
beth is wrong
beth closed the wrong bug

happily i am about to land ye olde fix
Comment 15 Oliver Hunt 2008-01-04 21:20:31 PST
Fixed in 29192 :D
Comment 16 Oliver Hunt 2008-01-04 23:27:12 PST
Comment on attachment 18281 [details]
Cache local bounds, and don't use integer metrics from RenderObject

(reviewed by beth)