Android WebView should use Display compositor for software draws |
|||||||
Issue descriptionCurrently, in LayerTreeHostImpl, WebView runs in a resourceless draw mode which creates a temporary SoftwareRenderer. As part of the effort to use the display compositor everywhere, WebView should have a CompositorFrameSink that is either in-process or out-of-process and owns a cc::Display that it submits compositorframes to.
,
Apr 22 2016
it will submit software frames to the software cc::Display. hardware frames will go OOP to the parent compositor. (this all matches current behaviours)
,
Apr 28 2016
,
Apr 28 2016
,
Jun 30 2016
,
Jun 30 2016
Everything is new and exciting in SynchronousOutputSurface, but I almost have this written, yay. Bo can you explain fallback ticks? Do they happen while doing a software draw? Can I dcheck there isn't one running, or etc..
,
Jun 30 2016
Fallback tick happens when an invalidate is sent up to the browser, but a real draw from browser does not come back within a timeout. It unblocks the cc scheduler which may be waiting for a frame N to be drawn at least once before committing frame N+1. The result of the fallback tick is just thrown away in the renderer. The ideal place to put this would be in the scheduler itself, but having arbitrary timeout seem to suck in cc code rather than webview-only code. Alternative is in synchronous compositor mode, don't wait for first frame to be drawn at all; but that potentially spins frames commit/raster/activation more frequently than having a longer timeout, and I don't have a good sense if that will be a problem in practice.
,
Jun 30 2016
Actually switching to the display compositor would make the fallback tick faster. Just through away the delegated frame and skip the final composite step altogether? Although I don't really know how software composites work.. > Do they happen while doing a software draw? Can I dcheck there isn't one running, or etc.. Not exactly sure what you are asking here. Real draws and fallback tick can't nest.
,
Jul 8 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/554c98ac020b61bd06fc498759ae24dfa321fe0f commit 554c98ac020b61bd06fc498759ae24dfa321fe0f Author: danakj <danakj@chromium.org> Date: Fri Jul 08 00:25:07 2016 Use a cc::Display for WebView resourceless software draws. R=boliu, enne BUG= 606053 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel NOTRY=true Review-Url: https://codereview.chromium.org/2128113002 Cr-Commit-Position: refs/heads/master@{#404272} [modify] https://crrev.com/554c98ac020b61bd06fc498759ae24dfa321fe0f/cc/ipc/cc_param_traits_macros.h [modify] https://crrev.com/554c98ac020b61bd06fc498759ae24dfa321fe0f/cc/ipc/compositor_frame_metadata.mojom [modify] https://crrev.com/554c98ac020b61bd06fc498759ae24dfa321fe0f/cc/ipc/compositor_frame_metadata_struct_traits.cc [modify] https://crrev.com/554c98ac020b61bd06fc498759ae24dfa321fe0f/cc/ipc/compositor_frame_metadata_struct_traits.h [modify] https://crrev.com/554c98ac020b61bd06fc498759ae24dfa321fe0f/cc/ipc/struct_traits_unittest.cc [modify] https://crrev.com/554c98ac020b61bd06fc498759ae24dfa321fe0f/cc/output/compositor_frame_metadata.cc [modify] https://crrev.com/554c98ac020b61bd06fc498759ae24dfa321fe0f/cc/output/compositor_frame_metadata.h [modify] https://crrev.com/554c98ac020b61bd06fc498759ae24dfa321fe0f/cc/output/delegating_renderer.cc [modify] https://crrev.com/554c98ac020b61bd06fc498759ae24dfa321fe0f/cc/output/delegating_renderer.h [modify] https://crrev.com/554c98ac020b61bd06fc498759ae24dfa321fe0f/cc/output/direct_renderer.cc [modify] https://crrev.com/554c98ac020b61bd06fc498759ae24dfa321fe0f/cc/output/direct_renderer.h [modify] https://crrev.com/554c98ac020b61bd06fc498759ae24dfa321fe0f/cc/output/gl_renderer_unittest.cc [modify] https://crrev.com/554c98ac020b61bd06fc498759ae24dfa321fe0f/cc/output/overlay_unittest.cc [modify] https://crrev.com/554c98ac020b61bd06fc498759ae24dfa321fe0f/cc/output/renderer.h [modify] https://crrev.com/554c98ac020b61bd06fc498759ae24dfa321fe0f/cc/output/software_renderer.cc [modify] https://crrev.com/554c98ac020b61bd06fc498759ae24dfa321fe0f/cc/output/software_renderer.h [modify] https://crrev.com/554c98ac020b61bd06fc498759ae24dfa321fe0f/cc/output/software_renderer_unittest.cc [modify] https://crrev.com/554c98ac020b61bd06fc498759ae24dfa321fe0f/cc/surfaces/display.cc [modify] https://crrev.com/554c98ac020b61bd06fc498759ae24dfa321fe0f/cc/surfaces/display.h [modify] https://crrev.com/554c98ac020b61bd06fc498759ae24dfa321fe0f/cc/test/fake_output_surface.h [modify] https://crrev.com/554c98ac020b61bd06fc498759ae24dfa321fe0f/cc/test/pixel_test.cc [modify] https://crrev.com/554c98ac020b61bd06fc498759ae24dfa321fe0f/cc/test/pixel_test.h [modify] https://crrev.com/554c98ac020b61bd06fc498759ae24dfa321fe0f/cc/trees/layer_tree_host_impl.cc [modify] https://crrev.com/554c98ac020b61bd06fc498759ae24dfa321fe0f/cc/trees/layer_tree_host_impl_unittest.cc [modify] https://crrev.com/554c98ac020b61bd06fc498759ae24dfa321fe0f/content/renderer/android/synchronous_compositor_output_surface.cc [modify] https://crrev.com/554c98ac020b61bd06fc498759ae24dfa321fe0f/content/renderer/android/synchronous_compositor_output_surface.h
,
Jul 8 2016
,
Jul 8 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ff780206ab470e7d81df417a082de848a27935b5 commit ff780206ab470e7d81df417a082de848a27935b5 Author: danakj <danakj@chromium.org> Date: Fri Jul 08 01:07:26 2016 WebView: Immediately ack and return resources for fallback ticks. R=boliu BUG= 606053 Review-Url: https://codereview.chromium.org/2130953002 Cr-Commit-Position: refs/heads/master@{#404290} [modify] https://crrev.com/ff780206ab470e7d81df417a082de848a27935b5/content/renderer/android/synchronous_compositor_output_surface.cc
,
Jun 13 2017
,
Feb 26 2018
|
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by fsam...@chromium.org
, Apr 22 2016Components: MUS