Summary: | REGRESSION(r35966): Canvex game (DOOM for <canvas>) is broken | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Oliver Hunt <oliver> | ||||||||
Component: | DOM | Assignee: | Nobody <webkit-unassigned> | ||||||||
Status: | RESOLVED FIXED | ||||||||||
Severity: | Major | CC: | burgoon.5, eric | ||||||||
Priority: | P1 | Keywords: | Regression | ||||||||
Version: | 528+ (Nightly build) | ||||||||||
Hardware: | Mac | ||||||||||
OS: | OS X 10.5 | ||||||||||
URL: | http://canvex.lazyilluminati.com/83/play.xhtml | ||||||||||
Bug Depends on: | 21510 | ||||||||||
Bug Blocks: | |||||||||||
Attachments: |
|
Description
Oliver Hunt
2008-10-08 23:02:45 PDT
Okay this also regresses fast/canvas/patternfill-repeat.html Created attachment 24239 [details]
Fix transformed patterns
LayoutTests/ChangeLog | 59 +++++++++++
.../canvas/canvas-transform-identity-expected.png | Bin 3259 -> 10631 bytes
.../canvas/canvas-transform-infinity-expected.png | Bin 3259 -> 10631 bytes
.../canvas/canvas-transform-multiply-expected.png | Bin 3259 -> 10631 bytes
.../fast/canvas/canvas-transform-nan-expected.png | Bin 3259 -> 10631 bytes
.../canvas-transform-non-invertible-expected.png | Bin 3259 -> 10631 bytes
.../canvas/canvas-transform-skewed-expected.png | Bin 3259 -> 10631 bytes
.../canvas/canvas-before-css-expected.checksum | 2 +-
.../mac/fast/canvas/canvas-before-css-expected.png | Bin 9165 -> 17055 bytes
.../mac/fast/canvas/canvas-bg-expected.png | Bin 17964 -> 29420 bytes
.../fast/canvas/canvas-composite-expected.checksum | 2 +-
.../mac/fast/canvas/canvas-composite-expected.png | Bin 20635 -> 30590 bytes
.../canvas/canvas-draw-xbm-image-expected.checksum | 2 +-
.../fast/canvas/canvas-draw-xbm-image-expected.png | Bin 3462 -> 10690 bytes
.../canvas/canvas-resize-reset-expected.checksum | 2 +-
.../fast/canvas/canvas-resize-reset-expected.png | Bin 7586 -> 15066 bytes
...nvas-size-change-after-layout-expected.checksum | 2 +-
.../canvas-size-change-after-layout-expected.png | Bin 7574 -> 15340 bytes
.../fast/canvas/canvas-text-alignment-expected.png | Bin 97978 -> 105596 bytes
.../fast/canvas/canvas-text-baseline-expected.png | Bin 12181 -> 19326 bytes
...canvas-transforms-during-path-expected.checksum | 2 +-
.../canvas-transforms-during-path-expected.png | Bin 14377 -> 23272 bytes
.../fast/canvas/canvasDrawingIntoSelf-expected.png | Bin 8111 -> 16216 bytes
.../mac/fast/canvas/drawImage-expected.png | Bin 8111 -> 16216 bytes
.../fillrect-gradient-zero-stops-expected.checksum | 2 +-
.../fillrect-gradient-zero-stops-expected.png | Bin 20065 -> 29200 bytes
.../canvas/fillrect_gradient-expected.checksum | 2 +-
.../mac/fast/canvas/fillrect_gradient-expected.png | Bin 51331 -> 88750 bytes
...ent-add-second-start-end-stop-expected.checksum | 2 +-
...gradient-add-second-start-end-stop-expected.png | Bin 3663 -> 14103 bytes
.../canvas/gradient-empty-path-expected.checksum | 2 +-
.../fast/canvas/gradient-empty-path-expected.png | Bin 9564 -> 19579 bytes
.../image-object-in-canvas-expected.checksum | 2 +-
.../canvas/image-object-in-canvas-expected.png | Bin 48986 -> 58593 bytes
.../canvas/patternfill-repeat-expected.checksum | 2 +-
.../fast/canvas/patternfill-repeat-expected.png | Bin 38575 -> 50815 bytes
.../fast/canvas/quadraticCurveTo-expected.checksum | 2 +-
.../mac/fast/canvas/quadraticCurveTo-expected.png | Bin 11850 -> 19600 bytes
.../mac/fast/canvas/shadow-offset-1-expected.png | Bin 8875 -> 16958 bytes
.../mac/fast/canvas/shadow-offset-2-expected.png | Bin 8927 -> 16986 bytes
.../mac/fast/canvas/shadow-offset-3-expected.png | Bin 8875 -> 16958 bytes
.../mac/fast/canvas/shadow-offset-4-expected.png | Bin 8892 -> 16971 bytes
.../mac/fast/canvas/shadow-offset-5-expected.png | Bin 8892 -> 16971 bytes
.../mac/fast/canvas/shadow-offset-6-expected.png | Bin 8930 -> 16989 bytes
.../mac/fast/canvas/shadow-offset-7-expected.png | Bin 8939 -> 16996 bytes
.../canvas/zero-size-fill-rect-expected.checksum | 2 +-
.../fast/canvas/zero-size-fill-rect-expected.png | Bin 8044 -> 15632 bytes
WebCore/ChangeLog | 27 +++++
WebCore/WebCore.xcodeproj/project.pbxproj | 4 +
WebCore/platform/graphics/GraphicsContext.cpp | 4 -
WebCore/platform/graphics/GraphicsContext.h | 4 -
.../graphics/cairo/GraphicsContextCairo.cpp | 17 ---
WebCore/platform/graphics/cg/GraphicsContextCG.cpp | 105 +++++++++-----------
WebCore/platform/graphics/qt/GraphicsContextQt.cpp | 16 ---
WebCore/platform/graphics/wx/GraphicsContextWx.cpp | 16 ---
55 files changed, 152 insertions(+), 128 deletions(-)
This fix for transformed patterns is a correctness fix, but still leaves a possible performance regression (we have no performance tests to verify such, but I plan to follow this up with a caching solution to improve performance of pattern painting.) bug 21510 I confirm Oliver's findings, that r35963 works fine, but the nightly from r35973 fails in the same way as ToT. Even after fixing transformed patterns that does not fix whatever bug DOOM is hitting. :( These tests are newly busted as well: http://philip.html5.org/tests/canvas/suite/tests/2d.pattern.paint.repeatx.basic.html http://philip.html5.org/tests/canvas/suite/tests/2d.pattern.paint.repeatx.coord1.html Fixing those two might fix our DOOM issues, although I kinda doubt it. Comment on attachment 24239 [details]
Fix transformed patterns
r=me
Unfortunately the tree had some sort of canvas relating crash which causes: http://philip.html5.org/tests/canvas/suite/tests/reportgen.html?175,1 to crash, making this extra hard to debug. :( The patch of doom: http://trac.webkit.org/changeset/35966 Created attachment 24248 [details] Reviewed by Oliver Hunt. Fix Canvex DOOM Game Gradient clips were not getting cleared after filling the gradient, this was causing nothing to draw in Canvex https://bugs.webkit.org/show_bug.cgi?id=21498 Tests forthcoming. * WebCore.xcodeproj/project.pbxproj: * platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::GraphicsContext::fillPath): (WebCore::GraphicsContext::strokePath): (WebCore::GraphicsContext::fillRect): --- WebCore/ChangeLog | 17 +++++++++++++++++ WebCore/platform/graphics/cg/GraphicsContextCG.cpp | 15 +++++++++++---- 2 files changed, 28 insertions(+), 4 deletions(-) Created attachment 24249 [details]
Test cases
LayoutTests/ChangeLog | 14 ++++
.../fast/canvas/gradient-with-clip-expected.txt | 10 +++
LayoutTests/fast/canvas/gradient-with-clip.html | 13 ++++
.../canvas/pattern-with-transform-expected.txt | 10 +++
.../fast/canvas/pattern-with-transform.html | 13 ++++
LayoutTests/fast/canvas/resources/TEMPLATE.html | 13 ++++
.../fast/canvas/resources/gradient-with-clip.js | 65 ++++++++++++++++++++
.../canvas/resources/pattern-with-transform.js | 57 +++++++++++++++++
WebKitTools/ChangeLog | 8 +++
WebKitTools/Scripts/make-js-test-wrappers | 1 +
10 files changed, 204 insertions(+), 0 deletions(-)
Committing to http://svn.webkit.org/repository/webkit/trunk ... M WebCore/ChangeLog M WebCore/platform/graphics/cg/GraphicsContextCG.cpp Committed r37460 Committing to http://svn.webkit.org/repository/webkit/trunk ... M LayoutTests/ChangeLog A LayoutTests/fast/canvas/gradient-with-clip-expected.txt A LayoutTests/fast/canvas/gradient-with-clip.html A LayoutTests/fast/canvas/pattern-with-transform-expected.txt A LayoutTests/fast/canvas/pattern-with-transform.html A LayoutTests/fast/canvas/resources/TEMPLATE.html A LayoutTests/fast/canvas/resources/gradient-with-clip.js A LayoutTests/fast/canvas/resources/pattern-with-transform.js M WebKitTools/ChangeLog M WebKitTools/Scripts/make-js-test-wrappers Committed r37461 bug 21510 still remains,but that will have to wait until after my vacation. :) *** Bug 20665 has been marked as a duplicate of this bug. *** |