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

Issue 610086 link

Starred by 5 users

Issue metadata

Status: Archived
Owner:
not on Chrome anymore
Closed: Aug 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

Use ui::Layer::SetShowSurface instead of SetTextureMailbox in exo code

Project Member Reported by reve...@chromium.org, May 7 2016

Issue description

Some benefits of doing this:

- Avoid the need to use the main thread context and the synchronization overhead of that.
- Easier to take advantage of more advanced compositing features, e.g. clipping, blend mode, alpha masks. 
- Will make Mus integration easier.
- Cheaper layer tree updates?
 
Aside, perhaps relevant, maybe I'm confused and need to be educated. mus explicitly doesn't include ui/compositor. It would probably be nicer for mus if exo used surfaces? 
Project Member

Comment 4 by bugdroid1@chromium.org, May 19 2016

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

commit 0c1bf2113c63491c9ebbe78f6dc45e184562c545
Author: jbauman <jbauman@chromium.org>
Date: Thu May 19 19:20:07 2016

SurfaceAggregator should check whether output is secure when drawing.

Currently the ui::Compositor checks whether the output is secure and
whether there's a copy output request on it before drawing a
secure_output_only texture. This is insufficient, because there may be a
copy output request on the final Surface and the compositor won't know
about it.

Instead pass that information through the TextureDrawQuad and allow the
SurfaceAggregator to check it.

BUG= 610086 
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

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

