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

Issue 730213 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocking:
issue 730193



Sign in to add a comment

Content needs way to get FrameSinkManager and ClientCompositorFrameSink to submit CompositorFrames to the gpu process when mus is enabled

Project Member Reported by danakj@chromium.org, Jun 6 2017

Issue description

This is the way of mus.

1a. The service side needs to provide a FrameSinkManager in GpuChildThread: https://cs.chromium.org/chromium/src/content/gpu/gpu_child_thread.cc?rcl=f7882372fcf69764a301ee0b2cee078490024821&l=303

1b. The content-free-servicification-version is at https://cs.chromium.org/chromium/src/services/ui/gpu/gpu_main.cc?type=cs&q=ui::GpuMain&sq=package:chromium&l=136

2a. GpuProcessTransportFactory needs to give a viz::ClientCompositorFrameSink to the compositor. Right now it makes its own FrameSinkManager and uses that.

2b. The all-mus impl has a different ContextFactory that does this via WindowPortMus::RequestCompositorFrameSink: https://cs.chromium.org/chromium/src/ui/aura/mus/window_port_mus.cc?rcl=7200acac17a321b76b0f410f1833b7ce6daccfd8&l=109

 
Blocking: 730193
Description: Show this description
Summary: Content needs way to get FrameSinkManager and ClientCompositorFrameSink to submit CompositorFrames to the gpu process when mus is enabled (was: GpuChildThread should supply FrameSinkManager to submit CompositorFrames to the gpu process when mus is enabled)
Cc: rjkroege@chromium.org fsam...@chromium.org sadrul@chromium.org
If anyone has thoughts/advice, or this overlaps with anyone, or anyone has patches to contribute please lmk.

Comment 5 by danakj@chromium.org, Jun 12 2017

Next steps here are:

1. Make a command line flag. Behind it do:
2. Make GpuChildThread in the service make a MojoFrameSinkManager on a display compositor thread. It will use a DisplayProvider to create CompositorFrameSinks. Fady believes GpuDisplayProvider will work for this which already exists.
3. Make a VizContextFactory/ImageTransportFactory that makes Mojo-based CompositorFrameSinks instead of DirectCompositorFrameSink. These CompositorFrameSinks will have to resize the display also based on the UI frame sizes, and deal with color spaces etc. Things that currently go through ContenxtFactoryPrivate.

Comment 6 by danakj@chromium.org, Jun 12 2017

Cc: danakj@chromium.org
Owner: fsam...@chromium.org
Status: Started (was: Assigned)
fsamuel is doing the remainder of this work
Blocking: 732900
Project Member

Comment 8 by bugdroid1@chromium.org, Jun 13 2017

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

commit aee671743ba1c7bc1cb08d691ab4f64500aefc56
Author: danakj <danakj@chromium.org>
Date: Tue Jun 13 19:28:14 2017

Move ownership of MojoFrameSinkManager out of FrameSinkManagerHost.

FrameSinkManagerHost is meant to be held in the Browser process to
give friendly C++ access over mojo to the FrameSinkManager
implementation (which is MojoFrameSinkManager).

Currently the FrameSinkManager is in the Browser too, but we want to
be able to move it, at which point FrameSinkManagerHost can no longer
own it. So we move it out to GpuProcessTransportFactory which will
be able to optionally own it when the display compositor is in the
browser process.

Since the ImageTransportFactory now needs a MessageLoop, we must
create one in RenderViewHostTestEnabler, but that collides with the
TestBrowserThreadBundle in many tests. So, we make it only create a
MessageLoop if one doesn't already exist, and we adjust construction
ordering in tests so that TestBrowserThreadBundle is always created
before RenderViewHostTestEnabler.

Since TestBrowserThreadBundle is created earlier, it also gets
destroyed later. This exposed a flaw in MockRenderProcessHost which
can double-free itself if its posted DeleteSoon is allowed to run,
since RenderViewHostTestEnabler deletes the object directly as well.
So we ensure the posted delete is cancelled if another delete happens
in the meantime.

ExtensionsTest sets up a BrowserClient and must keep it alive until
the MessageLoop/TestBrowserThreadBundle is destroyed in case any tasks
posted would try to use the BrowserClient.

extensions::TestExtensionEnvironment also provides a MessageLoop,
similar to TestBrowserThreadBundle, so must be constructed before
RenderViewHostTestEnabler. We pass it to the constructor for tests
that want to use both together, as we did for the
TestBrowserThreadBundle.

