Bug 32122 - [Qt] Preparation for tiling support
Summary: [Qt] Preparation for tiling support
Status: RESOLVED DUPLICATE of bug 35146
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit Qt (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC All
: P3 Normal
Assignee: Nobody
URL:
Keywords: Qt
Depends on:
Blocks: 31552
  Show dependency treegraph
 
Reported: 2009-12-03 09:38 PST by Kenneth Rohde Christiansen
Modified: 2010-03-08 08:15 PST (History)
12 users (show)

See Also:


Attachments
Split out the renderPrivate method to two, one for absolute coords, and one relative to the viewport (7.80 KB, patch)
2009-12-03 09:39 PST, Kenneth Rohde Christiansen
no flags Details | Formatted Diff | Diff
Receive invalidate events for areas changed outside the viewport, if ScrollView::setPaintsEntireContents is true (4.77 KB, patch)
2009-12-03 09:47 PST, Kenneth Rohde Christiansen
no flags Details | Formatted Diff | Diff
Add tiling to QGraphicsWebView (14.97 KB, patch)
2009-12-03 10:00 PST, Kenneth Rohde Christiansen
no flags Details | Formatted Diff | Diff
Basic benchmark for the scrolling support (2.27 MB, application/octet-stream)
2009-12-07 03:07 PST, Benjamin Poulain
no flags Details
Offscreen rendering of the mainframe at the QWebFrame level (9.64 KB, patch)
2009-12-07 03:12 PST, Benjamin Poulain
no flags Details | Formatted Diff | Diff
Slides from a presentation about the work (328.78 KB, application/pdf)
2009-12-15 05:47 PST, Kenneth Rohde Christiansen
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Kenneth Rohde Christiansen 2009-12-03 09:38:05 PST
Tiling has the ability to improve the scrolling performance and experience for the two Qt web views.

We will use this bug to track and discuss this work.
Comment 1 Kenneth Rohde Christiansen 2009-12-03 09:39:33 PST
Created attachment 44249 [details]
Split out the renderPrivate method to two, one for absolute coords, and one relative to the viewport
Comment 2 WebKit Review Bot 2009-12-03 09:39:55 PST
style-queue ran check-webkit-style on attachment 44249 [details] without any errors.
Comment 3 Kenneth Rohde Christiansen 2009-12-03 09:47:35 PST
Created attachment 44251 [details]
Receive invalidate events for areas changed outside the viewport, if ScrollView::setPaintsEntireContents is true
Comment 4 WebKit Review Bot 2009-12-03 09:50:33 PST
style-queue ran check-webkit-style on attachment 44251 [details] without any errors.
Comment 5 Kenneth Rohde Christiansen 2009-12-03 10:00:10 PST
Created attachment 44253 [details]
Add tiling to QGraphicsWebView
Comment 6 Kenneth Rohde Christiansen 2009-12-03 10:04:04 PST
Comment on attachment 44251 [details]
Receive invalidate events for areas changed outside the viewport, if ScrollView::setPaintsEntireContents is true

We might want to do this at the frame level instead, removing r?
Comment 7 Kenneth Rohde Christiansen 2009-12-03 10:11:17 PST
Benjamin did a simple test (can you upload it Benjamin?) that automatically scrolls on offline webpages.

Here are the preliminary results:

QWebView (not tiles, xcopyregion):

RESULT : Test::benchWebView():"simplest painting":              
     2.1 msec per iteration (total: 35, iterations: 16)          
RESULT : Test::benchWebView():"slashdot page":                  
     16 msec per iteration (total: 33, iterations: 2)            
RESULT : Test::benchWebView():"amazon book page":                
     12 msec per iteration (total: 24, iterations: 2)            
RESULT : Test::benchWebView():"wikipedia Qt page":              
     12 msec per iteration (total: 24, iterations: 2)            

QGraphicsWebView (no tiling, should fall back to x copy region as it uses GraphicsView infrastructure for scrolling):

RESULT : Test::benchGraphicsWebView():"simplest painting":      
     8.8 msec per iteration (total: 71, iterations: 8)          
RESULT : Test::benchGraphicsWebView():"slashdot page":          
     100 msec per iteration (total: 100, iterations: 1)          
RESULT : Test::benchGraphicsWebView():"amazon book page":        
     88 msec per iteration (total: 88, iterations: 1)            
RESULT : Test::benchGraphicsWebView():"wikipedia Qt page":      
     137 msec per iteration (total: 137, iterations: 1)           

QGraphicsWebView (with my above tiling patch):

RESULT : Test::benchGraphicsWebView():"simplest painting":
     2.6 msec per iteration (total: 42, iterations: 16)
RESULT : Test::benchGraphicsWebView():"slashdot page":
     1.2 msec per iteration (total: 41, iterations: 32)
RESULT : Test::benchGraphicsWebView():"amazon book page":
     0.71 msec per iteration (total: 23, iterations: 32)
RESULT : Test::benchGraphicsWebView():"wikipedia Qt page":
     0.84 msec per iteration (total: 27, iterations: 32)
Comment 8 Antti Koivisto 2009-12-04 07:42:09 PST
Looks good, r=me
Comment 9 WebKit Commit Bot 2009-12-04 09:43:38 PST
Comment on attachment 44249 [details]
Split out the renderPrivate method to two, one for absolute coords, and one relative to the viewport

Clearing flags on attachment: 44249

Committed r51698: <http://trac.webkit.org/changeset/51698>
Comment 10 WebKit Commit Bot 2009-12-04 09:43:45 PST
All reviewed patches have been landed.  Closing bug.
Comment 11 Kenneth Rohde Christiansen 2009-12-04 09:46:45 PST
Reopening, as the bug report has uncommitted patches who are not yet up for review.
Comment 12 Benjamin Poulain 2009-12-07 03:07:49 PST
Created attachment 44395 [details]
Basic benchmark for the scrolling support

Basic benchmark used for testing the tiling support on real use cases.
A proper benchmark needs to be created for the integration in the source.
Comment 13 Benjamin Poulain 2009-12-07 03:12:29 PST
Created attachment 44396 [details]
Offscreen rendering of the mainframe at the QWebFrame level

This patch render the frame offscreen on a pixmap and always paint the pixmap in paint event.

The advantage of storing the pixmap at the frame level are:
 - improve the speed of graphics web view && qweb view
 - we can avoid completely GraphicsContext in some cases
 - we can have support for multi-frame

This is preliminary work, not meant to be integrated. It does not yet integrate the work of Kenneth
Comment 14 Kenneth Rohde Christiansen 2009-12-15 05:47:11 PST
Created attachment 44870 [details]
Slides from a presentation about the work
Comment 15 Antti Koivisto 2009-12-16 06:33:44 PST
The work for this is going on here: http://gitorious.org/~akoivisto/webkit/anttis-webkit/commits/tile-cache
Comment 16 Simon Hausmann 2010-03-08 08:15:18 PST
Work is now proceeding in 35146 as far as I can see.

*** This bug has been marked as a duplicate of bug 35146 ***