GraphicsPipeline.Browser.ReceivedBeginFrame regression with OOP-D |
|||
Issue descriptionI would expect there would be a regression in GraphicsPipeline.Browser.ReceivedBeginFrame with OOP-D due to the added delay of sending an IPC from the GPU to browser process for OnBeginFrame(). The size of the regression, mainly near the 99th percentile, is concerning though. On Windows/Linux the regression seems reasonable under 50th percentile. At 99th percentile the regressions is in the range of 10x which is very unexpected. Android and Android have larger regression than expected at all percentiles, although at 95th+ percentile it's especially bad. Windows: https://uma.googleplex.com/p/chrome/variations/?sid=66cfdd0ad08dac6f7e1f713d7f47d9bc Linux: https://uma.googleplex.com/p/chrome/variations/?sid=527810ee8aba767038bdcc6f41a97bae Android: https://uma.googleplex.com/p/chrome/variations/?sid=c38a30e6feb0b345132cbe0203c1a44a Mac: https://uma.googleplex.com/p/chrome/variations/?sid=43de39db1a5ea89369174c4d9f3bedf1
,
Sep 27
One source of queuing delay is anything that causes InProcessCommandBuffer to wait e.g. running out of command buffer or transfer buffer space. We don't expect this to happen often for display compositor since it will be prioritized by GPU scheduler, but long commands on the other contexts (ex. raster) could cause this.
,
Sep 27
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/73a7ca461b7538c8c178af601e9c587490daa26c commit 73a7ca461b7538c8c178af601e9c587490daa26c Author: kylechar <kylechar@chromium.org> Date: Thu Sep 27 22:44:26 2018 Add trace events to InProcessCommandBuffer. InProcessCommandBuffer is being used for the display compositor with OOP-D. Add trace events for key functions, similar to the existing traces in CommandBufferProxyImpl and [GLES2]CommandBufferStub, to help diagnose performance issues. Bug: 832243, 890013 Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel Change-Id: I34b962b48ad4eb10b112a9c979056993868637a4 Reviewed-on: https://chromium-review.googlesource.com/1250043 Commit-Queue: kylechar <kylechar@chromium.org> Reviewed-by: Jonathan Backer <backer@chromium.org> Cr-Commit-Position: refs/heads/master@{#594902} [modify] https://crrev.com/73a7ca461b7538c8c178af601e9c587490daa26c/gpu/ipc/in_process_command_buffer.cc
,
Sep 28
For non-OOP-D we'd see the same blocking behaviour on the browser UI thread if the ui::Compositor+Display command buffer filled up in the same way right?
,
Oct 9
Another thing that could be contributing here. With OOP-D all ui::Compositors share one ContextProvider and command buffer. With multiple top level windows open we might be filling up that command buffer more often causing the browser UI thread to wait. I don't think we keep track of how often this happens?
,
Nov 5
,
Nov 28
|
|||
►
Sign in to add a comment |
|||
Comment 1 by kylec...@chromium.org
, Sep 27