Closed Bug 1400393 Opened 7 years ago Closed 7 years ago

Chrome flashes sometimes when hovering tabs

Categories

(Core :: Graphics: WebRender, defect, P1)

57 Branch
defect

Tracking

()

RESOLVED FIXED
mozilla58
Tracking Status
firefox57 --- unaffected
firefox58 --- unaffected

People

(Reporter: jrmuizel, Assigned: gw)

References

Details

(Whiteboard: [wr-mvp] [gfx-noted])

I'm not sure what causes it, but it looks like the images are going away. Maybe nicals stuff will help.
When I was testing with nicals stuff to see if the crasher was gone, it didn't seem to help.
(In reply to Alexis Beingessner [:Gankro] from comment #1)
> When I was testing with nicals stuff to see if the crasher was gone, it
> didn't seem to help.

Can you please have a more information about nical stuff to test? I've never hear about it and I want to also reproduce it with this nical stuff on my local machine. Thanks
Flags: needinfo?(a.beingessner)
Priority: -- → P3
Whiteboard: [gfx-noted]
Priority: P3 → P2
Whiteboard: [gfx-noted] → [wr-mvp] [gfx-noted]
This is a webrender bug: https://github.com/servo/webrender/issues/1893

When you hover the tabs, there's an off-main-thread animation for the tab line which starts at scaleX(0). That singular matrix seems to break things in webrender.

My usual method of getting a YAML representation of the broken frame did not work. This was because "wrench --save yaml replay" does not reflect values that are changed through property bindings. The frames were generated like this:
 - set display list with stacking context and good transform
 - generate frame [frame 1, renders correctly]
 - generate frame with the property binding updated to the bad transform [frame 2, is broken]
 - set display list with empty stacking context and bad transform
 - generate frame [frame 3, renders correctly again]

I think the first two generate frame calls cause the creation of two separate YAML files, but the second file has the same contents as the first and the matrix value is not updated.

For a while I was looking at frame 3, because it has the bad transform in it, but it renders correctly because the stacking context is completely empty, because Gecko identified the singular transform and culled the contents.
See Also: 1410084
Tweaking summary because this happens on Linux as well.

The upstream webrender bug is fixed, and the fix will be picked up in the next webrender update (bug 1409736).
Depends on: 1409736
Summary: Chrome flashes sometimes on MacOS → Chrome flashes sometimes when hovering tabs
Assignee: nobody → gwatson
Priority: P2 → P1
Status: NEW → ASSIGNED
Fixed by the webrender update.
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
OS: Unspecified → All
Hardware: Unspecified → All
Resolution: --- → FIXED
Target Milestone: --- → mozilla58
Version: unspecified → 57 Branch
You need to log in before you can comment on or make changes to this bug.