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

Issue 639950 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Aug 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Bug

Blocking:
issue 611105



Sign in to add a comment

Move Blimp Compositing to use delegated rendering.

Project Member Reported by khushals...@chromium.org, Aug 22 2016

Issue description

Currently the BlimpCompositor is the root compositor that draws to the cc::Display and maintains it own cc::Surfaces system.

This will not be possible when Blimp is embedded into Chrome, since Chrome has the Surfaces system and the UI compositor is the parent/root compositor that owns the Display. As a first step, make the Blimp compositing code share its output with the embedder using a cc::SurfaceLayer and put up a small Browser compositor in the app to provide the same functionalities that Chrome is expected to provide.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Aug 25 2016

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

commit a498580e603b732faa90ccd61b99bb36271e4308
Author: khushalsagar <khushalsagar@chromium.org>
Date: Thu Aug 25 05:36:46 2016

blimp: Move BlimpCompositor to use delegated rendering.

Currently the BlimpCompositor is the compositor that owns the
cc::Display and delegated frames from it are directed to the display
by the BlimpDelegatingOutputSurface. The lifetime of the display and
the surfaces system is tied to the lifetime of the cc::OutputSurface,
which is tied to the lifetime of the native widget.

This diverges from the behavior expected when Blimp is embedded in
Clank, which owns the Surfaces system and holds the UI compositor,
which is the parent compositor that will embed content from the
BlimpCompositor.

This patch adds a BrowserCompositor to the blimp app, which performs
the work of the UI compositor in Chrome. This ensures that Blimp always
shares its content using a cc::SurfaceLayer, and the embedder is
expected to own the cc::Surfaces system and push this content to the
cc::Display.

BUG= 639950 

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

[modify] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/BUILD.gn
[modify] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/client/BUILD.gn
[modify] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/client/app/android/blimp_compositor_manager_android.cc
[modify] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/client/app/android/blimp_compositor_manager_android.h
[modify] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/client/app/android/blimp_view.cc
[modify] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/client/app/android/blimp_view.h
[modify] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/client/app/android/java/src/org/chromium/blimp/BlimpView.java
[add] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/client/app/compositor/browser_compositor.cc
[add] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/client/app/compositor/browser_compositor.h
[modify] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/client/app/linux/blimp_display_manager.cc
[modify] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/client/app/linux/blimp_display_manager.h
[modify] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/client/core/BUILD.gn
[modify] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/client/core/compositor/BUILD.gn
[add] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/client/core/compositor/blimp_output_surface.h
[add] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/client/core/compositor/delegated_output_surface.cc
[add] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/client/core/compositor/delegated_output_surface.h
[add] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/client/core/compositor/delegated_output_surface_unittest.cc
[modify] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/client/feature/compositor/blimp_compositor.cc
[modify] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/client/feature/compositor/blimp_compositor.h
[modify] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/client/feature/compositor/blimp_compositor_manager.cc
[modify] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/client/feature/compositor/blimp_compositor_manager.h
[modify] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/client/feature/compositor/blimp_compositor_manager_unittest.cc
[modify] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/client/feature/compositor/blimp_compositor_unittest.cc
[modify] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/client/feature/compositor/blimp_context_provider.h
[delete] https://crrev.com/22db31fd2d3c0ecfe4661b092d64c106af1f561f/blimp/client/feature/compositor/blimp_delegating_output_surface.cc
[delete] https://crrev.com/22db31fd2d3c0ecfe4661b092d64c106af1f561f/blimp/client/feature/compositor/blimp_delegating_output_surface.h
[modify] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/client/feature/compositor/blimp_gpu_memory_buffer_manager.cc
[delete] https://crrev.com/22db31fd2d3c0ecfe4661b092d64c106af1f561f/blimp/client/feature/compositor/blimp_output_surface.cc
[delete] https://crrev.com/22db31fd2d3c0ecfe4661b092d64c106af1f561f/blimp/client/feature/compositor/blimp_output_surface.h
[modify] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/client/public/BUILD.gn
[modify] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/client/test/BUILD.gn
[modify] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/test/BUILD.gn
[modify] https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308/blimp/test/run_all_unittests.cc

Status: Fixed (was: Started)

Sign in to add a comment