[Webkit-unassigned] [Bug 48174] Filter example Chiseled from SVG Wow! is slow
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Sun Oct 24 04:14:35 PDT 2010
https://bugs.webkit.org/show_bug.cgi?id=48174
Nikolas Zimmermann <zimmermann at kde.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #71675|review? |review-
Flag| |
--- Comment #5 from Nikolas Zimmermann <zimmermann at kde.org> 2010-10-24 04:14:35 PST ---
(From update of attachment 71675)
View in context: https://bugs.webkit.org/attachment.cgi?id=71675&action=review
> WebCore/platform/graphics/filters/FEBlend.cpp:104
> - RefPtr<CanvasPixelArray> srcPixelArrayA(in->resultImage()->getPremultipliedImageData(effectADrawingRect)->data());
> + RefPtr<WTF::ByteArray> srcPixelArrayA(in->resultImage()->getPremultipliedImageData(effectADrawingRect)->data()->data());
Discussed on IRC. This is the not right approach, CanvasPixelArray has to be stored in a RefPtr<> somewhere.
The performance increase that Dirk sees, is not calling canvasPixelArray->get(). It forward to call to the ByteArray, but CanvasPixelArray stores a RefPtr<ByteArray>. The slowness is because of calling operator-> on the RefPtr.
The best way to fix this now, is to leave RefPtr<CanvasPixelArray> as is, and store "ByteArray* srcByteArrayA = srcPixelArrayA->data()" in a local variable. That gives the same benefit.
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list