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

Issue 857571 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jul 11
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocking:
issue 857575



Sign in to add a comment

references_surfaces in CompositorFrameMetadata should also have primary SurfaceIds

Project Member Reported by samans@chromium.org, Jun 28 2018

Issue description

references_surfaces in CompositorFrameMetadata is used for determining SurfaceReferences in the viz process. Right now it only contains the fallback SurfaceIds because SurfaceReference=fallback. However, we want the reference to be the latest available surface in the fallback to primary range so we need to know the primary SurfaceIds as well. Each member of references_surfaces should be a pair of SurfaceIds, one the fallback and one the primary.

struct SurfaceRange {
base::Optional<SurfaceId> start;
SurfaceId end;
};

struct CompositorFrameMetadata {
...
std::vector<SurfaceRange> referenced_surfaces;
};
 

Comment 1 by samans@chromium.org, Jun 28 2018

Description: Show this description

Comment 2 by samans@chromium.org, Jun 28 2018

Description: Show this description

Comment 3 by samans@chromium.org, Jun 28 2018

Initially Viz will just ignore the primary and use fallback as the SurfaceReference. In a followup CL this will change.

Comment 4 by samans@chromium.org, Jun 28 2018

Blocking: 857575
Cc: kylec...@chromium.org
Project Member

Comment 6 by bugdroid1@chromium.org, Jul 11

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

commit 227bfbd618acce7469b9f5700725dc85dc498c1f
Author: akaba <akaba@google.com>
Date: Wed Jul 11 21:46:43 2018

Include primary surfaceIds in reference surfaces for CompositorFrameMetaData.

LayerTreeHost and LayerTreeImpl will now store a surface range instead of a fallback surface.
A SurfaceRange consists of two SurfaceIds |start|, and |end| defining a range of surfaces between
the two surfaces. Currently and until a followup CL is merged the primary surface Id is not being
used and fallback surfaceId is used whenever we need a SurfaceId from a SurfaceRange, specifically
when computing SurfaceReferneces. This behavior will change later and the goal would be to return
the latest in flight surface instead.

Bug:  857571 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I6362008332fbdef260642a2d71d2b6512f901191
Reviewed-on: https://chromium-review.googlesource.com/1124978
Commit-Queue: Andre Kaba <akaba@google.com>
Reviewed-by: Fady Samuel <fsamuel@chromium.org>
Reviewed-by: Ken Buchanan <kenrb@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Bo <boliu@chromium.org>
Reviewed-by: Saman Sami <samans@chromium.org>
Cr-Commit-Position: refs/heads/master@{#574348}
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/android_webview/browser/surfaces_instance.cc
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/android_webview/browser/surfaces_instance.h
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/cc/layers/surface_layer.cc
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/cc/layers/surface_layer.h
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/cc/layers/surface_layer_unittest.cc
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/cc/trees/layer_tree_host.cc
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/cc/trees/layer_tree_host.h
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/cc/trees/layer_tree_host_impl.cc
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/cc/trees/layer_tree_host_impl.h
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/cc/trees/layer_tree_host_impl_unittest.cc
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/cc/trees/layer_tree_impl.cc
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/cc/trees/layer_tree_impl.h
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/components/viz/common/BUILD.gn
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/components/viz/common/quads/compositor_frame_metadata.h
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/components/viz/common/surfaces/local_surface_id.cc
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/components/viz/common/surfaces/local_surface_id.h
[add] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/components/viz/common/surfaces/surface_range.cc
[add] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/components/viz/common/surfaces/surface_range.h
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/components/viz/service/display/surface_aggregator.cc
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/components/viz/service/display/surface_aggregator_unittest.cc
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/components/viz/service/frame_sinks/compositor_frame_sink_support.h
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/components/viz/service/frame_sinks/compositor_frame_sink_support_unittest.cc
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/components/viz/service/frame_sinks/surface_synchronization_unittest.cc
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/components/viz/service/surfaces/surface.cc
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/components/viz/service/surfaces/surface.h
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/components/viz/test/compositor_frame_helpers.cc
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/components/viz/test/compositor_frame_helpers.h
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/content/public/test/hit_test_region_observer.cc
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/services/ui/ws/frame_generator.cc
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/services/ui/ws/frame_generator_unittest.cc
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/services/viz/public/cpp/compositing/compositor_frame_metadata_struct_traits.h
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/services/viz/public/cpp/compositing/struct_traits_unittest.cc
[add] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/services/viz/public/cpp/compositing/surface_range.typemap
[add] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/services/viz/public/cpp/compositing/surface_range_struct_traits.h
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/services/viz/public/cpp/compositing/typemaps.gni
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/services/viz/public/interfaces/BUILD.gn
[modify] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/services/viz/public/interfaces/compositing/compositor_frame_metadata.mojom
[add] https://crrev.com/227bfbd618acce7469b9f5700725dc85dc498c1f/services/viz/public/interfaces/compositing/surface_range.mojom

Status: Fixed (was: Assigned)

Sign in to add a comment