Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

http://diana-adrianne.com/purecss-francine/ stresses WebRender #2715

Open
jrmuizel opened this issue May 1, 2018 · 7 comments
Open

http://diana-adrianne.com/purecss-francine/ stresses WebRender #2715

jrmuizel opened this issue May 1, 2018 · 7 comments
Assignees
Labels
area: performance priority: soon Things we need to do in general

Comments

@jrmuizel
Copy link
Collaborator

jrmuizel commented May 1, 2018

We have some drawing bugs on this page and it doesn't run that fast.

That being said the page is kind of crazy

@kvark
Copy link
Member

kvark commented May 2, 2018

Here is some findings from GPU capturing:

  • similarly to regression: low FPS on https://servo.org/bhtml-newtab/webrender-demos/moire.html #2706, there is a giant number of rounded clips. 14 layers, ~380 primitives for each. However, these don't appear symmetric here, so re-using one of the corners wouldn't work. Caching the clips between frame would help though.
  • unlike the previous case, there are more clips being applied here on top (box_shadow), so we don't have a path of just exposing the rounded cornered rectangle primitive like we used to (a while ago).
  • lots of batch breaks in transparency passes (in box_shadow shader in this case, but this is not relevant). This is a general problem we hit (e.g. WebRender has a bad time with https://jrmuizel.github.io/perf-tests/moving-balls.html #1501), and I have ideas to improve the situation, so I'll bump the priority on those ;)
  • (minor) there is a few 0-instance calls (e.g. to B_LinearGradient), which we can eliminate
  • there is overall a ton of gradients, borders, and clipped rectangles being drawn

wr-lots-of-calls

@pcwalton
Copy link
Contributor

pcwalton commented May 15, 2018

Tessellating large rounded corners could help.

@jrmuizel
Copy link
Collaborator Author

Here is some more of this kind of thing:
http://diana-adrianne.com/purecss-zigario/
http://diana-adrianne.com/purecss-vignes/

@Zirro
Copy link

Zirro commented Sep 10, 2018

The performance for this page seems to have regressed further in recent versions of Nightly, with attempts to scroll repeatedly crashing the browser on my machine.

@kvark kvark added the priority: soon Things we need to do in general label Sep 10, 2018
@kvark kvark self-assigned this Sep 11, 2018
@kvark
Copy link
Member

kvark commented Sep 11, 2018

Looking into this. Confirmed the crash to be https://bugzilla.mozilla.org/show_bug.cgi?id=1489644

@gw3583
Copy link
Contributor

gw3583 commented Sep 11, 2018

@Zirro @kvark I'm working on a patch to fix a different performance issue - just mentioning it here as it might be relevant to performance on this page. The patch will allow us to treat transforms with scale + offset as the same coordinate system (previously we could only do this for simple translations). This will avoid the need for clip masks on any clip rectangles where the transform includes a scale + offset.

@gw3583
Copy link
Contributor

gw3583 commented Feb 4, 2019

Picture caching makes this quite usable, however when stuff does invalidate it's still very slow to draw. We can leave this open for the rasterization work to improve this - moving box shadows out of using clips would be the simplest fix for this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: performance priority: soon Things we need to do in general
Projects
None yet
Development

No branches or pull requests

5 participants