R=fsamuel@chromium.org

Bug:  730213 
Change-Id: I6cb0670efd05224fe3a3d98939bcaa32a56cc9ae
Reviewed-on: https://chromium-review.googlesource.com/527675
Commit-Queue: danakj <danakj@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: kylechar <kylechar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#479096}
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/chrome/browser/extensions/extension_service_test_base.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/chrome/browser/extensions/extension_service_test_base.h
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/chrome/browser/renderer_context_menu/render_view_context_menu_unittest.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/components/viz/frame_sinks/mojo_frame_sink_manager.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/components/viz/frame_sinks/mojo_frame_sink_manager.h
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/components/viz/host/frame_sink_manager_host.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/components/viz/host/frame_sink_manager_host.h
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/content/browser/browser_main_loop.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/content/browser/browser_main_loop.h
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/content/browser/compositor/gpu_process_transport_factory.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/content/browser/compositor/gpu_process_transport_factory.h
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/content/browser/compositor/reflector_impl_unittest.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/content/browser/compositor/test/no_transport_image_transport_factory.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/content/browser/compositor/test/no_transport_image_transport_factory.h
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/content/browser/renderer_host/compositor_impl_android.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/content/browser/renderer_host/offscreen_canvas_provider_impl_unittest.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/content/browser/renderer_host/render_widget_host_view_mac_editcommand_helper.h
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/content/browser/renderer_host/render_widget_host_view_mac_editcommand_helper_unittest.mm
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/content/public/test/mock_render_process_host.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/content/public/test/mock_render_process_host.h
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/content/public/test/test_renderer_host.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/content/public/test/test_renderer_host.h
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/content/test/BUILD.gn
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/extensions/browser/api/bluetooth/bluetooth_event_router_unittest.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/extensions/browser/api/file_handlers/mime_util_unittest.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/extensions/browser/api/storage/storage_frontend_unittest.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/extensions/browser/api_unittest.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/extensions/browser/api_unittest.h
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/extensions/browser/app_window/app_window_geometry_cache_unittest.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/extensions/browser/content_hash_fetcher_unittest.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/extensions/browser/content_verify_job_unittest.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/extensions/browser/event_router_unittest.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/extensions/browser/extension_icon_image_unittest.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/extensions/browser/extensions_test.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/extensions/browser/extensions_test.h
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/extensions/browser/image_loader_unittest.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/extensions/browser/load_monitoring_extension_host_queue_unittest.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/extensions/browser/mojo/keep_alive_impl_unittest.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/extensions/browser/requirements_checker_unittest.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/extensions/browser/sandboxed_unpacker_unittest.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/extensions/browser/updater/update_service_unittest.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/extensions/browser/warning_service_unittest.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/extensions/shell/browser/api/identity/identity_api_unittest.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/extensions/shell/browser/shell_native_app_window_aura_unittest.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/extensions/shell/browser/shell_oauth2_token_service_unittest.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/services/ui/gpu/gpu_main.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/ui/aura/demo/demo_main.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/ui/compositor/test/context_factories_for_test.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/ui/compositor/test/in_process_context_factory.cc
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/ui/compositor/test/in_process_context_factory.h
[modify] https://crrev.com/aee671743ba1c7bc1cb08d691ab4f64500aefc56/ui/views/examples/examples_main.cc

Project Member

Comment 9 by bugdroid1@chromium.org, Jun 15 2017

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

commit 279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e
Author: Fady Samuel <fsamuel@chromium.org>
Date: Thu Jun 15 01:38:26 2017

Clean up components/viz directory structure

This CL does the following:

1. Move components/viz/frame_sinks => components/viz/service/frame_sinks
2. Move components/viz/display_compositor =>
    components/viz/service/display_compositor
3. components/viz/service is a component
4. components/viz/host no longer depends on components/viz/service.
   This required moving ConnectWithInProcessFrameSinkManager to
   surface_utils in content/browser/compositor

This CL is some prerequisite cleanup for using MojoFrameSinkManager in
gpu_child_thread.

TBR=piman@chromium.org

