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

Jonathan Morton jonathan.morton at movial.com
Wed Jul 7 07:06:52 PDT 2010


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




More information about the webkit-qt mailing list