Closed Bug 1407213 Opened 4 years ago Closed 4 years ago

Update webrender to a624aa6d3b6006c510c8b14026567af4ac545d2f


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

58 Branch



Tracking Status
firefox58 --- fixed


(Reporter: kats, Assigned: kats)


(Blocks 1 open bug)


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


(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".

WR @ c5265b9eed76903da9066ebadbeda5bb908b401d

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/]
#04: webrender::renderer::Renderer::update_deferred_resolves [gfx/webrender/src/]
#05: webrender::renderer::Renderer::update_gpu_cache [gfx/webrender/src/]
#06: webrender::renderer::{{impl}}::render::{{closure}} [gfx/webrender/src/]
#07: webrender::profiler::TimeProfileCounter::profile<webrender::device::FrameId,closure> [gfx/webrender/src/]
#08: webrender::renderer::Renderer::render [gfx/webrender/src/]
#09: webrender_bindings::bindings::wr_renderer_render [gfx/webrender_bindings/src/]
#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
Kicked off a windows try push at the new WR (c5265b9eed76903da9066ebadbeda5bb908b401d) and old gecko (a0488ecc201c) to see what happens:
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 because bincode 0.8.1 got yanked and so my update script can't successfully run the vendoring step.
WR @ 58ab0f136885b33386ee85878939e3384e2b1fba

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

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\

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
Yes #1853 was specifically trying to fix all of 


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


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 ( 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.
#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.

Alias: wr-future-update
Assignee: nobody → bugmail
No longer blocks: 1406363
Summary: Future webrender update bug → Update webrender to a624aa6d3b6006c510c8b14026567af4ac545d2f
Version: unspecified → 58 Branch
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 to remove that file from the packaged crate in upstream bincode.
Comment on attachment 8918383 [details]
Bug 1407213 - Update webrender to commit a624aa6d3b6006c510c8b14026567af4ac545d2f.
Attachment #8918383 - Flags: review?(jmuizelaar) → review+
Comment on attachment 8918384 [details]
Bug 1407213 - Update Cargo lockfiles and re-vendor rust libraries.
Attachment #8918384 - Flags: review?(jmuizelaar) → review+
Comment on attachment 8918385 [details]
Bug 1407213 - Update bindings for changes in WR PR 1853.
Attachment #8918385 - Flags: review?(jmuizelaar) → review+
Comment on attachment 8918386 [details]
Bug 1407213 - Update reftest listings for various webrender changes.
Attachment #8918386 - Flags: review?(jmuizelaar) → review+
Pushed by
Update webrender to commit a624aa6d3b6006c510c8b14026567af4ac545d2f. r=jrmuizel
Update Cargo lockfiles and re-vendor rust libraries. r=jrmuizel
Update bindings for changes in WR PR 1853. r=jrmuizel
Update reftest listings for various webrender changes. r=jrmuizel
Blocks: 1407652
Duplicate of this bug: 1362027
You need to log in before you can comment on or make changes to this bug.