Bug 206489 - [LFC][Multithreading] Introduce ConcurrentInlineLayoutContext
Summary: [LFC][Multithreading] Introduce ConcurrentInlineLayoutContext
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: zalan
URL:
Keywords:
Depends on:
Blocks: LFC
  Show dependency treegraph
 
Reported: 2020-01-19 21:36 PST by zalan
Modified: 2020-08-03 09:40 PDT (History)
6 users (show)

See Also:


Attachments
Patch (6.51 KB, patch)
2020-01-19 21:53 PST, zalan
no flags Details | Formatted Diff | Diff
Concurrent line ranges (4.02 MB, video/quicktime)
2020-01-20 07:32 PST, zalan
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description zalan 2020-01-19 21:36:52 PST
see bug 206158 and bug 205601
Comment 1 zalan 2020-01-19 21:53:34 PST
Created attachment 388200 [details]
Patch
Comment 2 zalan 2020-01-20 07:32:28 PST
Created attachment 388241 [details]
Concurrent line ranges
Comment 3 zalan 2020-01-20 07:53:22 PST
The idea here is that if we identify all the line breaks by pre-scanning the content (provided uniform line height etc), we could split the content into well defined line ranges and run concurrent line layout on them.
Comment 4 zalan 2020-01-20 08:04:30 PST
This is very different from bug 206158, where the layout is split at formatting context boundaries. The line line ranges here belong to the same inline formatting context so we always stay within an IFC. These are complementary concepts where we could layout multiple sibling IFCs in background threads in addition to splitting them into line ranges (using even more threads!:)
Comment 5 Sam Weinig 2020-01-20 11:59:12 PST
(In reply to zalan from comment #4)
> This is very different from bug 206158, where the layout is split at
> formatting context boundaries. The line line ranges here belong to the same
> inline formatting context so we always stay within an IFC. These are
> complementary concepts where we could layout multiple sibling IFCs in
> background threads in addition to splitting them into line ranges (using
> even more threads!:)

!