Open
Bug 1278825
Opened 8 years ago
Updated 2 years ago
Don't optimize group opacity into SVG fill/stroke paint opacity if we want to handle it on the compositor thread
Categories
(Core :: Layout, defect, P3)
Core
Layout
Tracking
()
ASSIGNED
Tracking | Status | |
---|---|---|
firefox50 | --- | affected |
People
(Reporter: jwatt, Assigned: jwatt)
References
Details
(Keywords: perf)
Attachments
(3 files)
14.91 KB,
patch
|
Details | Diff | Splinter Review | |
10.60 KB,
patch
|
Details | Diff | Splinter Review | |
20.54 KB,
patch
|
Details | Diff | Splinter Review |
+++ This bug was initially created as a clone of Bug #1263829 +++ Spinning this off from bug 1263829 to try and implement the approach I outlined in bug 1263829 comment 13 - 15.
Assignee | ||
Comment 1•8 years ago
|
||
(see the comment added to CanOptimizeOpacity in the attached patch)
Assignee | ||
Comment 2•8 years ago
|
||
Assignee | ||
Comment 3•8 years ago
|
||
Assignee | ||
Comment 4•8 years ago
|
||
Just attaching these patches since I'm not going to have time to work on this until after the all-hands. The rough idea, which may or may not work, would be: * Backout part 2 from bug 1263829. * Apply the patch Make CanOptimizeOpacity return false if UsingEffectsForFrame returns true (see the comment added in CanOptimizeOpacity). * Rename CanOptimizeOpacity to CanOptimizeStaticOpacity and document that even if it returns true it may not be possible to optimize the opacity into the fill/stroke opacity if async animations are happening. * Do something like the 'pass opacity' plus 'pass opacity 2' patches, but instead of passing opacity use the nsDisplayOpacity::NeedsActiveLayer method added in bug 1263829 to pass an aOpacityIsAnimating argument from nsDisplaySVGPathGeometry through to nsSVGUtils::MakeFillPatternFor/ MakeStrokePatternFor, then account for that at the same time as the CanOptimizeStaticOpacity checks there.
Assignee | ||
Comment 5•8 years ago
|
||
FWIW after bug 1263829 lands I think the only time that we don't create an nsDisplayOpacity when we would want to create one no animate opacity on the compositor thread is when opacity is animated on a geometry element (<path>, say) and nsSVGUtils::CanOptimizeOpacity returns true. That's not a hugely common case I expect, so this bug isn't particularly urgent.
Updated•7 years ago
|
Status: NEW → ASSIGNED
Priority: -- → P3
Updated•2 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•