tex[Sub]Image2D slow when passing in a <canvas>, faster with ImageData.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 27 Apr 2018 02:00:25 +0000 (02:00 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 27 Apr 2018 02:00:25 +0000 (02:00 +0000)
commit55dad3c93625711192826a0f7fc88d074f9c284c
treea084e69a3dd6b76cb91db94979d9dfb784e392c9
parent7f9786ed427de72ad9f445c3ee05995a9052cb25
tex[Sub]Image2D slow when passing in a <canvas>, faster with ImageData.
https://bugs.webkit.org/show_bug.cgi?id=184843
<rdar://problem/34898868>

Patch by Justin Fan <justin_fan@apple.com> on 2018-04-26
Reviewed by Simon Fraser.

On certain test pages passing 2d canvas objects to gl.texSubImage2D, we spend significant time doing an alpha unpremultiplication in FormatConverter::convert on a single thread.
For now, I am introducing use of the Accelerate framework to do canvas alpha unpremultiplication, specifically for RGBA8 > RGBA8.
This improves this rendering path by a factor of ~4. The rest of FormatConverter could use similar improvements; filed https://bugs.webkit.org/show_bug.cgi?id=185064 for these.

* platform/graphics/FormatConverter.cpp:
(WebCore::FormatConverter::convert):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231084 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/platform/graphics/FormatConverter.cpp