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

Issue 811970 link

Starred by 1 user

Issue metadata

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

Blocking:
issue 732555



Sign in to add a comment

Android UI Swap Buffer Callback Handling Under Viz

Project Member Reported by ericrk@chromium.org, Feb 13 2018

Issue description

Currently, Android UI code relies on swap buffer callbacks from OutputSurface. We need to ensure that these signals are preserved and provide similar information to what was previously available.

See code here: https://cs.chromium.org/chromium/src/content/browser/renderer_host/compositor_impl_android.cc?rcl=10662ebe5efee882d1ce38f8e23a68ec5a97a4e2&l=285
 
Cc: kylec...@chromium.org
That code you linked to should still work without changes, since that signal comes back via IPC anyways. The only potential complication is that VizDisplayCompositor (as implemented in VizProcessTransportFactory) uses a single ContextProvider for all compositors. I think there is only ever one active CompositorImpl on Android though, so that wouldn't be an issue?

Comment 2 by samans@chromium.org, May 22 2018

Owner: samans@chromium.org
Status: Assigned (was: Available)
Cc: samans@chromium.org
Labels: -Type-Feature -Pri-3 Pri-2 Type-Bug
Owner: ericrk@chromium.org
Discussed with samans@ - going to take a look at this.
Labels: Android-OOPD-Finch
Project Member

Comment 5 by bugdroid1@chromium.org, Jun 12 2018

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

commit fb43e0f4aa38ace18067d147e29035f646eb318b
Author: Eric Karl <ericrk@chromium.org>
Date: Tue Jun 12 18:43:20 2018

Handle Swap notifications for Android OOP-D

Android OOP-D doesn't currently receive swap notifications, as the
output surface has moved to the Viz process. This patch adds IPCs to
deliver these notifications via DisplayClient.

In order to reduce complexity and IPC spam, these notifications will
only be delivered on platforms that require them, as indicated in
RootCompositorFrameSinkParams.

Bug:  811970 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I5ddc23c59b7c6a5851e9f82d2bcb18c12bb25839
Reviewed-on: https://chromium-review.googlesource.com/1087869
Reviewed-by: Saman Sami <samans@chromium.org>
Reviewed-by: Ken Buchanan <kenrb@chromium.org>
Reviewed-by: Bo <boliu@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Eric Karl <ericrk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566515}
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/android_webview/browser/surfaces_instance.h
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/cc/test/fake_output_surface_client.h
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/components/viz/service/display/display.cc
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/components/viz/service/display/display.h
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/components/viz/service/display/display_client.h
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/components/viz/service/display/display_unittest.cc
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/components/viz/service/display/output_surface.cc
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/components/viz/service/display/output_surface.h
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/components/viz/service/display/output_surface_client.h
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/components/viz/service/display_embedder/display_provider.h
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/components/viz/service/display_embedder/gl_output_surface.cc
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/components/viz/service/display_embedder/gl_output_surface.h
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/components/viz/service/display_embedder/gpu_display_provider.cc
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/components/viz/service/display_embedder/gpu_display_provider.h
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/components/viz/service/display_embedder/skia_output_surface_impl.cc
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/components/viz/service/display_embedder/skia_output_surface_impl.h
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.h
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/components/viz/service/frame_sinks/direct_layer_tree_frame_sink.cc
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/components/viz/service/frame_sinks/direct_layer_tree_frame_sink.h
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/components/viz/service/frame_sinks/frame_sink_manager_impl.cc
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.h
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/components/viz/test/mock_display_client.h
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/components/viz/test/test_display_provider.cc
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/components/viz/test/test_display_provider.h
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/components/viz/test/test_layer_tree_frame_sink.cc
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/components/viz/test/test_layer_tree_frame_sink.h
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/content/browser/compositor/in_process_display_client.cc
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/content/browser/compositor/in_process_display_client.h
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/content/browser/renderer_host/compositor_impl_android.cc
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/content/browser/renderer_host/compositor_impl_android.h
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/content/browser/renderer_host/compositor_impl_android_browsertest.cc
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/content/renderer/android/synchronous_layer_tree_frame_sink.h
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/services/viz/privileged/interfaces/compositing/display_private.mojom
[modify] https://crrev.com/fb43e0f4aa38ace18067d147e29035f646eb318b/services/viz/privileged/interfaces/compositing/frame_sink_manager.mojom

Comment 6 by ericrk@chromium.org, Jun 12 2018

Status: Fixed (was: Assigned)

Sign in to add a comment