Bug 190261 - RenderLayer should traverse the render tree only once to draw its contents
Summary: RenderLayer should traverse the render tree only once to draw its contents
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Said Abou-Hallawa
URL:
Keywords:
Depends on: 189873
Blocks:
  Show dependency treegraph
 
Reported: 2018-10-03 13:40 PDT by Said Abou-Hallawa
Modified: 2018-10-04 18:04 PDT (History)
5 users (show)

See Also:


Attachments
Patch (598.88 KB, patch)
2018-10-03 15:02 PDT, Said Abou-Hallawa
no flags Details | Formatted Diff | Diff
Patch for review (280.13 KB, patch)
2018-10-03 15:04 PDT, Said Abou-Hallawa
no flags Details | Formatted Diff | Diff
Patch (601.26 KB, patch)
2018-10-03 17:43 PDT, Said Abou-Hallawa
no flags Details | Formatted Diff | Diff
Archive of layout-test-results from ews103 for mac-sierra (1.02 MB, application/zip)
2018-10-03 18:22 PDT, EWS Watchlist
no flags Details
Archive of layout-test-results from ews107 for mac-sierra-wk2 (787.21 KB, application/zip)
2018-10-03 18:33 PDT, EWS Watchlist
no flags Details
Archive of layout-test-results from ews115 for mac-sierra (645.03 KB, application/zip)
2018-10-03 18:50 PDT, EWS Watchlist
no flags Details
Patch (622.16 KB, patch)
2018-10-04 13:24 PDT, Said Abou-Hallawa
ews-watchlist: commit-queue-
Details | Formatted Diff | Diff
Patch for review (302.10 KB, patch)
2018-10-04 13:38 PDT, Said Abou-Hallawa
no flags Details | Formatted Diff | Diff
Archive of layout-test-results from ews100 for mac-sierra (974.11 KB, application/zip)
2018-10-04 14:04 PDT, EWS Watchlist
no flags Details
Archive of layout-test-results from ews104 for mac-sierra-wk2 (850.26 KB, application/zip)
2018-10-04 14:18 PDT, EWS Watchlist
no flags Details
Archive of layout-test-results from ews115 for mac-sierra (582.52 KB, application/zip)
2018-10-04 14:32 PDT, EWS Watchlist
no flags Details
Archive of layout-test-results from ews122 for ios-simulator-wk2 (849.78 KB, application/zip)
2018-10-04 15:53 PDT, EWS Watchlist
no flags Details
Archive of layout-test-results from ews126 for ios-simulator-wk2 (1.07 MB, application/zip)
2018-10-04 18:04 PDT, EWS Watchlist
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Said Abou-Hallawa 2018-10-03 13:40:38 PDT
To draw a RenderLayer, WebKit has to follow the CSS stacking context order to paint different phases from the render tree. This patch tries to consolidate the render tree traversal in one pass using DisplayLists. The render tree objects can push their drawing into different DisplayLists in the same call. The purpose of this change is to accelerate the render layer drawing.

Having the drawing recorded in DisplayLists should provide many optimization opportunities.
1. Caching the DisplayLists for later reuse.
2. Delete no-op drawing operations, for example { context.save(); context.restore(); } or { context.save(); context.clip(); context.restore(); }
3. Generating the DisplayList can happen in parallel.
Comment 1 Said Abou-Hallawa 2018-10-03 15:02:00 PDT
Created attachment 351550 [details]
Patch
Comment 2 Said Abou-Hallawa 2018-10-03 15:04:00 PDT
Created attachment 351551 [details]
Patch for review
Comment 3 Said Abou-Hallawa 2018-10-03 17:43:02 PDT
Created attachment 351567 [details]
Patch
Comment 4 EWS Watchlist 2018-10-03 18:21:58 PDT
Comment on attachment 351567 [details]
Patch

Attachment 351567 [details] did not pass mac-ews (mac):
Output: https://webkit-queues.webkit.org/results/9448749

Number of test failures exceeded the failure limit.
Comment 5 EWS Watchlist 2018-10-03 18:22:00 PDT
Created attachment 351570 [details]
Archive of layout-test-results from ews103 for mac-sierra

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews103  Port: mac-sierra  Platform: Mac OS X 10.12.6
Comment 6 EWS Watchlist 2018-10-03 18:33:51 PDT
Comment on attachment 351567 [details]
Patch

