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

stripe.com has huge GPU times in Gecko #1988

Closed
jrmuizel opened this issue Nov 3, 2017 · 10 comments
Closed

stripe.com has huge GPU times in Gecko #1988

jrmuizel opened this issue Nov 3, 2017 · 10 comments

Comments

@jrmuizel
Copy link
Contributor

@jrmuizel jrmuizel commented Nov 3, 2017

I was seeing 222ms times, so there's probably something very wrong happening.

@jrmuizel
Copy link
Contributor Author

@jrmuizel jrmuizel commented Nov 3, 2017

@jrmuizel
Copy link
Contributor Author

@jrmuizel jrmuizel commented Nov 3, 2017

Here's a yaml file that reproduces the problem: http://jrmuizel.github.io/webrender/stripe.zip

@glennw
Copy link
Member

@glennw glennw commented Nov 3, 2017

Hopefully #1961 and/or #1984 will fix this, but I'll profile after they are sorted to confirm.

@glennw
Copy link
Member

@glennw glennw commented Nov 8, 2017

I'm seeing ~40ms on my HD4600. There doesn't seem to be too much time spent in shadows / blurs, but there is a huge amount of time spent generating clips (and clearing clip targets). Most of these appear redundant. There's also a lot of time spent in the slow transform shaders, which will be resolved once we land the brush changes to draw inner segments as opaque.

@jrmuizel
Copy link
Contributor Author

@jrmuizel jrmuizel commented Dec 5, 2017

Should we expect this to be fixed yet?

@nical
Copy link
Collaborator

@nical nical commented Dec 5, 2017

Caching what we render into intermediate targets would help a lot here.

@glennw
Copy link
Member

@glennw glennw commented Dec 5, 2017

No, I wouldn't expect this to be fixed yet. We need to leverage and extend the segment support to optimize the clips and inset box shadows.

I've been thinking about caching the results of intermediate surfaces a bit. I think it should be relatively straightforward, by building on top of the Picture tree. The basic idea would be to detect when the contents of a Picture are the same, and redirect the rendering location from an intermediate surface to the texture cache instead. I'll try and write up a more detailed plan for this over the next week or two. Having said that, once the segment optimizations apply to more types of clips and box-shadows, it probably won't be necessary in this case (but still good for power usage anyway).

@glennw
Copy link
Member

@glennw glennw commented Mar 16, 2018

This is a lot better than it was - I'm seeing ~10-12ms on my HD4600. I'll leave it open as it can still be improved a lot though. We are spending a lot of time on redundant clip masks, and blurs than can be cached.

@dralley
Copy link

@dralley dralley commented May 31, 2019

The bugzilla is marked "resolved fixed", can this be closed?

@kvark
Copy link
Member

@kvark kvark commented May 31, 2019

Thanks for triaging!

@kvark kvark closed this May 31, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
5 participants
You can’t perform that action at this time.