[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/ash/mus/stub_context_factory.h
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/ipc/cc_param_traits_macros.h
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/ipc/cc_param_traits_unittest.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/layers/heads_up_display_layer_impl.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/layers/layer_impl.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/layers/layer_impl.h
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/layers/nine_patch_layer_impl.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/layers/painted_scrollbar_layer_impl.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/layers/texture_layer_impl.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/layers/texture_layer_impl_unittest.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/layers/ui_resource_layer_impl.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/layers/video_layer_impl.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/output/gl_renderer_unittest.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/output/overlay_unittest.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/output/renderer_pixeltest.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/quads/draw_quad_perftest.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/quads/draw_quad_unittest.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/quads/texture_draw_quad.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/quads/texture_draw_quad.h
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/surfaces/display.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/surfaces/display.h
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/surfaces/surface_aggregator.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/surfaces/surface_aggregator.h
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/surfaces/surface_aggregator_perftest.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/surfaces/surface_aggregator_unittest.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/test/fake_proxy.h
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/test/layer_test_common.h
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/test/render_pass_test_utils.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/trees/layer_tree_host.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/trees/layer_tree_host.h
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/trees/layer_tree_host_impl.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/trees/layer_tree_host_impl.h
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/trees/layer_tree_impl.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/trees/layer_tree_impl.h
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/trees/proxy.h
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/trees/proxy_main.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/trees/proxy_main.h
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/trees/remote_channel_impl.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/trees/remote_channel_impl.h
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/trees/single_thread_proxy.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/cc/trees/single_thread_proxy.h
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/components/mus/public/interfaces/quads.mojom
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/content/browser/compositor/gpu_process_transport_factory.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/content/browser/compositor/gpu_process_transport_factory.h
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/mojo/converters/surfaces/surfaces_type_converters.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/mojo/converters/surfaces/tests/surface_unittest.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/ui/compositor/compositor.cc
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/ui/compositor/compositor.h
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/ui/compositor/test/in_process_context_factory.h
[modify] https://crrev.com/0c1bf2113c63491c9ebbe78f6dc45e184562c545/ui/views/mus/surface_context_factory.h

Project Member

Comment 5 by bugdroid1@chromium.org, May 25 2016

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

commit e3f55a5ad23fdcf4782bff12a6e5b39741ac9e72
Author: jbauman <jbauman@chromium.org>
Date: Wed May 25 20:07:57 2016

Create SurfaceManager with ui::InitializeContextFactoryForTests

This allows tests that create Surfaces to work.

BUG= 610086 

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

[modify] https://crrev.com/e3f55a5ad23fdcf4782bff12a6e5b39741ac9e72/ui/compositor/test/context_factories_for_test.cc

Project Member

Comment 6 by bugdroid1@chromium.org, May 28 2016

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

commit bd9586a9e4a658743483a781faf7b9747cee4688
Author: jbauman <jbauman@chromium.org>
Date: Sat May 28 01:09:03 2016

Add initial implementation of cc::Surfaces backend for exo.

This puts every buffer in a cc::Surface, and then uses a SurfaceLayer to
reference them from the compositor. This is disabled by default, but can
be enabled with the --use-exo-surface-layer flag.

At the moment it won't offer any performance improvements, as a new
SurfaceId is created for each frame, so the browser compositor has to
always commit and draw. This restriction can removed in future patches.

BUG= 610086 

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

[modify] https://crrev.com/bd9586a9e4a658743483a781faf7b9747cee4688/components/exo.gypi
[modify] https://crrev.com/bd9586a9e4a658743483a781faf7b9747cee4688/components/exo/BUILD.gn
[modify] https://crrev.com/bd9586a9e4a658743483a781faf7b9747cee4688/components/exo/display.cc
[modify] https://crrev.com/bd9586a9e4a658743483a781faf7b9747cee4688/components/exo/shell_surface_unittest.cc
[modify] https://crrev.com/bd9586a9e4a658743483a781faf7b9747cee4688/components/exo/sub_surface_unittest.cc
[modify] https://crrev.com/bd9586a9e4a658743483a781faf7b9747cee4688/components/exo/surface.cc
[modify] https://crrev.com/bd9586a9e4a658743483a781faf7b9747cee4688/components/exo/surface.h
[modify] https://crrev.com/bd9586a9e4a658743483a781faf7b9747cee4688/components/exo/surface_unittest.cc

Project Member

Comment 7 by bugdroid1@chromium.org, May 31 2016

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

commit 5ab42edc1361fee3b5255dd36bc8663dfb44cb5e
Author: jbauman <jbauman@chromium.org>
Date: Tue May 31 21:35:39 2016

Clear ui::Layer damaged_region_ after commit.

This was only being cleared for ui::Layers with PictureLayers and not
those with TextureLayers, so all frames afterwards would have
unnecessary damage.

BUG= 610086 

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

[modify] https://crrev.com/5ab42edc1361fee3b5255dd36bc8663dfb44cb5e/ui/compositor/layer.cc
[modify] https://crrev.com/5ab42edc1361fee3b5255dd36bc8663dfb44cb5e/ui/compositor/layer.h
[modify] https://crrev.com/5ab42edc1361fee3b5255dd36bc8663dfb44cb5e/ui/compositor/layer_unittest.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Jun 1 2016

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

commit 187e03fd3f2366163f35b40f8f0785d9ba0e643f
Author: guidou <guidou@chromium.org>
Date: Wed Jun 01 08:06:58 2016

Revert of Clear ui::Layer damaged_region_ after commit. (patchset #2 id:20001 of https://codereview.chromium.org/2018223002/ )

Reason for revert:
This CL is suspect of breaking Linux Tests bots.

See  crbug.com/616387 

I will reland if the revert doesn't fix the bots.

Original issue's description:
> Clear ui::Layer damaged_region_ after commit.
>
> This was only being cleared for ui::Layers with PictureLayers and not
> those with TextureLayers, so all frames afterwards would have
> unnecessary damage.
>
> BUG= 610086 
>
> Committed: https://crrev.com/5ab42edc1361fee3b5255dd36bc8663dfb44cb5e
> Cr-Commit-Position: refs/heads/master@{#396936}

TBR=danakj@chromium.org,jbauman@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 610086 

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

[modify] https://crrev.com/187e03fd3f2366163f35b40f8f0785d9ba0e643f/ui/compositor/layer.cc
[modify] https://crrev.com/187e03fd3f2366163f35b40f8f0785d9ba0e643f/ui/compositor/layer.h
[modify] https://crrev.com/187e03fd3f2366163f35b40f8f0785d9ba0e643f/ui/compositor/layer_unittest.cc

Project Member

Comment 9 by bugdroid1@chromium.org, Jun 2 2016

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

commit ac619ac038346cc2ea96c469ab0bcd23bd13d51c
Author: jbauman <jbauman@chromium.org>
Date: Thu Jun 02 22:22:03 2016

Clear ui::Layer damaged_region_ after commit.

This was only being cleared for ui::Layers with PictureLayers and not
those with TextureLayers, so all frames afterwards would have
unnecessary damage.

BUG= 610086 

Committed: https://crrev.com/5ab42edc1361fee3b5255dd36bc8663dfb44cb5e
Cr-Commit-Position: refs/heads/master@{#396936}

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

[modify] https://crrev.com/ac619ac038346cc2ea96c469ab0bcd23bd13d51c/ui/compositor/layer.cc
[modify] https://crrev.com/ac619ac038346cc2ea96c469ab0bcd23bd13d51c/ui/compositor/layer.h
[modify] https://crrev.com/ac619ac038346cc2ea96c469ab0bcd23bd13d51c/ui/compositor/layer_unittest.cc

Project Member

Comment 10 by bugdroid1@chromium.org, Jun 7 2016

Project Member

Comment 11 by bugdroid1@chromium.org, Jun 11 2016

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

commit f4c3f293f20d87a6383da5c8d2df4763d89f2999
Author: jbauman <jbauman@chromium.org>
Date: Sat Jun 11 00:57:33 2016

exo: Only create new SurfaceLayer if layer properties change.

This allows us to avoid an unnecessary browser compositor commit and draw if only the contents of the buffer change, which saves CPU.

BUG= 610086 

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

[modify] https://crrev.com/f4c3f293f20d87a6383da5c8d2df4763d89f2999/components/exo/pointer.cc
[modify] https://crrev.com/f4c3f293f20d87a6383da5c8d2df4763d89f2999/components/exo/shell_surface.cc
[modify] https://crrev.com/f4c3f293f20d87a6383da5c8d2df4763d89f2999/components/exo/sub_surface.cc
[modify] https://crrev.com/f4c3f293f20d87a6383da5c8d2df4763d89f2999/components/exo/surface.cc
[modify] https://crrev.com/f4c3f293f20d87a6383da5c8d2df4763d89f2999/components/exo/surface.h

Project Member

Comment 12 by bugdroid1@chromium.org, Jun 13 2016

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

commit 618878c32041208965f21b6cb64011a232fff332
Author: jbauman <jbauman@chromium.org>
Date: Mon Jun 13 21:52:42 2016

Enable cc::Surface backend for exo Surfaces by default.

BUG= 610086 

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

[modify] https://crrev.com/618878c32041208965f21b6cb64011a232fff332/components/exo/display.cc

Project Member

Comment 13 by bugdroid1@chromium.org, Jun 15 2016

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

commit f4c3f293f20d87a6383da5c8d2df4763d89f2999
Author: jbauman <jbauman@chromium.org>
Date: Sat Jun 11 00:57:33 2016

exo: Only create new SurfaceLayer if layer properties change.

This allows us to avoid an unnecessary browser compositor commit and draw if only the contents of the buffer change, which saves CPU.

BUG= 610086 

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

[modify] https://crrev.com/f4c3f293f20d87a6383da5c8d2df4763d89f2999/components/exo/pointer.cc
[modify] https://crrev.com/f4c3f293f20d87a6383da5c8d2df4763d89f2999/components/exo/shell_surface.cc
[modify] https://crrev.com/f4c3f293f20d87a6383da5c8d2df4763d89f2999/components/exo/sub_surface.cc
[modify] https://crrev.com/f4c3f293f20d87a6383da5c8d2df4763d89f2999/components/exo/surface.cc
[modify] https://crrev.com/f4c3f293f20d87a6383da5c8d2df4763d89f2999/components/exo/surface.h

Project Member

Comment 14 by bugdroid1@chromium.org, Jun 15 2016

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

commit 618878c32041208965f21b6cb64011a232fff332
Author: jbauman <jbauman@chromium.org>
Date: Mon Jun 13 21:52:42 2016

Enable cc::Surface backend for exo Surfaces by default.

BUG= 610086 

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

[modify] https://crrev.com/618878c32041208965f21b6cb64011a232fff332/components/exo/display.cc

Project Member

Comment 16 by bugdroid1@chromium.org, Jun 29 2016

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

commit ff110ea90bc1a199c903853d72a6641519e414f2
Author: John Bauman <jbauman@chromium.org>
Date: Wed Jun 29 01:12:30 2016

Clear ui::Layer damaged_region_ after commit.

This was only being cleared for ui::Layers with PictureLayers and not
those with TextureLayers, so all frames afterwards would have
unnecessary damage.

BUG= 610086 , 611127 

Committed: https://crrev.com/5ab42edc1361fee3b5255dd36bc8663dfb44cb5e
Cr-Commit-Position: refs/heads/master@{#396936}

Review-Url: https://codereview.chromium.org/2018223002
Cr-Commit-Position: refs/heads/master@{#397529}
(cherry picked from commit ac619ac038346cc2ea96c469ab0bcd23bd13d51c)

Review URL: https://codereview.chromium.org/2108043002 .

Cr-Commit-Position: refs/branch-heads/2743@{#515}
Cr-Branched-From: 2b3ae3b8090361f8af5a611712fc1a5ab2de53cb-refs/heads/master@{#394939}

[modify] https://crrev.com/ff110ea90bc1a199c903853d72a6641519e414f2/ui/compositor/layer.cc
[modify] https://crrev.com/ff110ea90bc1a199c903853d72a6641519e414f2/ui/compositor/layer.h
[modify] https://crrev.com/ff110ea90bc1a199c903853d72a6641519e414f2/ui/compositor/layer_unittest.cc

Project Member

Comment 17 by bugdroid1@chromium.org, Aug 28 2016

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

commit fb8a6e63a1a18ae7fced2c373fdc06ab5dc6786d
Author: reveman <reveman@chromium.org>
Date: Sun Aug 28 01:32:00 2016

ui: Remove unused Layer API.

This functionality is unused now that components/exo code is
using SetShowSurface.

This is effectively a reverts
8e3239023e76f7c30e8925bd541cc9b5965a54db and
fca687e21055ccab05cdd81b3fc8cf1b1f256d8c.

BUG= 549781 , 610086 
TBR=piman@chromium.org

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

[modify] https://crrev.com/fb8a6e63a1a18ae7fced2c373fdc06ab5dc6786d/ui/compositor/layer.cc
[modify] https://crrev.com/fb8a6e63a1a18ae7fced2c373fdc06ab5dc6786d/ui/compositor/layer.h

Status: Fixed (was: Untriaged)

Comment 19 by dchan@chromium.org, Jan 22 2018

Status: Archived (was: Fixed)

Sign in to add a comment