Attachment 351567 [details] did not pass mac-wk2-ews (mac-wk2):
Output: https://webkit-queues.webkit.org/results/9448831

Number of test failures exceeded the failure limit.
Comment 7 EWS Watchlist 2018-10-03 18:33:53 PDT
Created attachment 351573 [details]
Archive of layout-test-results from ews107 for mac-sierra-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews107  Port: mac-sierra-wk2  Platform: Mac OS X 10.12.6
Comment 8 EWS Watchlist 2018-10-03 18:50:35 PDT
Comment on attachment 351567 [details]
Patch

Attachment 351567 [details] did not pass mac-debug-ews (mac):
Output: https://webkit-queues.webkit.org/results/9448838

Number of test failures exceeded the failure limit.
Comment 9 EWS Watchlist 2018-10-03 18:50:36 PDT
Created attachment 351574 [details]
Archive of layout-test-results from ews115 for mac-sierra

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews115  Port: mac-sierra  Platform: Mac OS X 10.12.6
Comment 10 Said Abou-Hallawa 2018-10-04 13:24:30 PDT
Created attachment 351617 [details]
Patch
Comment 11 Said Abou-Hallawa 2018-10-04 13:38:48 PDT
Created attachment 351620 [details]
Patch for review
Comment 12 EWS Watchlist 2018-10-04 14:04:41 PDT
Comment on attachment 351617 [details]
Patch

Attachment 351617 [details] did not pass mac-ews (mac):
Output: https://webkit-queues.webkit.org/results/9455160

Number of test failures exceeded the failure limit.
Comment 13 EWS Watchlist 2018-10-04 14:04:42 PDT
Created attachment 351629 [details]
Archive of layout-test-results from ews100 for mac-sierra

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews100  Port: mac-sierra  Platform: Mac OS X 10.12.6
Comment 14 EWS Watchlist 2018-10-04 14:18:49 PDT
Comment on attachment 351617 [details]
Patch

Attachment 351617 [details] did not pass mac-wk2-ews (mac-wk2):
Output: https://webkit-queues.webkit.org/results/9455294

Number of test failures exceeded the failure limit.
Comment 15 EWS Watchlist 2018-10-04 14:18:51 PDT
Created attachment 351632 [details]
Archive of layout-test-results from ews104 for mac-sierra-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews104  Port: mac-sierra-wk2  Platform: Mac OS X 10.12.6
Comment 16 EWS Watchlist 2018-10-04 14:32:41 PDT
Comment on attachment 351617 [details]
Patch

Attachment 351617 [details] did not pass mac-debug-ews (mac):
Output: https://webkit-queues.webkit.org/results/9455265

Number of test failures exceeded the failure limit.
Comment 17 EWS Watchlist 2018-10-04 14:32:43 PDT
Created attachment 351634 [details]
Archive of layout-test-results from ews115 for mac-sierra

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews115  Port: mac-sierra  Platform: Mac OS X 10.12.6
Comment 18 EWS Watchlist 2018-10-04 15:53:02 PDT
Comment on attachment 351617 [details]
Patch

Attachment 351617 [details] did not pass ios-sim-ews (ios-simulator-wk2):
Output: https://webkit-queues.webkit.org/results/9455992

Number of test failures exceeded the failure limit.
Comment 19 EWS Watchlist 2018-10-04 15:53:04 PDT
Created attachment 351638 [details]
Archive of layout-test-results from ews122 for ios-simulator-wk2

The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews122  Port: ios-simulator-wk2  Platform: Mac OS X 10.13.6
Comment 20 EWS Watchlist 2018-10-04 18:04:39 PDT
Comment on attachment 351617 [details]
Patch

Attachment 351617 [details] did not pass ios-sim-ews (ios-simulator-wk2):
Output: https://webkit-queues.webkit.org/results/9456992

Number of test failures exceeded the failure limit.
Comment 21 EWS Watchlist 2018-10-04 18:04:41 PDT
Created attachment 351645 [details]
Archive of layout-test-results from ews126 for ios-simulator-wk2

The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews126  Port: ios-simulator-wk2  Platform: Mac OS X 10.13.6