New issue
Advanced search Search tips

Issue 811979 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 1
Type: Bug

Blocking:
issue 787097



Sign in to add a comment

viz: InProcessCommandBuffer use virtualized context decision logic

Project Member Reported by kylec...@chromium.org, Feb 13 2018

Issue description

Comment 1 by piman@chromium.org, Feb 14 2018

Blockedon: -730193
Blocking: 730193
Project Member

Comment 2 by bugdroid1@chromium.org, Feb 14 2018

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

commit 47df6306404d6df93ec9d27d68a565a0e5c07854
Author: kylechar <kylechar@chromium.org>
Date: Wed Feb 14 01:45:48 2018

viz: Fix VizDisplayCompositor + EGL crashing GPU process.

Using --enable-features=VizDisplayCompositor and EGL hardware
acceleration didn't work. The GPU process would lose the GL context and
crash because of bugs in InProcessCommandBuffer.

InProcessCommandBuffer wasn't using the same command decoder as
GLES2CommandBufferStub. This was happening because GpuPreferences
weren't plumbed into GpuInProcessThreadService.

InProcessCommandBuffer was also always using virtualized GL contexts.
Virtualized contexts are broken on windows apparently. Plumb this into
GpuInProcessThreadService. The default constructed version will continue
to use virtualized contexts, while the VizMainImpl constructed version
will not used virtualized contexts.

There are some other differences in how InProcessCommandBuffer and
GLES2CommandBufferStub decide whether to use virtualized contexts that
needs to be resolved separately.

Bug:  810424 ,  811979 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;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
Change-Id: I230aeeefb4560407da816c15c47e4f5b4ce11138
Reviewed-on: https://chromium-review.googlesource.com/917014
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: kylechar <kylechar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#536596}
[modify] https://crrev.com/47df6306404d6df93ec9d27d68a565a0e5c07854/components/viz/service/main/viz_main_impl.cc
[modify] https://crrev.com/47df6306404d6df93ec9d27d68a565a0e5c07854/gpu/ipc/gpu_in_process_thread_service.cc
[modify] https://crrev.com/47df6306404d6df93ec9d27d68a565a0e5c07854/gpu/ipc/gpu_in_process_thread_service.h
[modify] https://crrev.com/47df6306404d6df93ec9d27d68a565a0e5c07854/gpu/ipc/in_process_command_buffer.cc

Cc: jonr...@chromium.org
The drift in the logic has shown itself in crashes of viz_content_browsertests on Mac:

https://ci.chromium.org/buildbot/tryserver.chromium.mac/mac_chromium_rel_ng/652523

It would be good to union the logic of those two paths into a shared location.
Blocking: -730193 787097
Labels: -Pri-3 M-67 Pri-1
Owner: kylec...@chromium.org
Status: Assigned (was: Available)
I'll look into this since it's causing mac test failures.
Labels: OS-Mac
From triage meeting:

  There are 8 divergent pieces of code that touch this. We'll need a resource to help get these all using one centralized location.

  This will block Viz Finch trials on Mac
Project Member

Comment 6 by bugdroid1@chromium.org, Apr 13 2018

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

commit 22b5641e249102f203176077163f1152d09a254f
Author: kylechar <kylechar@chromium.org>
Date: Fri Apr 13 15:58:21 2018

Improve InProcessCommandBuffer logic.

This CL implements logic from GLES2CommandBufferStub::Initialize() in
InProcessCommandBuffer::InitializeOnGpuThread(). Some differences are
not addressed and I've left TODOs instead.

Bug: 832243,  811979 
Change-Id: I1139a33f594280ea4c17b3a7223391e33bc15ad6
Reviewed-on: https://chromium-review.googlesource.com/1006038
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Bo <boliu@chromium.org>
Commit-Queue: kylechar <kylechar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550630}
[modify] https://crrev.com/22b5641e249102f203176077163f1152d09a254f/android_webview/browser/deferred_gpu_command_service.cc
[modify] https://crrev.com/22b5641e249102f203176077163f1152d09a254f/android_webview/browser/deferred_gpu_command_service.h
[modify] https://crrev.com/22b5641e249102f203176077163f1152d09a254f/components/viz/service/main/viz_main_impl.cc
[modify] https://crrev.com/22b5641e249102f203176077163f1152d09a254f/gpu/ipc/gpu_in_process_thread_service.cc
[modify] https://crrev.com/22b5641e249102f203176077163f1152d09a254f/gpu/ipc/gpu_in_process_thread_service.h
[modify] https://crrev.com/22b5641e249102f203176077163f1152d09a254f/gpu/ipc/in_process_command_buffer.cc
[modify] https://crrev.com/22b5641e249102f203176077163f1152d09a254f/gpu/ipc/in_process_command_buffer.h

Status: Fixed (was: Assigned)
The logic should be the same now. I filed crbug.com/832243 for doing more work with regards to unifying the logic.
Project Member

Comment 8 by bugdroid1@chromium.org, Apr 17 2018

Labels: merge-merged-testbranch
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/22b5641e249102f203176077163f1152d09a254f

commit 22b5641e249102f203176077163f1152d09a254f
Author: kylechar <kylechar@chromium.org>
Date: Fri Apr 13 15:58:21 2018

Improve InProcessCommandBuffer logic.

This CL implements logic from GLES2CommandBufferStub::Initialize() in
InProcessCommandBuffer::InitializeOnGpuThread(). Some differences are
not addressed and I've left TODOs instead.

Bug: 832243,  811979 
Change-Id: I1139a33f594280ea4c17b3a7223391e33bc15ad6
Reviewed-on: https://chromium-review.googlesource.com/1006038
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Bo <boliu@chromium.org>
Commit-Queue: kylechar <kylechar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550630}
[modify] https://crrev.com/22b5641e249102f203176077163f1152d09a254f/android_webview/browser/deferred_gpu_command_service.cc
[modify] https://crrev.com/22b5641e249102f203176077163f1152d09a254f/android_webview/browser/deferred_gpu_command_service.h
[modify] https://crrev.com/22b5641e249102f203176077163f1152d09a254f/components/viz/service/main/viz_main_impl.cc
[modify] https://crrev.com/22b5641e249102f203176077163f1152d09a254f/gpu/ipc/gpu_in_process_thread_service.cc
[modify] https://crrev.com/22b5641e249102f203176077163f1152d09a254f/gpu/ipc/gpu_in_process_thread_service.h
[modify] https://crrev.com/22b5641e249102f203176077163f1152d09a254f/gpu/ipc/in_process_command_buffer.cc
[modify] https://crrev.com/22b5641e249102f203176077163f1152d09a254f/gpu/ipc/in_process_command_buffer.h

Sign in to add a comment