Bug:  730213 
Change-Id: I9f74d7ced352bf2875c4302c3e087c713e94e8c0
Reviewed-on: https://chromium-review.googlesource.com/535796
Commit-Queue: Fady Samuel <fsamuel@chromium.org>
Reviewed-by: Fady Samuel <fsamuel@chromium.org>
Reviewed-by: danakj <danakj@chromium.org>
Cr-Commit-Position: refs/heads/master@{#479574}
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/BUILD.gn
[delete] https://crrev.com/05eca95949c62b10bf4dad015e534724fef0874d/components/viz/BUILD.gn
[delete] https://crrev.com/05eca95949c62b10bf4dad015e534724fef0874d/components/viz/display_compositor/BUILD.gn
[delete] https://crrev.com/05eca95949c62b10bf4dad015e534724fef0874d/components/viz/display_compositor/compositor_overlay_candidate_validator.h
[delete] https://crrev.com/05eca95949c62b10bf4dad015e534724fef0874d/components/viz/frame_sinks/BUILD.gn
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/host/BUILD.gn
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/host/frame_sink_manager_host.cc
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/host/frame_sink_manager_host.h
[add] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/BUILD.gn
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/DEPS
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/OWNERS
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/buffer_queue.cc
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/buffer_queue.h
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/buffer_queue_unittest.cc
[add] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/compositor_overlay_candidate_validator.h
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/compositor_overlay_candidate_validator_android.cc
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/compositor_overlay_candidate_validator_android.h
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/compositor_overlay_candidate_validator_mac.h
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/compositor_overlay_candidate_validator_mac.mm
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/compositor_overlay_candidate_validator_ozone.cc
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/compositor_overlay_candidate_validator_ozone.h
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/compositor_overlay_candidate_validator_win.cc
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/compositor_overlay_candidate_validator_win.h
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/display_compositor_test_suite.cc
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/display_compositor_test_suite.h
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/display_output_surface.cc
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/display_output_surface.h
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/display_output_surface_ozone.cc
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/display_output_surface_ozone.h
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/display_provider.h
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/gl_helper.cc
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/gl_helper.h
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/gl_helper_benchmark.cc
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/gl_helper_readback_support.cc
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/gl_helper_readback_support.h
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/gl_helper_scaling.cc
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/gl_helper_scaling.h
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/gl_helper_unittest.cc
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/gpu_display_provider.cc
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/gpu_display_provider.h
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/host_shared_bitmap_manager.cc
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/host_shared_bitmap_manager.h
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/host_shared_bitmap_manager_unittest.cc
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/run_all_unittests.cc
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/display_compositor/yuv_readback_unittest.cc
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/frame_sinks/DEPS
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/frame_sinks/frame_eviction_manager.cc
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/frame_sinks/frame_eviction_manager.h
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/frame_sinks/frame_evictor.cc
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/frame_sinks/frame_evictor.h
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/frame_sinks/gpu_compositor_frame_sink.cc
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/frame_sinks/gpu_compositor_frame_sink.h
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/frame_sinks/gpu_compositor_frame_sink_delegate.h
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/frame_sinks/gpu_root_compositor_frame_sink.cc
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/frame_sinks/gpu_root_compositor_frame_sink.h
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/frame_sinks/mojo_frame_sink_manager.cc
[rename] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/frame_sinks/mojo_frame_sink_manager.h
[add] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/components/viz/service/viz_service_export.h
[delete] https://crrev.com/05eca95949c62b10bf4dad015e534724fef0874d/components/viz/viz_export.h
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/browser/BUILD.gn
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/browser/browser_main_loop.cc
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/browser/compositor/browser_compositor_output_surface.cc
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/browser/compositor/gpu_browser_compositor_output_surface.cc
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/browser/compositor/gpu_output_surface_mac.mm
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/browser/compositor/gpu_process_transport_factory.cc
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/browser/compositor/gpu_surfaceless_browser_compositor_output_surface.cc
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/browser/compositor/offscreen_browser_compositor_output_surface.cc
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/browser/compositor/owned_mailbox.cc
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/browser/compositor/reflector_impl_unittest.cc
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/browser/compositor/reflector_texture.cc
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/browser/compositor/surface_utils.cc
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/browser/compositor/surface_utils.h
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/browser/compositor/test/no_transport_image_transport_factory.cc
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/browser/compositor/test/no_transport_image_transport_factory.h
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/browser/media/capture/aura_window_capture_machine.cc
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/browser/renderer_host/compositor_impl_android.cc
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/browser/renderer_host/delegated_frame_host.cc
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/browser/renderer_host/delegated_frame_host.h
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/browser/renderer_host/media/video_capture_buffer_pool_unittest.cc
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/browser/renderer_host/media/video_capture_controller.cc
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/browser/renderer_host/offscreen_canvas_provider_impl_unittest.cc
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/browser/renderer_host/render_message_filter.h
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/browser/renderer_host/render_widget_host_impl.cc
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/browser/renderer_host/render_widget_host_view_android.cc
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/browser/renderer_host/render_widget_host_view_android.h
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/browser/renderer_host/render_widget_host_view_aura.cc
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/gpu/BUILD.gn
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/gpu/DEPS
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/content/test/BUILD.gn
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/services/ui/BUILD.gn
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/services/ui/gpu/BUILD.gn
[modify] https://crrev.com/279f5f0bbea4a94a0baa4637d3a6f0e19dfffd0e/services/ui/gpu/gpu_main.cc

Blocking: -732900
Project Member

Comment 11 by bugdroid1@chromium.org, Jun 28 2017

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

commit 71457f441e1bda67e702b0a3bb01271ac9475388
Author: Fady Samuel <fsamuel@chromium.org>
Date: Wed Jun 28 20:02:25 2017

Mus: Get rid of compositor thread

The display compositor can run on the GpuMain thread. This CL gets
rid of the extra compositor thread in GpuMain.

In a subsequent CL, GpuChildThread will be refactored to use
GpuMain.

Bug:  730213 
Change-Id: I097b72ad04a53da2f0e23d6fb3af045fc2144b56
Reviewed-on: https://chromium-review.googlesource.com/550357
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Fady Samuel <fsamuel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#483108}
[modify] https://crrev.com/71457f441e1bda67e702b0a3bb01271ac9475388/services/ui/gpu/gpu_main.cc
[modify] https://crrev.com/71457f441e1bda67e702b0a3bb01271ac9475388/services/ui/gpu/gpu_main.h

Owner: ----
Status: Available (was: Started)
I'm not actively working on this bug at the moment so I'm unassigning myself.
Cc: kylec...@chromium.org
Owner: sadrul@chromium.org
Status: Started (was: Available)
I am going to hook up GpuChildThread to use GpuMain.
Project Member

Comment 14 by bugdroid1@chromium.org, Oct 3 2017

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

commit db9021eea297d995efc919974258a0c23bfd0612
Author: Sadrul Habib Chowdhury <sadrul@chromium.org>
Date: Tue Oct 03 03:07:57 2017

gpu: Use GpuInit for in-process gpu.

gpu::GpuInit is used in the gpu process to initialize gpu related. Do
the same when gpu is initialized in the host process.

Instead of having InProcessGpuThread and content::GpuMain separately
owning their own GpuInit, move the ownership to GpuChildThread.

BUG= 730213 

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: Ic2964da3d4cd8a39a59d5b69ce74024a1685f88a
Reviewed-on: https://chromium-review.googlesource.com/695908
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#505936}
[modify] https://crrev.com/db9021eea297d995efc919974258a0c23bfd0612/content/gpu/gpu_child_thread.cc
[modify] https://crrev.com/db9021eea297d995efc919974258a0c23bfd0612/content/gpu/gpu_child_thread.h
[modify] https://crrev.com/db9021eea297d995efc919974258a0c23bfd0612/content/gpu/gpu_main.cc
[modify] https://crrev.com/db9021eea297d995efc919974258a0c23bfd0612/content/gpu/in_process_gpu_thread.cc
[modify] https://crrev.com/db9021eea297d995efc919974258a0c23bfd0612/gpu/ipc/service/gpu_init.cc
[modify] https://crrev.com/db9021eea297d995efc919974258a0c23bfd0612/gpu/ipc/service/gpu_init.h
[modify] https://crrev.com/db9021eea297d995efc919974258a0c23bfd0612/services/ui/gpu/gpu_main.cc

Project Member

Comment 15 by bugdroid1@chromium.org, Oct 4 2017

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

commit 6869b788a463374e061204a19708cc29fc460bf8
Author: Sadrul Habib Chowdhury <sadrul@chromium.org>
Date: Wed Oct 04 18:24:10 2017

viz: Re-arrange the threads in ui::GpuMain.

Create a separate thread for the compositor. Use the thread the GpuMain
instance is created on as the thread for the GpuService. This allows
using it in content (in GpuChildThread), where the main thread is used
for the gpu service.

For the mus window server, until the gpu process-split happens, create
a separate thread for the gpu service from the DefaultGpuHost. After
the process split, the main thread of the new process can be used for
the gpu service (like GpuChildThread in content).

BUG= 730213 

Change-Id: I02eb4fef21bfbdac92201c35b96ac15473a43567
Reviewed-on: https://chromium-review.googlesource.com/693075
Reviewed-by: kylechar <kylechar@chromium.org>
Reviewed-by: Fady Samuel <fsamuel@chromium.org>
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#506450}
[modify] https://crrev.com/6869b788a463374e061204a19708cc29fc460bf8/services/ui/gpu/gpu_main.cc
[modify] https://crrev.com/6869b788a463374e061204a19708cc29fc460bf8/services/ui/gpu/gpu_main.h
[modify] https://crrev.com/6869b788a463374e061204a19708cc29fc460bf8/services/ui/ws/gpu_host.cc
[modify] https://crrev.com/6869b788a463374e061204a19708cc29fc460bf8/services/ui/ws/gpu_host.h

Project Member

Comment 16 by bugdroid1@chromium.org, Oct 5 2017

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

commit 81ed4437bf68ffa38c21091292fe0e2f64090a1b
Author: Samuel Huang <huangs@chromium.org>
Date: Thu Oct 05 14:37:51 2017

Revert "viz: Re-arrange the threads in ui::GpuMain."

This reverts commit 6869b788a463374e061204a19708cc29fc460bf8.

Reason for revert: This seems to cause service_unittests flake.

Original change's description:
> viz: Re-arrange the threads in ui::GpuMain.
> 
> Create a separate thread for the compositor. Use the thread the GpuMain
> instance is created on as the thread for the GpuService. This allows
> using it in content (in GpuChildThread), where the main thread is used
> for the gpu service.
> 
> For the mus window server, until the gpu process-split happens, create
> a separate thread for the gpu service from the DefaultGpuHost. After
> the process split, the main thread of the new process can be used for
> the gpu service (like GpuChildThread in content).
> 
> BUG= 730213 
> 
> Change-Id: I02eb4fef21bfbdac92201c35b96ac15473a43567
> Reviewed-on: https://chromium-review.googlesource.com/693075
> Reviewed-by: kylechar <kylechar@chromium.org>
> Reviewed-by: Fady Samuel <fsamuel@chromium.org>
> Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#506450}

TBR=sadrul@chromium.org,fsamuel@chromium.org,kylechar@chromium.org

Change-Id: Ie6daf8a9306da93637d6e69972d4f145192030bb
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  730213 
Reviewed-on: https://chromium-review.googlesource.com/701310
Reviewed-by: Samuel Huang <huangs@chromium.org>
Commit-Queue: Samuel Huang <huangs@chromium.org>
Cr-Commit-Position: refs/heads/master@{#506727}
[modify] https://crrev.com/81ed4437bf68ffa38c21091292fe0e2f64090a1b/services/ui/gpu/gpu_main.cc
[modify] https://crrev.com/81ed4437bf68ffa38c21091292fe0e2f64090a1b/services/ui/gpu/gpu_main.h
[modify] https://crrev.com/81ed4437bf68ffa38c21091292fe0e2f64090a1b/services/ui/ws/gpu_host.cc
[modify] https://crrev.com/81ed4437bf68ffa38c21091292fe0e2f64090a1b/services/ui/ws/gpu_host.h

Project Member

Comment 17 by bugdroid1@chromium.org, Oct 6 2017

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

commit baaed53adff0cfa3cc8a455bbd3d7a9e0851a223
Author: Sadrul Habib Chowdhury <sadrul@chromium.org>
Date: Fri Oct 06 05:14:39 2017

viz: Re-arrange the threads in ui::GpuMain.

This reverts commit 81ed4437bf68ffa38c21091292fe0e2f64090a1b.

Create a separate thread for the compositor. Use the thread the GpuMain
instance is created on as the thread for the GpuService. This allows
using it in content (in GpuChildThread), where the main thread is used
for the gpu service.

For the mus window server, until the gpu process-split happens, create
a separate thread for the gpu service from the DefaultGpuHost. After
the process split, the main thread of the new process can be used for
the gpu service (like GpuChildThread in content).

BUG= 730213 
TBR=kylechar@chromium.org,fsamuel@chromium.org

Change-Id: I96b5dc9e74e1c14db62659c686e537a3c131e2d7
Reviewed-on: https://chromium-review.googlesource.com/704158
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#506976}
[modify] https://crrev.com/baaed53adff0cfa3cc8a455bbd3d7a9e0851a223/services/ui/gpu/gpu_main.cc
[modify] https://crrev.com/baaed53adff0cfa3cc8a455bbd3d7a9e0851a223/services/ui/gpu/gpu_main.h
[modify] https://crrev.com/baaed53adff0cfa3cc8a455bbd3d7a9e0851a223/services/ui/ws/gpu_host.cc
[modify] https://crrev.com/baaed53adff0cfa3cc8a455bbd3d7a9e0851a223/services/ui/ws/gpu_host.h

Project Member

Comment 18 by bugdroid1@chromium.org, Oct 12 2017

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

commit dbe4da994f0ef4aeb6c721cfe190055d30292bd8
Author: Sadrul Habib Chowdhury <sadrul@chromium.org>
Date: Thu Oct 12 15:53:15 2017

gpu: Use the same mojom.GpuMain impl in chrome-gpu and mus-gpu.

Use the same mojom.GpuMain implementation in ui::GpuMain from both the
mus window-server, and from regular chrome gpu process. Notable changes:
 . ui::GpuMain conditionally creates the compositor thread. With mus
   window-server, it is always created. In chrome-gpu process, it will
   be created only if --enable-viz flag is used.
 . ui::GpuMain::ExternalDependencies struct is introduced, so that
   chrome-gpu can inject the appropriate shut-down event for ipc, the
   appropriate gpu::SyncPointManager (e.g. for android webview) etc. to
   ui::GpuMain.
 . Allow injecting an already initialized GpuInit instance into 
   ui::GpuMain. This allows chrome-gpu to do its own initialization 
   (e.g. entering the sandbox, etc.) that ui::GpuMain itself cannot do 
   [yet].
 . ui::GpuMain::Delegate interface is introduced, to notify when the
   gpu service initialization succeeds or fails.

BUG= 730213 

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: I87a40121ee5881f64046dab46fd6558925ce1d06
Reviewed-on: https://chromium-review.googlesource.com/695724
Reviewed-by: kylechar <kylechar@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508357}
[modify] https://crrev.com/dbe4da994f0ef4aeb6c721cfe190055d30292bd8/components/viz/service/gl/gpu_service_impl.cc
[modify] https://crrev.com/dbe4da994f0ef4aeb6c721cfe190055d30292bd8/components/viz/service/gl/gpu_service_impl.h
[modify] https://crrev.com/dbe4da994f0ef4aeb6c721cfe190055d30292bd8/content/gpu/gpu_child_thread.cc
[modify] https://crrev.com/dbe4da994f0ef4aeb6c721cfe190055d30292bd8/content/gpu/gpu_child_thread.h
[modify] https://crrev.com/dbe4da994f0ef4aeb6c721cfe190055d30292bd8/content/gpu/gpu_main.cc
[modify] https://crrev.com/dbe4da994f0ef4aeb6c721cfe190055d30292bd8/services/ui/gpu/gpu_main.cc
[modify] https://crrev.com/dbe4da994f0ef4aeb6c721cfe190055d30292bd8/services/ui/gpu/gpu_main.h
[modify] https://crrev.com/dbe4da994f0ef4aeb6c721cfe190055d30292bd8/services/ui/ws/gpu_host.cc

Project Member

Comment 19 by bugdroid1@chromium.org, Oct 12 2017

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

commit 297dbb08b32b17bff74ec96cf361b6c508cd903a
Author: Sadrul Habib Chowdhury <sadrul@chromium.org>
Date: Thu Oct 12 20:20:05 2017

gpu: Use the default message-pump on the compositor thread.

BUG= 730213 

Change-Id: I06720ef738ae30285316751dc8e238e226d2f32c
Reviewed-on: https://chromium-review.googlesource.com/714244
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508439}
[modify] https://crrev.com/297dbb08b32b17bff74ec96cf361b6c508cd903a/services/ui/gpu/gpu_main.cc

This is fixed/covered in other bugs by this point I think?
Status: Fixed (was: Started)
Yep, this should be fixed.
Components: -MUS Internals>Services>WindowService

Sign in to add a comment