Android WebView composite time on WebGL canvas is 10x slower than Chrome browser
Reported by
mich...@activetheory.net,
May 28 2016
|
|||||
Issue descriptionSteps to reproduce the problem: 1. Add WebGL canvas to HTML page and draw on it each frame 2. Profile the page with the Timeline inspector What is the expected behavior? WebView and Chrome browser should show the same times per frame. What went wrong? The WebView is showing ~7ms for "Composite Layers" when Chrome browser shows ~0.6ms. The app hosting the WebView has no other views. These results are seen on a page with nothing other than a WebGL canvas in the body. Did this work before? N/A Chrome version: 51.0.2704.36 Channel: n/a OS Version: 6.0.99 Flash Version:
,
Jun 3 2016
,
Jun 4 2016
Webview is generally going to be slower than chrome, because * webview has to do more work sharing textures across threads * webview has all sorts of synchronous/blocking behavior not in chrome * webview frame scheduling is only partially controlled by itself but scheduling here *really* sucks here. looks like the problem is the main thread started hogging the gpu to preparing frame N+1 when frame N has not been swapped yet, then that swap is sleeping blocked for a long time no easy solution though, probably could look into holding off main frame a bit
,
Aug 15 2016
this probably improved when we split off the compositor thread from the UI thread. Can you check again on webview m50 or later?
,
Aug 22 2016
,
Aug 26 2016
Thanks for the update -- this seems to be fixed on Android 7 WebView 53!
,
Aug 26 2016
|
|||||
►
Sign in to add a comment |
|||||
Comment 1 by mich...@activetheory.net
, May 28 20161.1 MB
1.1 MB Download