Closed Bug 1407213 Opened 2 years ago Closed 2 years ago

Update webrender to a624aa6d3b6006c510c8b14026567af4ac545d2f

Categories

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

58 Branch
enhancement

Tracking

()

RESOLVED FIXED
mozilla58
Tracking Status
firefox58 --- fixed

People

(Reporter: kats, Assigned: kats)

References

(Blocks 2 open bugs)

Details

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

Attachments

(4 files)

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

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 @ c5265b9eed76903da9066ebadbeda5bb908b401d

https://treeherder.mozilla.org/#/jobs?repo=try&revision=7886c7a946a4e759791975f452e0b92f3dc5f342
https://treeherder.mozilla.org/#/jobs?repo=try&revision=7d2def8cefe858a64c379f6a7452d699758cb758

Linux is green, but windows is red. The debug jobs are hitting an assertion failure, during a callback from WR. Not sure if this is a bug on the gecko side or the WR side. The crash stack:

Assertion failure: mSurface, at z:/build/build/src/gfx/webrender_bindings/RenderD3D11TextureHostOGL.cpp:99
#01: mozilla::wr::RenderDXGITextureHostOGL::Lock() [gfx/webrender_bindings/RenderD3D11TextureHostOGL.cpp:184]
#02: mozilla::wr::LockExternalImage(void *,mozilla::wr::WrExternalImageId,unsigned char) [gfx/webrender_bindings/RendererOGL.cpp:46]
#03: webrender_bindings::bindings::{{impl}}::lock [gfx/webrender_bindings/src/bindings.rs:295]
#04: webrender::renderer::Renderer::update_deferred_resolves [gfx/webrender/src/renderer.rs:2948]
#05: webrender::renderer::Renderer::update_gpu_cache [gfx/webrender/src/renderer.rs:2183]
#06: webrender::renderer::{{impl}}::render::{{closure}} [gfx/webrender/src/renderer.rs:2098]
#07: webrender::profiler::TimeProfileCounter::profile<webrender::device::FrameId,closure> [gfx/webrender/src/profiler.rs:198]
#08: webrender::renderer::Renderer::render [gfx/webrender/src/renderer.rs:2083]
#09: webrender_bindings::bindings::wr_renderer_render [gfx/webrender_bindings/src/bindings.rs:467]
#10: mozilla::wr::RendererOGL::Render() [gfx/webrender_bindings/RendererOGL.cpp:177]
#11: mozilla::wr::RenderThread::UpdateAndRender(mozilla::wr::WrWindowId) [gfx/webrender_bindings/RenderThread.cpp:223]
#12: mozilla::wr::RenderThread::NewFrameReady(mozilla::wr::WrWindowId) [gfx/webrender_bindings/RenderThread.cpp:170]
...

WR regression range is below, looks pretty benign from the commit messages:

*   c5265b9e Auto merge of #1843 - jrmuizel:more-inline, r=Gankro
|\
| * 1655cb98 Inline UnsafeReader's new() and drop() methods.
|/
* aee99d40 Auto merge of #1834 - jrmuizel:unsafe-reader, r=Gankro
* 9818e4d4 Improve deserialization performance with a custom Read implementation
* d4d96c6a Update bincode so that read_exact will work.

Gecko regression range is https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=a0488ecc201c&tochange=20d9ad08dd36
Kicked off a windows try push at the new WR (c5265b9eed76903da9066ebadbeda5bb908b401d) and old gecko (a0488ecc201c) to see what happens:

https://treeherder.mozilla.org/#/jobs?repo=try&revision=a2373e12b26b1d1e5e81503a38035461a9ee6ff7
Oh right that's not going to build. I'll do some other try pushes to narrow this down.
So the assertion happens even when I run a debug build straight from m-c automation. I bisected it using automation builds, and it started with the angle update in bug 1371190. I'll file a new bug with details.
New update attempts are currently blocked on https://github.com/servo/webrender/pull/1858 because bincode 0.8.1 got yanked and so my update script can't successfully run the vendoring step.
WR @ 58ab0f136885b33386ee85878939e3384e2b1fba

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

