Blimp Compositor GPU dependencies. |
|||||||
Issue descriptionTo create an OutputSurface for the LayerTreeHost, we need to create a GPU CommandBuffer. Currently this requires access to the BrowserGpuChannelHostFactory which lives in content. Also, we probably want to use the BrowserGpuMemoryBufferManager from content as well.
,
Jul 1 2016
Do we really need CommandBuffer?
,
Jul 1 2016
We need the command buffer to give the compositor a GL context for creating and uploading textures, sharing them with the browser compositor, and if we want to later on support GPU raster. Even if the compositor used bitmaps, we'd still need to have a way to share those resources with the browser compositor, with the content::HostSharedBitmapManager.
,
Jul 1 2016
Command buffer is originally written for cross process GL execution. It does carry some cost. As Blimp is single process, can we by pass it? Daniel, I haven't looked at this area for a while. In the early days we were able to do GL in the render without command buffer. Is it still easy to do in today's code?
,
Jul 1 2016
There are a two things: - Our internal GL APIs and all the plumbing through the interfaces and abstraction layers that go through the command buffer and decoder like the texture sharing and sync points which the compositor relies on. - If you want to share resources you have to be in the same GL process on the service side (unless you use SurfaceTexture). So if the device runs locally rendered tabs and has a GPU process (which many low-endish devices with 512-1GB do) then to integrate with the browser compositor you also probably want to talk to the same GPU process.
,
Jul 20 2016
,
Jul 27 2016
Khushal, is this still relevant?
,
Jul 27 2016
Yes, we need the CommandBuffer hooks from content to get the compositor running for 0.6. I'm working on this right now.
,
Aug 9 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c81e43b82548d619a0b8ebd4dfd2362a8bbf5e2a commit c81e43b82548d619a0b8ebd4dfd2362a8bbf5e2a Author: khushalsagar <khushalsagar@chromium.org> Date: Tue Aug 09 02:15:51 2016 content: Add ContextProviderFactory to create a render ContextProvider. Add a ContextProviderFactory to ui to create a ContextProvider for an external compositor rendering web content. This will be used by the Blimp Compositor. Also, 1) Consolidate the GpuChannel initialization logic and ownership of the VulkanContextProvider for the UI compositor in ContextProviderFactoryImpl. 2) Move cc::SurfaceManager and surface_ids allocation to ContextProviderFactory. BUG= 624830 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation Review-Url: https://codereview.chromium.org/2190033002 Cr-Commit-Position: refs/heads/master@{#410522} [modify] https://crrev.com/c81e43b82548d619a0b8ebd4dfd2362a8bbf5e2a/content/browser/browser_main_loop.cc [modify] https://crrev.com/c81e43b82548d619a0b8ebd4dfd2362a8bbf5e2a/content/browser/compositor/surface_utils.cc [modify] https://crrev.com/c81e43b82548d619a0b8ebd4dfd2362a8bbf5e2a/content/browser/frame_host/render_widget_host_view_child_frame_unittest.cc [modify] https://crrev.com/c81e43b82548d619a0b8ebd4dfd2362a8bbf5e2a/content/browser/frame_host/render_widget_host_view_guest_unittest.cc [modify] https://crrev.com/c81e43b82548d619a0b8ebd4dfd2362a8bbf5e2a/content/browser/gpu/gpu_surface_tracker.cc [modify] https://crrev.com/c81e43b82548d619a0b8ebd4dfd2362a8bbf5e2a/content/browser/gpu/gpu_surface_tracker.h [modify] https://crrev.com/c81e43b82548d619a0b8ebd4dfd2362a8bbf5e2a/content/browser/renderer_host/compositor_impl_android.cc [modify] https://crrev.com/c81e43b82548d619a0b8ebd4dfd2362a8bbf5e2a/content/browser/renderer_host/compositor_impl_android.h [add] https://crrev.com/c81e43b82548d619a0b8ebd4dfd2362a8bbf5e2a/content/browser/renderer_host/context_provider_factory_impl_android.cc [add] https://crrev.com/c81e43b82548d619a0b8ebd4dfd2362a8bbf5e2a/content/browser/renderer_host/context_provider_factory_impl_android.h [modify] https://crrev.com/c81e43b82548d619a0b8ebd4dfd2362a8bbf5e2a/content/browser/renderer_host/render_widget_host_unittest.cc [modify] https://crrev.com/c81e43b82548d619a0b8ebd4dfd2362a8bbf5e2a/content/browser/renderer_host/render_widget_host_view_android.cc [modify] https://crrev.com/c81e43b82548d619a0b8ebd4dfd2362a8bbf5e2a/content/common/gpu/client/command_buffer_metrics.cc [modify] https://crrev.com/c81e43b82548d619a0b8ebd4dfd2362a8bbf5e2a/content/common/gpu/client/command_buffer_metrics.h [modify] https://crrev.com/c81e43b82548d619a0b8ebd4dfd2362a8bbf5e2a/content/content_browser.gypi [modify] https://crrev.com/c81e43b82548d619a0b8ebd4dfd2362a8bbf5e2a/content/public/test/test_renderer_host.cc [modify] https://crrev.com/c81e43b82548d619a0b8ebd4dfd2362a8bbf5e2a/tools/metrics/histograms/histograms.xml [modify] https://crrev.com/c81e43b82548d619a0b8ebd4dfd2362a8bbf5e2a/ui/android/BUILD.gn [modify] https://crrev.com/c81e43b82548d619a0b8ebd4dfd2362a8bbf5e2a/ui/android/DEPS [add] https://crrev.com/c81e43b82548d619a0b8ebd4dfd2362a8bbf5e2a/ui/android/context_provider_factory.cc [add] https://crrev.com/c81e43b82548d619a0b8ebd4dfd2362a8bbf5e2a/ui/android/context_provider_factory.h
,
Aug 9 2016
,
Dec 9 2016
,
Dec 14 2016
|
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by khushals...@chromium.org
, Jun 30 2016