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

Issue 619995 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Closed: Jul 20
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug-Regression



Sign in to add a comment

Many CommandBufferProxyImpl::Flush calls in the render compositor thread

Project Member Reported by vmi...@chromium.org, Jun 14 2016

Issue description

Version: 52.0.2743.33 (still reproduces on canary 53.0.2767.0)
OS: OS X

There are many CommandBufferProxyImpl::Flush calls in the render compositor thread, that look like they are tied to Tile resource updates.

With Software raster there are many Flush calls in TileTaskManagerImpl::CheckForCompletedTasks.  See attached "software" trace at time offset 2,589.306 ms for example, 22 flushes for 33 completed raster tasks.

With GPU raster the Flush calls show up in TileManager::ScheduleTasks.  See offset 2,354.642 ms in the "gpu" trace.
 
trace_the_verge_mac_canary_software.json.gz
2.8 MB Download
trace_the_verge_mac_canary_gpu.json.gz
5.4 MB Download

Comment 1 by vmi...@chromium.org, Jun 14 2016

Cc: -kkinnu...@nvidia.com ccameron@chromium.org
I think this is related to GpuMemoryBuffer creation.  (Note GpuProcessHost::OnGpuMemoryBufferCreated calls on the Browser IO thread)

In the test I was pinch-zooming on The Verge which makes us allocate a lot of tile resources.  We're blocking for a long time to allocate these buffers, especially in the GPU raster case the longest TileManager::ScheduleTasks is 15.159ms.

For Software raster we have to block when we allocate an IO surface since we need to map the buffer.  Could potentially avoid this with GPU raster?

Comment 3 by vmi...@chromium.org, Jun 14 2016

The Flush is coming from GLES2Implementation::CreateImageCHROMIUMHelper()

https://cs.chromium.org/chromium/src/gpu/command_buffer/client/gles2_implementation.cc?sq=package:chromium&rcl=1465917785&l=5972

Could we use an OrderingBarrier here?
Cc: reve...@chromium.org
+reveman@

Comment 5 by vmi...@chromium.org, Jun 14 2016

Answering my question about OrderingBarriers, I think it wouldn't make a difference since immediately after we send GpuCommandBufferMsg_CreateImage IPC and we synchronize with EnsureWorkVisible().

Re #2: We should be re-using resources, but we're also quite aggressive about purging resources that go unused.  Definitely needs to be looked at in more detail.

I think we could get rid of the synchronous allocation and 3 or 4 thread hops for GPU raster.
Project Member

Comment 6 by sheriffbot@chromium.org, Jun 14 2016

Labels: -M-52 M-53 MovedFrom-52
Moving this nonessential bug to the next milestone.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 7 by sheriffbot@chromium.org, Jul 5 2016

Labels: -M-53 MovedFrom-53
This issue has been moved once and is lower than Pri-1. Removing the milestone.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 8 by sheriffbot@chromium.org, Jul 5 2017

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available. If you change it back, also remove the "Hotlist-Recharge-Cold" label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 9 by enne@chromium.org, Jul 6 2017

Cc: vmi...@chromium.org
Status: Available (was: Untriaged)
vmiura: is this still an issue / worth doing?
Project Member

Comment 10 by sheriffbot@chromium.org, Jul 9

Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Owner: vmi...@chromium.org
Status: Assigned (was: Untriaged)
vmiura: Not sure whether this is still valid. Could you archive if this is no longer needed? Thanks.
Status: WontFix (was: Assigned)
This is probably not a bug any more because:
1. We create GMBs in GPU process instead of in the renderer for tiles via TexStorage2DImageCHROMIUM.
2. We implemented multi-flush which makes ordering barriers such as those inserted for tiles not flush when switching contexts.

Sign in to add a comment