Bustage, but that's because I didn't apply the patch Gankro sent me for servo/webrender#1853. Will apply and retry.
WR @ 58ab0f136885b33386ee85878939e3384e2b1fba with fixup

https://treeherder.mozilla.org/#/jobs?repo=try&revision=4b2720d5e45df47def0035184962d1537e7de45a
https://treeherder.mozilla.org/#/jobs?repo=try&revision=82af6d54a525f2ec98289eaece780dbdc9c614c2

Some UNEXPECTED-PASS results, some fuzzy UNEXPECTED-FAIL results for shadow-related things, and one UNEXPECTED-FAIL in R7 for reftests/svg/filter-on-continuation-box-ref.html which looks like text antialiasing or something. I don't think that one can be fuzzed. Also a talos timeout, not sure if that's intermittent or not.

Regression range for these changes:
*   58ab0f13 Auto merge of #1859 - staktrace:reuse, r=glennw,Gankro
|\
| * 89bda6a5 Extract a helper method to build a checkerboard image
* |   94727d1f Auto merge of #1866 - staktrace:bincode, r=glennw
|\ \
| * | da0c6c6c Update to bincode 0.9
* | |   4a0a2cea Auto merge of #1855 - glennw:subpx-clip-3, r=kvark
|\ \ \
| |/ /
|/| |
| * | 2e9eb038 Support clip masks for text runs.
|  /
* |   cd838fdc Auto merge of #1853 - Gankro:atomic-shadow, r=glennw
|\ \
| * | 80bd84cf Fix rendering mode of fast shadows of transparent text
| * | c86bd99a Add reftests for shadow painting order/mode
| * | 908910b4 Update wrench to use PopAllShadows
| * | ade594cd Ensure fast shadows are painted atomically, fixes #1848
|  /
* |   cd4415aa Auto merge of #1787 - mephisto41:fix-split-composite, r=kvark
|\ \
| * | 1b97c1fb Add reftest.
| * | 504004ed Fix some calculation errors for ps_split_composite and make_polygon.
|  /
* |   798e5af2 Auto merge of #1857 - staktrace:scrollinfo, r=mrobinson
|\ \
| * | 2c4cdd85 Change _with_scrollinfo API functions back to _with_parent.
| |/
* |   48674e13 Auto merge of #1852 - glennw:reftest, r=nical
|\ \
| |/
|/|
| * 3235052f Add an in-tree copy of the reftest analyzer.
* c15b0957 Auto merge of #1845 - mrobinson:fix-nested-clip-in-sticky, r=glennw
* e33f363d Fix nested clips in sticky frames

The exact reftest changes:
position-sticky-transformed.html   - PASS, presumably from e33f363d
background-clip-text-2.html        - FAIL (fuzzy), probably from servo/webrender#1853
filter-on-continuation-box-01.html - FAIL, not sure which
basic-opacity.html                 - FAIL (fuzzy), probably from servo/webrender#1853
decorations-multiple-zorder.html   - PASS, probably from servo/webrender#1853
quirks-decor-noblur.html           - PASS, probably from servo/webrender#1853
standards-decor-noblur.html        - PASS, probably from servo/webrender#1853
sorting-1a.html                    - PASS, probably from servo/webrender#1787
snap-perspective-1.html            - PASS, probably from servo/webrender#1787
Oh it looks like windows is running into a panic because of shader compilation failure:
  thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: Link("debug_font", "Precisions for uniform \'uMode\' differ between vertex and fragment shaders\n")', src\libcore\result.rs:860

So this update is not landable even if I took care of the reftest.list changes and disabled the failing talos test.
Pretty sure the shader failure is coming from #1855, left a comment at https://github.com/servo/webrender/pull/1855#issuecomment-336458579
Yes #1853 was specifically trying to fix all of 

decorations-multiple-zorder.html 
quirks-decor-noblur.html          
standards-decor-noblur.html

