Bug 207435

Summary: Optimize style resolution for animations
Product: WebKit Reporter: Simon Fraser (smfr) <simon.fraser>
Component: CSSAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: graouts, koivisto, simon.fraser, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: Safari Technology Preview   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Animation test
none
Testcase none

Description Simon Fraser (smfr) 2020-02-08 16:59:57 PST
Created attachment 390186 [details]
Animation test

Animations (both old and new) currently invalidate style on the element every frame, which triggers a full TreeResolver::resolve() which is expensive. In the attached testcase, TreeResolver::resolve() is 14% of CPU time.

We should optimize style resolution with a type of invalidation for animations.
Comment 1 Simon Fraser (smfr) 2020-02-08 17:01:51 PST
Created attachment 390187 [details]
Testcase
Comment 2 Simon Fraser (smfr) 2020-02-08 17:26:24 PST
With 500 animating elements, style resolve time exceeds paint time.
Comment 3 Radar WebKit Bug Importer 2020-02-08 17:26:41 PST
<rdar://problem/59290089>