Summary: | [LFC][Multithreading] Introduce ConcurrentInlineLayoutContext | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | zalan <zalan> | ||||||
Component: | Layout and Rendering | Assignee: | zalan <zalan> | ||||||
Status: | NEW --- | ||||||||
Severity: | Normal | CC: | bfulgham, emilio, koivisto, sam, simon.fraser, zalan | ||||||
Priority: | P2 | ||||||||
Version: | WebKit Nightly Build | ||||||||
Hardware: | Unspecified | ||||||||
OS: | Unspecified | ||||||||
Bug Depends on: | |||||||||
Bug Blocks: | 215087 | ||||||||
Attachments: |
|
Description
zalan
2020-01-19 21:36:52 PST
Created attachment 388200 [details]
Patch
Created attachment 388241 [details]
Concurrent line ranges
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. 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!:) (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!:) ! |