Closed Bug 1367734 Opened 7 years ago Closed 7 years ago

Update webrender to a54cc729259588dd1ff52c86d0c62cb2a1767137

Categories

(Core :: Graphics: WebRender, defect)

55 Branch
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla55
Tracking Status
firefox55 --- fixed

People

(Reporter: kats, Assigned: kats)

References

Details

(Whiteboard: [gfx-noted])

Attachments

(6 files)

+++ This bug was initially created as a clone of Bug #1365934 +++

I'm filing this as a placeholder bug for the next webrender update. I may be running a cron script [1] that does try pushes with webrender update attempts, so that we can track build/test breakages introduced by webrender on a rolling basis. This bug will hold the try push links as well as dependencies filed for those breakages, so that we have a better idea going into the update of what needs fixing. I might abort the cron job because once things get too far out of sync it's hard to fully automate fixing all the breakages.

When we are ready to actually land the update, we can rename this bug and use it for the update, and then file a new bug for the next "future update".

[1] https://github.com/staktrace/moz-scripts/blob/master/try-latest-webrender.sh
WR @ 9cc838b719508c9a8107ade3ea04edd6e621e4d1

https://treeherder.mozilla.org/#/jobs?repo=try&revision=c2031a6f7eac2dd0129a34c242fcd60abaa2a4d7

Reftests are green, but a bunch of other stuff is blue. This might just be random, or it might be memory leaking. I've seen this before in the past with memory leaks so I'll try and see what's going on here.
Oh, this would be the regression range, if it is a regression. 847b01c sounds like it might potentially cause this.

