[webkit-qt] Inconsistent acceleration of linear gradients and atlas maps

noam.rosenthal at nokia.com noam.rosenthal at nokia.com
Wed Jul 7 07:21:47 PDT 2010


First of all, which version are you using? 
If it's 4.7 or 4.6 + a new webkit:
I'd check paltform/graphics/qt/GraphicsLayerQt.cpp, and try to disable QWebSettings::AcceleratedCompositingEnabled and see if it helps.
That code accelerates CSS animations by drawing the animated components into pixmaps; after which they wouldn't have to repaint themselves with gradients or anything else; my guess is that that's what you're seeing... see http://labs.trolltech.com/blogs/2010/05/17/qtwebkit-now-accelerates-css-animations-3d-transforms/

No'am



________________________________________
From: webkit-qt-bounces at lists.webkit.org [webkit-qt-bounces at lists.webkit.org] On Behalf Of ext Jonathan Morton [jonathan.morton at movial.com]
Sent: Wednesday, July 07, 2010 7:06 AM
To: webkit-qt at lists.webkit.org
Subject: [webkit-qt] Inconsistent acceleration of linear gradients and atlas    maps

We're trying to figure out a severe performance problem with Webkit on
Qt, on hardware which has a very large penalty for software fallbacks.

To maximise the hardware's capabilities, we have already added
rudimentary support for accelerating linear gradients to both QtGui and
the X11/EXA driver for this hardware.

This is effective for some instances of linear gradients (eg. on form
buttons that appear on a page), but others (such as CSS animations)
don't even seem to hit the abstraction layer in Webkit that would pass
these commands on to Qt.  Breakpoints set in
WebCore/platform/graphics/qt/GradientQt.cpp are triggered by the
accelerated case but not by the non-accelerated cases.

Similarly, atlas maps (used on some high-profile websites to minimise
HTTP request count) appear to similarly evade the abstraction layer and
result in expensive client-side software fallbacks.  As far as we know,
no special hardware features are needed to support these - we have made
sure that support for sufficiently large image dimensions is available.

Where should we be looking in the code to figure out the difference
between these cases, and is there any good reason for them?

--
------
From: Jonathan Morton
      jonathan.morton at movial.com


_______________________________________________
webkit-qt mailing list
webkit-qt at lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-qt


More information about the webkit-qt mailing list