We calculate an inverse transform each tiledBackingStoreVisibleRect() call by a TiledBackingStore and every tiles. This patch caches the inverse transform to reuse it.
Created attachment 174304 [details] Patch
Comment on attachment 174304 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=174304&action=review > Source/WebKit2/ChangeLog:8 > + We calculate an inverse transform each tiledBackingStoreVisibleRect() call by > + a TiledBackingStore and every tiles. > + This patch caches the inverse transform to reuse it. anyway we can assert to make sure it is always updated before use?
Created attachment 174391 [details] Patch
Comment on attachment 174304 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=174304&action=review >> Source/WebKit2/ChangeLog:8 >> + This patch caches the inverse transform to reuse it. > > anyway we can assert to make sure it is always updated before use? Thanks for review! That's good idea! I'll update.
(In reply to comment #3) > Created an attachment (id=174391) [details] > Patch Add ASSERT :)
Comment on attachment 174391 [details] Patch Do you have any performance data? like how much of an improvement is it? We normally require that
Comment on attachment 174391 [details] Patch Attachment 174391 [details] did not pass gtk-ews (gtk): Output: http://queues.webkit.org/results/14831845
(In reply to comment #6) > (From update of attachment 174391 [details]) > Do you have any performance data? like how much of an improvement is it? We normally require that Fortunately, I can get the data in my machine (Intel® Xeon(R) CPU X5650 @ 2.67GHz × 6). In morphing cubes demo (https://www.webkit.org/blog-files/3d-transforms/morphing-cubes.html), when we push "toggle shape" button, CoordinatedGraphicsLayer::tiledBackingStoreVisibleRect() is called. At the moment, CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly() takes 118ns. CoordinatedGraphicsLayer::tiledBackingStoreVisibleRect() taske 65ns. It means inverse transform takes 55% of times during whole CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly() process. Inverse transform is heavier than what I expected. However, this patch does not improve morphing cubes demo's performance because all layers have just one tile. If we have large layers with 3d transform animation, this patch increase performance fairly.
Created attachment 174548 [details] Patch
patch due to flaky gtk ews fail.
Comment on attachment 174548 [details] Patch Clearing flags on attachment: 174548 Committed r134868: <http://trac.webkit.org/changeset/134868>
All reviewed patches have been landed. Closing bug.
Thank Kenneth and noam for review! :)