RESOLVED FIXED Bug 21498
REGRESSION(r35966): Canvex game (DOOM for <canvas>) is broken
https://bugs.webkit.org/show_bug.cgi?id=21498
Summary REGRESSION(r35966): Canvex game (DOOM for <canvas>) is broken
Oliver Hunt
Reported 2008-10-08 23:02:45 PDT
Migrating gradient and pattern logic to GraphicsContext appears to have horked the world :-(
Attachments
Fix transformed patterns (36.79 KB, patch)
2008-10-09 15:04 PDT, Eric Seidel (no email)
oliver: review+
Reviewed by Oliver Hunt. (3.05 KB, patch)
2008-10-09 19:20 PDT, Eric Seidel (no email)
oliver: review+
Test cases (9.10 KB, patch)
2008-10-09 19:20 PDT, Eric Seidel (no email)
oliver: review+
Oliver Hunt
Comment 1 2008-10-09 01:21:51 PDT
Okay this also regresses fast/canvas/patternfill-repeat.html
Eric Seidel (no email)
Comment 2 2008-10-09 15:04:33 PDT
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(-)
Eric Seidel (no email)
Comment 3 2008-10-09 15:07:35 PDT
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
Eric Seidel (no email)
Comment 4 2008-10-09 15:27:07 PDT
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. :(
Eric Seidel (no email)
Comment 5 2008-10-09 15:53:22 PDT
Oliver Hunt
Comment 6 2008-10-09 15:58:51 PDT
Comment on attachment 24239 [details] Fix transformed patterns r=me
Eric Seidel (no email)
Comment 7 2008-10-09 16:09:45 PDT
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. :(
Eric Seidel (no email)
Comment 8 2008-10-09 16:49:25 PDT
Eric Seidel (no email)
Comment 9 2008-10-09 19:20:32 PDT
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(-)
Eric Seidel (no email)
Comment 10 2008-10-09 19:20:33 PDT
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(-)
Eric Seidel (no email)
Comment 11 2008-10-09 19:28:37 PDT
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. :)
Oliver Hunt
Comment 12 2008-10-16 02:24:36 PDT
*** Bug 20665 has been marked as a duplicate of this bug. ***
Note You need to log in before you can comment on or make changes to this bug.