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.
Created attachment 351550 [details] Patch
Created attachment 351551 [details] Patch for review
Created attachment 351567 [details] Patch
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.
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 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.
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 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.
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
Created attachment 351617 [details] Patch
Created attachment 351620 [details] Patch for review
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.
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 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.
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 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.
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 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.
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 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.
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