New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 661186 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
OOO until 2019-01-24
Closed: Nov 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug

Blocking:
issue 654201



Sign in to add a comment

graphics_WebGLAquarium performance regression on slower SOCs (35fps -> 22fps)

Project Member Reported by ihf@chromium.org, Nov 1 2016

Issue description

Comment 1 by ihf@chromium.org, Nov 1 2016

Owner: ihf@chromium.org
Status: Started (was: Available)
Bisecting.
CMAA is not the reason because ARM has regression. CMAA is applied to only ChromeOS on Intel.

Comment 3 by ihf@chromium.org, Nov 1 2016

Yes.

Comment 4 by ihf@chromium.org, Nov 1 2016

The slowdown is due to zmo's change ( issue 654201 )
https://codereview.chromium.org/2435803004

Comment 5 by kbr@chromium.org, Nov 1 2016

Well that's unfortunate. zmo's change is needed for security reasons.

I don't see a slowdown on my Mac laptop. Is this demo really doing lots of buffer allocations which would cause the new clearing path to be taken?

Comment 7 by kbr@chromium.org, Nov 1 2016

Owner: kbr@chromium.org
We profiled this and we're spending all our time in base::StringPrintf. This was quite a large patch and it's not clear whether it can be clearly reverted at this point. I'm redoing the error handling within the patch so it only calls StringPrintf upon error conditions.

Comment 8 by kbr@chromium.org, Nov 2 2016

Blocking: 654201

Comment 9 by kbr@chromium.org, Nov 2 2016

Attached are profiles of the GPU process gathered on macOS before and after the optimization in https://codereview.chromium.org/2468123002 . The cost of base::StringPrintf has been eliminated.

aquarium-gpu-process-before-optimization.txt
519 KB View Download
aquarium-gpu-process-after-optimization.txt
487 KB View Download
Project Member

Comment 10 by bugdroid1@chromium.org, Nov 2 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/49f47242e1c13505573e4c469a5f61f7f65f886b

commit 49f47242e1c13505573e4c469a5f61f7f65f886b
Author: kbr <kbr@chromium.org>
Date: Wed Nov 02 19:57:33 2016

Change BufferManager::RequestBufferAccess signatures to avoid sprintfs.

Using varargs and va_list eliminates the cost of string construction
in the callers.

BUG= 661186 ,  654201 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2468123002
Cr-Commit-Position: refs/heads/master@{#429375}

[modify] https://crrev.com/49f47242e1c13505573e4c469a5f61f7f65f886b/gpu/command_buffer/service/buffer_manager.cc
[modify] https://crrev.com/49f47242e1c13505573e4c469a5f61f7f65f886b/gpu/command_buffer/service/buffer_manager.h
[modify] https://crrev.com/49f47242e1c13505573e4c469a5f61f7f65f886b/gpu/command_buffer/service/vertex_attrib_manager.cc

Comment 11 by kbr@chromium.org, Nov 2 2016

Status: Fixed (was: Started)
The above CL should fix the issue; it did in the profiles on my laptop. Please verify.

Comment 12 by ihf@chromium.org, Nov 4 2016

Status: Verified (was: Fixed)
Performance is mostly back. We lost about 0.5-1 fps since the regression, but there was some downwards drift in the last week.
Components: -Internals>GPU>WebGL Blink>WebGL

Sign in to add a comment