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

Issue 758707 link

Starred by 1 user

Issue metadata

Status: Available
Owner: ----
Cc:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Feature



Sign in to add a comment

Create builder/API to build CompositorFrames

Project Member Reported by kylec...@chromium.org, Aug 24 2017

Issue description

There are many parts of Chrome where something builds a simple CompositorFrame directly. This has resulted in bugs where CompositorFrames are built incorrectly. There is a desire for a builder/API that helps construct simple CompositorFrames without using the layer compositor.

The builder should probably work for the following use cases:
1. exo
2. OffscreenCanvas
3. FaskInk app
4. Android webview
5. FrameGenerator
6. Clank UI (maybe?)
 
Cc: aelias@chromium.org danakj@chromium.org
Labels: -Pri-2 Pri-3
Owner: ----
Status: Available (was: Assigned)
It doesn't look like I'll get to this soon. I started auditing where we create CompositorFrames by hand, so I'll leave that info here:

ash::FastInkView::UpdateSurface
 -One RenderPass
 -One TextureDrawQuad

exo::SurfaceTreeHost::SubmitCompositorFrame
 -One RenderPass
 -Maybe multiple TextureDrawQuads

ui::ws::FrameGenerator::GenerateCompositorFrame
 -Potentially two RenderPasses
 -First RenderPass has SurfaceDrawQuad
 -Second RenderPass has RenderPassDrawQuad with filter

blink::OffscreenCanvasFrameDispatcherImpl::DispatchFrame
 -One RenderPass
 -One TextureDrawQuad

android_webview::SurfacesInstance::SetSolidColorRootFrame
 -One RenderPass
 -One SolidColorDrawQuad

android_webview::SurfacesInstance::DrawAndSwap
 -One RenderPass
 -One SurfaceDrawQuad
Project Member

Comment 4 by bugdroid1@chromium.org, Dec 5 2017

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

commit 30a805f4ca579e35afd03268f11cc44912cb4cee
Author: kylechar <kylechar@chromium.org>
Date: Tue Dec 05 19:16:32 2017

Add CompositorFrameBuilder for tests.

Add a class that helps build valid CompostiorFrames for tests. Also
convert some tests to use the builder and update existing helper
functions.

Bug: 758707
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: I293ef25799d2db398e905f34e5eb0650a3525677
Reviewed-on: https://chromium-review.googlesource.com/796931
Reviewed-by: Timothy Dresser <tdresser@chromium.org>
Reviewed-by: Bo <boliu@chromium.org>
Reviewed-by: Fady Samuel <fsamuel@chromium.org>
Commit-Queue: kylechar <kylechar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#521774}
[modify] https://crrev.com/30a805f4ca579e35afd03268f11cc44912cb4cee/android_webview/browser/test/rendering_test.cc
[modify] https://crrev.com/30a805f4ca579e35afd03268f11cc44912cb4cee/components/viz/host/host_frame_sink_manager_unittest.cc
[modify] https://crrev.com/30a805f4ca579e35afd03268f11cc44912cb4cee/components/viz/service/display/display_unittest.cc
[modify] https://crrev.com/30a805f4ca579e35afd03268f11cc44912cb4cee/components/viz/service/display/surface_aggregator_perftest.cc
[modify] https://crrev.com/30a805f4ca579e35afd03268f11cc44912cb4cee/components/viz/service/display/surface_aggregator_pixeltest.cc
[modify] https://crrev.com/30a805f4ca579e35afd03268f11cc44912cb4cee/components/viz/service/display/surface_aggregator_unittest.cc
[modify] https://crrev.com/30a805f4ca579e35afd03268f11cc44912cb4cee/components/viz/service/frame_sinks/compositor_frame_sink_support_unittest.cc
[modify] https://crrev.com/30a805f4ca579e35afd03268f11cc44912cb4cee/components/viz/service/frame_sinks/direct_layer_tree_frame_sink_unittest.cc
[modify] https://crrev.com/30a805f4ca579e35afd03268f11cc44912cb4cee/components/viz/service/frame_sinks/surface_references_unittest.cc
[modify] https://crrev.com/30a805f4ca579e35afd03268f11cc44912cb4cee/components/viz/service/frame_sinks/surface_synchronization_unittest.cc
[modify] https://crrev.com/30a805f4ca579e35afd03268f11cc44912cb4cee/components/viz/service/frame_sinks/video_detector_unittest.cc
[modify] https://crrev.com/30a805f4ca579e35afd03268f11cc44912cb4cee/components/viz/service/surfaces/surface_hittest_unittest.cc
[modify] https://crrev.com/30a805f4ca579e35afd03268f11cc44912cb4cee/components/viz/service/surfaces/surface_unittest.cc
[modify] https://crrev.com/30a805f4ca579e35afd03268f11cc44912cb4cee/components/viz/test/DEPS
[modify] https://crrev.com/30a805f4ca579e35afd03268f11cc44912cb4cee/components/viz/test/compositor_frame_helpers.cc
[modify] https://crrev.com/30a805f4ca579e35afd03268f11cc44912cb4cee/components/viz/test/compositor_frame_helpers.h
[modify] https://crrev.com/30a805f4ca579e35afd03268f11cc44912cb4cee/components/viz/test/surface_hittest_test_helpers.cc
[modify] https://crrev.com/30a805f4ca579e35afd03268f11cc44912cb4cee/content/browser/renderer_host/offscreen_canvas_provider_impl_unittest.cc
[modify] https://crrev.com/30a805f4ca579e35afd03268f11cc44912cb4cee/content/browser/renderer_host/render_widget_host_unittest.cc

Project Member

Comment 5 by sheriffbot@chromium.org, Dec 6

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Status: Available (was: Untriaged)
This is probably still something interesting to look at.

Sign in to add a comment