These two are legit failures caused by my opacity fix in the same patch:

basic-opacity.html
filter-on-continuation-box-01.html

My patch accidentally upgrades text from no-AA to greyscale-AA if it's transparent. Linux runs no AA.

I'll fix ASAP.
(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #10)
> Also a
> talos timeout, not sure if that's intermittent or not.

This is unrelated to the WR update, it's happening on central as well. bug 1408418.
Here are try pushes with webrender tip + servo/webrender#1855 + servo/webrender#1873 plus updated annotations for all the things identified previously. So if the fixes worked we should see unexpected-pass for basic-opacity and filter-on-continuation-box-01 and everything else should be good. Except for the talos failure which is unrelated.

https://treeherder.mozilla.org/#/jobs?repo=try&revision=baeb7aff8e78aee9d2a8b1dde32fb9c00b29e6f7
https://treeherder.mozilla.org/#/jobs?repo=try&revision=1f38daa67ff395256f26bc280b099a930dc26c38
#1873 and #1855 both seem to have worked. #1855 has merged into upstream WR but #1873 is down in the merge queue behind #1822, #1833, #1868, and #1869. I'd rather not wait for it because those other PRs will likely cause other things that need fixing (nical already said that #1822 will affect reftests [1]). So I'm going do the cutoff at current WR tip (a624aa6d), which includes #1855, and update the reftest.list files for the failures introduced by #1853. In the next update which will pick up #1873 we can mark those tests passing again.

[1] https://github.com/servo/webrender/pull/1822#issuecomment-336489194
Alias: wr-future-update
Assignee: nobody → bugmail
No longer blocks: 1406363
Summary: Future webrender update bug → Update webrender to a624aa6d3b6006c510c8b14026567af4ac545d2f
Version: unspecified → 58 Branch
Status: NEW → ASSIGNED
Priority: P3 → P1
Whiteboard: [gfx-noted] → [wr-mvp] [gfx-noted]
For the record the revendoring patch ran into the 100k file size limit so I got the ok from :froydnj to use --build-peers-said-large-imports-were-ok, and then I manually modified the results to use `hg cp` on logo.png. This avoids creating another repo-bloating copy of it (see bug 1408357 for why this happens). I also filed https://github.com/TyOverby/bincode/issues/213 to remove that file from the packaged crate in upstream bincode.
Comment on attachment 8918383 [details]
Bug 1407213 - Update webrender to commit a624aa6d3b6006c510c8b14026567af4ac545d2f.

https://reviewboard.mozilla.org/r/189196/#review194504
Attachment #8918383 - Flags: review?(jmuizelaar) → review+
Comment on attachment 8918384 [details]
Bug 1407213 - Update Cargo lockfiles and re-vendor rust libraries.

https://reviewboard.mozilla.org/r/189198/#review194506
Attachment #8918384 - Flags: review?(jmuizelaar) → review+
Comment on attachment 8918385 [details]
Bug 1407213 - Update bindings for changes in WR PR 1853.

https://reviewboard.mozilla.org/r/189200/#review194508
Attachment #8918385 - Flags: review?(jmuizelaar) → review+
Comment on attachment 8918386 [details]
Bug 1407213 - Update reftest listings for various webrender changes.

https://reviewboard.mozilla.org/r/189202/#review194510
Attachment #8918386 - Flags: review?(jmuizelaar) → review+
Pushed by kgupta@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/e7d01449105f
Update webrender to commit a624aa6d3b6006c510c8b14026567af4ac545d2f. r=jrmuizel
https://hg.mozilla.org/integration/autoland/rev/f24e5fe2d767
Update Cargo lockfiles and re-vendor rust libraries. r=jrmuizel
https://hg.mozilla.org/integration/autoland/rev/e748a2c59145
Update bindings for changes in WR PR 1853. r=jrmuizel
https://hg.mozilla.org/integration/autoland/rev/72d52134e375
Update reftest listings for various webrender changes. r=jrmuizel
You need to log in before you can comment on or make changes to this bug.