*   9cc838b Auto merge of #1293 - Gankro:curves-are-slow, r=glennw
|\
| * ad7ba17 fix shader to handle degenerate border curves
| * 9d93da0 add a reftest for degenerate curves
| * 0d0423a don't take rectangular border fast path for curved borders
* 756fc0f Auto merge of #1294 - glennw:cache-expiry, r=kvark
* 847b01c Hold old resources in the texture cache for a bit longer.
Just an update: it turned out 847b01c (servo/webrender#1294) was in fact the cause of this. There is some discussion on the issue and kvark and I were trying to figure out what's going on. Adding a call to deinit() the renderer before we destroy it in wr_renderer_delete didn't help, but reducing the cache expiry delay from 600 frames to 60 frames did help.
WR @ efa87af6de7b3ffb27812adbcfd34632a039aa7c

https://treeherder.mozilla.org/#/jobs?repo=try&revision=a473093e707896ad907351f469faf094d166ec8c

In addition to the blue OOMs from before, there are R4 failures and debug crashtest failures.

The regression range for both is:

*   efa87af Auto merge of #1292 - kvark:snap, r=glennw
|\
| * d4235d4 Snapping ref tests
| * f6728aa Snapping transformed primitives
| * 0a6626b Full rectangular pixel snapping
* 150da47 Auto merge of #1296 - mephisto41:ensure-numbers-arent-nan-or-infinite, r=kvark
* 517c172 Ensure the result of calculation is finite number.

The R4 failure is an increase in fuzziness in an already-fuzzy test (layout/reftests/columns/column-balancing-overflow-005.html). I think this is the third or fourth time the fuzziness has increased, which is kinda concerning.

The crashtest failure is a panic in webrender with this (partial) stack:

 9  libxul.so!core::panicking::panic [panicking.rs : 49 + 0x18]
10  libxul.so!webrender::util::TransformedRect::new [util.rs:a473093e7078 : 266 + 0xc]
11  libxul.so!webrender::mask_cache::Geometry::update [mask_cache.rs:a473093e7078 : 95 + 0xb]
12  libxul.so!webrender::mask_cache::MaskCacheInfo::update [mask_cache.rs:a473093e7078 : 310 + 0xd]
13  libxul.so!webrender::frame_builder::LayerRectCalculationAndCullingPass::recalculate_clip_scroll_nodes [frame_builder.rs:a473093e7078 : 1583 + 0x11]
14  libxul.so!webrender::frame_builder::LayerRectCalculationAndCullingPass::run [frame_builder.rs:a473093e7078 : 1530 + 0x8]
15  libxul.so!webrender::frame_builder::LayerRectCalculationAndCullingPass::create_and_run [frame_builder.rs:a473093e7078 : 1525 + 0x8]
16  libxul.so!webrender::frame_builder::FrameBuilder::build [frame_builder.rs:a473093e7078 : 1406 + 0x27]
17  libxul.so!webrender::frame::{{impl}}::build_frame::{{closure}} [frame.rs:a473093e7078 : 995 + 0x12]
18  libxul.so!core::option::Option<&mut webrender::frame_builder::FrameBuilder>::map<&mut webrender::frame_builder::FrameBuilder,webrender::tiling::Frame,closure> [option.rs : 383 + 0x2e]
19  libxul.so!webrender::frame::Frame::build_frame [frame.rs:a473093e7078 : 994 + 0x58]
20  libxul.so!webrender::frame::Frame::build [frame.rs:a473093e7078 : 977 + 0x16]
21  libxul.so!webrender::render_backend::RenderBackend::render [render_backend.rs:a473093e7078 : 491 + 0x13]
22  libxul.so!webrender::render_backend::{{impl}}::run::{{closure}} [render_backend.rs:a473093e7078 : 412 + 0xb]
23  libxul.so!webrender::profiler::TimeProfileCounter::profile<webrender::internal_types::RendererFrame,closure> [profiler.rs:a473093e7078 : 154 + 0x18]
24  libxul.so!webrender::render_backend::RenderBackend::run [render_backend.rs:a473093e7078 : 411 + 0x2f]

Given this is happening in TransformedRect::new, it is likely a result of cset f6728aa, from servo/webrender#1292.
WR @ efa87af6de7b3ffb27812adbcfd34632a039aa7c, with the R4 failure fuzzed out

https://treeherder.mozilla.org/#/jobs?repo=try&revision=2a04a9a779f79b7de36395ce6834ab5109970216

Nothing new - same blue OOMs and crashtest failure.
(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #4)
> Given this is happening in TransformedRect::new, it is likely a result of
> cset f6728aa, from servo/webrender#1292.

This is wrong, I bisected and confirmed that the crash is a result of servo/webrender#1296 (i.e. from cset 517c172).
And the column-balancing-overflow-005.html regression is indeed from servo/webrender#1292.
servo/webrender#1302 should have the fix for the crashtest failure.
WR @ 3122c704ad9f16bfb01e35b96a1b11f05a6b27bf

https://treeherder.mozilla.org/#/jobs?repo=try&revision=d18e3f2047202ec3b0d6d171c7aadaa49215c3e0

crashtest is fixed now, only remaining problem is the blue/OOM jobs.
Bustage for a number of reasons. First thing I ran into was euclid mismatches. webrender_bindings needs to be updated to use a newer euclid, and we also need to use a newer plane-split version so that it doesn't pull in an older euclid. I filed https://github.com/servo/webrender/pull/1315 to fix that properly upstream.
Second thing was the changes to push_yuv_image. That seems relatively straightforward to fix with a bit of plumbing to pass the WrImageRendering parameter through.
Here's a try push with WR @ ef61168bce1301f67c750ceafede22fff287d563 with the bustage fixes and the OOM fix (fingers crossed)

https://treeherder.mozilla.org/#/jobs?repo=try&revision=e69278865a42921d2dd170270116ac303aea9d34
WR @ a54cc729259588dd1ff52c86d0c62cb2a1767137, includes the upstreamed PR servo/webrender#1315 and the rest of the fixes

https://treeherder.mozilla.org/#/jobs?repo=try&revision=6f422e5e511bacf2b40528c9f48bb9309ded8a05

Green, let's get this landed.
Assignee: nobody → bugmail
Summary: Future webrender update bug → Update webrender to a54cc729259588dd1ff52c86d0c62cb2a1767137
Version: unspecified → 55 Branch
Comment on attachment 8873149 [details]
Bug 1367734 - Update webrender to cset a54cc729259588dd1ff52c86d0c62cb2a1767137.

https://reviewboard.mozilla.org/r/144612/#review148498
Attachment #8873149 - Flags: review?(jmuizelaar) → review+
Comment on attachment 8873152 [details]
Bug 1367734 - Increase fuzz on a reftest due to changes in servo/webrender#1292.

https://reviewboard.mozilla.org/r/144618/#review148500
Attachment #8873152 - Flags: review?(jmuizelaar) → review+
Comment on attachment 8873151 [details]
Bug 1367734 - Revendor third-party rust packages.

https://reviewboard.mozilla.org/r/144616/#review148504
Attachment #8873151 - Flags: review?(jmuizelaar) → review+
Comment on attachment 8873150 [details]
Bug 1367734 - Update Cargo.toml/Cargo.lock files for version bumps.

https://reviewboard.mozilla.org/r/144614/#review148506
Attachment #8873150 - Flags: review?(jmuizelaar) → review+
Comment on attachment 8873154 [details]
Bug 1367734 - Tone down webrender's memory usage to avoid OOMing during media mochitests.

https://reviewboard.mozilla.org/r/144622/#review148512

perfect!
Attachment #8873154 - Flags: review?(kvark) → review+
Updated patches to pick up plane-split 0.4.1 (instead of 0.4.0) because of kvark/plane-split#3

Not that it should affect anything but new try push just to be safe: https://treeherder.mozilla.org/#/jobs?repo=try&revision=cc9fb105b075a1c8f4fe4c0621bdf09f8124cb32
Comment on attachment 8873153 [details]
Bug 1367734 - Update for push_yuv_image API change in WR cset a4b9e25.

https://reviewboard.mozilla.org/r/144620/#review148610
Attachment #8873153 - Flags: review?(hshih) → review+
Pushed by kgupta@mozilla.com:
https://hg.mozilla.org/projects/graphics/rev/f11c938218a5
Update webrender to cset a54cc729259588dd1ff52c86d0c62cb2a1767137. r=jrmuizel,jerry
https://hg.mozilla.org/projects/graphics/rev/90199d13a72c
Increase fuzz on a reftest due to changes in servo/webrender#1292. r=jrmuizel
https://hg.mozilla.org/projects/graphics/rev/082c1ba38bd3
Tone down webrender's memory usage to avoid OOMing during media mochitests. r=kvark
This code update requires rustc 1.17, but configure is still happy with 1.15.1.
Depends on: 1369615
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: