Servo seems to GPU raster more efficiently than Chrome |
||||||||
Issue descriptionRunning Servo[1][2] yields about 50fps on a MacBook Pro (Retina, Mid-2015), where Chrome (with GPU raster force-enabled) gets around 12fps. That's against the moire demo on Patrick Walton's repo[3]. I've attached a trace in case it helps. [1] https://github.com/servo/servo [2] Using the following command: target/release/servo -Z wr-stats -w --resolution=1024x768 --pref dom.mozbrowser.enabled ../webrender-demos/moire.html [3] https://github.com/pcwalton/webrender-demos/blob/master/moire.html
,
Mar 3 2016
FYI this particular test looks like it is in effect a microbenchmark for the scalability of Chrome's rounded corner compositing path. The compositor uses a mask bitmap for rounded corners, which is a known performance issue.
,
Mar 3 2016
,
Mar 3 2016
I think that fixing crbug.com/590373 will make performance on this example much better. And there are other reasons to care, having to do with the design of Slimming Paint.
,
Mar 3 2016
I take that back. This example doesn't use compositing at all. So any optimization will be directly in Ganesh (*). Maybe Ganesh also uses masks instead of shaders for rounded corners? Also, it doesn't seem easy to make the shader work in all cases involving non-1 opacity, see the last paragraph of enne's comment in crbug.com/590373. We should still fix crbug.com/590373 for the compositing path.
,
Mar 3 2016
We don't use a mask bitmap but clip changes can break our batching. We're still doing analysis and deciding how to optimize but initial thoughts are 1) We need to store blur masks/strips in an atlas to avoid texture changes (which break batches) and probably unify the implementation more for different rrect subcategories (e.g. circle vs circular corner rounded rectangle) 2) In the short term handle rrects clipped against rrects as a special case for clipping. 3) Generalize 2 to apply to all clips (long term change that has many other positive side effects). Also, upcoming changes from Chris Dalton at NVIDIA to render all rrect variants with one shader using sample masks should help a lot here.
,
May 3 2017
The demo renders at 60FPS on my machine.
,
Aug 1 2017
,
Jan 22 2018
|
||||||||
►
Sign in to add a comment |
||||||||
Comment 1 by jakearchibald@chromium.org
, Mar 3 2016