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

Issue 845593 link

Starred by 3 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Bug

Blocked on:
issue 882437

Blocking:
issue 730193



Sign in to add a comment

Compositing.DirectRenderer.GL.DrawFrameUs regression with OOP-D.

Project Member Reported by kylec...@chromium.org, May 22 2018

Issue description

There was a significant regression in Compositing.DirectRenderer.GL.DrawFrameUs with OOP-D compared to the control group.

https://uma.googleplex.com/p/chrome/variations/?sid=dec5eba37fd64e337ab82fda29f1259b

Some potential causes that were identified were identified. 

1. (piman) InProcessCommandBuffer::OrderingBarrier does Flush which I expect would be more expensive than the CommandBufferProxyImpl. Fixing OrderingBarrier should be pretty easy. Just retain the put offset, it gets flushed anyway with Flush, but you want to force it as well in FlushPendingWork and EnsureWorkVisible.
2. Fewer shader cache hits. InProcessCommandBuffer::CacheShader() does nothing, it's just a TODO to implement. There is also a different gles2::ShaderTranslatorCache for GpuChannelManager and InProcessCommandBuffer::Service.
3. Maybe the lack of GPU scheduler plays a role.
 
Project Member

Comment 1 by bugdroid1@chromium.org, May 30 2018

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

commit 7102df0bab2d95d2af25a21a5a96ac11d95998e5
Author: Sadrul Habib Chowdhury <sadrul@chromium.org>
Date: Wed May 30 03:04:17 2018

gpu: Cache shaders from InProcessCommandBuffer.

Notable change(s):
. Assign the InProcessCommandBuffer a gpu-client id different from the
  browser. The implications are that the OOP-D gets a different shader
  cache, and gpu-memory namespace. This also applies to the display
  compositor with in-process-gpu.
. Channel-creation request with the client-id of the OOP-D is rejected.

BUG=845593

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: Ib74daf5c81ca9fa3fd28b390f5e721a9651f6d4a
Reviewed-on: https://chromium-review.googlesource.com/1069490
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#562712}
[modify] https://crrev.com/7102df0bab2d95d2af25a21a5a96ac11d95998e5/components/viz/service/display_embedder/in_process_gpu_memory_buffer_manager.cc
[modify] https://crrev.com/7102df0bab2d95d2af25a21a5a96ac11d95998e5/components/viz/service/gl/gpu_service_impl.cc
[modify] https://crrev.com/7102df0bab2d95d2af25a21a5a96ac11d95998e5/components/viz/service/gl/gpu_service_impl.h
[modify] https://crrev.com/7102df0bab2d95d2af25a21a5a96ac11d95998e5/components/viz/service/main/viz_main_impl.cc
[modify] https://crrev.com/7102df0bab2d95d2af25a21a5a96ac11d95998e5/content/browser/BUILD.gn
[modify] https://crrev.com/7102df0bab2d95d2af25a21a5a96ac11d95998e5/content/browser/gpu/browser_gpu_channel_host_factory.cc
[modify] https://crrev.com/7102df0bab2d95d2af25a21a5a96ac11d95998e5/content/browser/gpu/gpu_process_host.cc
[modify] https://crrev.com/7102df0bab2d95d2af25a21a5a96ac11d95998e5/gpu/command_buffer/tests/gl_manager.cc
[modify] https://crrev.com/7102df0bab2d95d2af25a21a5a96ac11d95998e5/gpu/ipc/in_process_command_buffer.cc
[modify] https://crrev.com/7102df0bab2d95d2af25a21a5a96ac11d95998e5/gpu/ipc/in_process_command_buffer.h

sadrul: I'm not seeing any improvement in GPU.ProgramCache.CacheHit after your CL landed unfortunately.
Is there any update here? 
No updates. No one has looked into this beyond sadruls first patch AFAIK.
Blocking: -787097 730193
Blockedon: 882437

Sign in to add a comment