Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(586)

Issue 2481263002: Introduce Display Compositor mojo interface. Use InProcessContextProvider. (Closed)

Created:
4 years, 1 month ago by Fady Samuel
Modified:
4 years, 1 month ago
CC:
chromium-reviews, sadrul, qsr+mojo_chromium.org, viettrungluu+watch_chromium.org, blink-reviews-platform-graphics_chromium.org, dshwang, yzshen+watch_chromium.org, Stephen Chennney, rwlbuis, darin (slow to review), krit, drott+blinkwatch_chromium.org, Justin Novosad, abarth-chromium, dglazkov+blink, Rik, blink-reviews, kalyank, ajuma+watch_chromium.org, blink-reviews-api_chromium.org, jbroman, pdr+graphicswatchlist_chromium.org, piman+watch_chromium.org, cc-bugs_chromium.org, rjkroege, Aaron Boodman, f(malita), danakj+watch_chromium.org, kylechar
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Introduce Display Compositor mojo interface. Use InProcessContextProvider. This CL makes a number of changes. I think it's easier to put it all together in a single CL and easier to review. Here are the notable changes: 1. A new DisplayCompositor mojo interface has been introduced to create CompositorFrameSinks and to update surface references. 2. Mus-WS code no longer knows about GpuCompositorFrameSink, instead requesting a CompositorFrameSink from Mus-GPU (still in the same process for now). 3. Mus-WS no longer creates an internal GPU channel as display compositor code is no longer accessed directly by Mus-WS. 4. Root windows with valid AcceleratedWidgets now create InProcessContextProviders instead of SurfacesContextProviders (which use a GpuChannelHost). 5. DirectOutputSurface, and DirectOutputSurfaceOzone no longer use SurfacesContextProvider. 6. SurfacesContextProvider has been deleted. 7. MusGpuCompositorFrameSink moves out of window server code as it's only used internally by the display compositor. BUG=610937, 661278 Committed: https://crrev.com/4af1869e97cdf585994c422c22423f6d6fcf68ce Cr-Commit-Position: refs/heads/master@{#433990}

Patch Set 1 #

Patch Set 2 : Introduce InprocessContextProvider #

Patch Set 3 : Rebase #

Patch Set 4 : Rebased #

Patch Set 5 : InProcessCommandBuffer uses ImageTransportSurface #

Patch Set 6 : Updated DEPS #

Patch Set 7 : Use InProcessContextProvider in GpuCompositorFrameSink and DirectOutputSurface #

Patch Set 8 : Sorta works: renders then hangs #

Patch Set 9 : Kinda sorta works #

Patch Set 10 : Kinda sorta #

Patch Set 11 : It works! #

Patch Set 12 : Cleanup #

Patch Set 13 : More cleanup #

Patch Set 14 : More cleanup #

Patch Set 15 : CreateDisplayCompositor after GpuServiceInitialized #

Patch Set 16 : Remove unnecessary initialized bit #

Patch Set 17 : Separated DeferredGpuCommandService #

Patch Set 18 : Cleanup #

Patch Set 19 : Rebased #

Patch Set 20 : Delete SurfacesContextProvider #

Patch Set 21 : Move mus_gpu_memory_buffer_manager to services/ui/surfaces #

Patch Set 22 : Fix GpuCompositorFrameSink lifetime #

Patch Set 23 : Add dependency on gpu/ipc/common in services/ui/surfaces #

Patch Set 24 : Dont' follow a null GpuMemoryBufferFactory #

Patch Set 25 : Fix some android and windows build issues #

Patch Set 26 : Make ContextProvider NON_EXPORTED_BASE of InProcessContextProvider #

Total comments: 20

Patch Set 27 : Addressed Sadrul's comments #

Patch Set 28 : Improved comment #

Total comments: 18

Patch Set 29 : Addressed rjkroege's comments #

Patch Set 30 : Rebased #

Patch Set 31 : Speculative fix for android build issue #

Total comments: 3
Unified diffs Side-by-side diffs Delta from patch set Stats (+403 lines, -1089 lines) Patch
M cc/ipc/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 chunk +1 line, -0 lines 0 comments Download
M cc/ipc/display_compositor.mojom View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 1 chunk +33 lines, -0 lines 0 comments Download
M cc/output/in_process_context_provider.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2 chunks +4 lines, -1 line 0 comments Download
M gpu/ipc/gpu_in_process_thread_service.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 1 chunk +6 lines, -3 lines 0 comments Download
M services/ui/gpu/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 2 chunks +3 lines, -0 lines 0 comments Download
M services/ui/gpu/DEPS View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +2 lines, -0 lines 0 comments Download
M services/ui/gpu/gpu_service_internal.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 4 chunks +15 lines, -1 line 0 comments Download
M services/ui/gpu/gpu_service_internal.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 7 chunks +56 lines, -4 lines 0 comments Download
M services/ui/gpu/interfaces/gpu_service_internal.mojom View 2 chunks +6 lines, -0 lines 2 comments Download
M services/ui/manifest.json View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +1 line, -0 lines 0 comments Download
M services/ui/surfaces/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2 chunks +7 lines, -3 lines 0 comments Download
M services/ui/surfaces/direct_output_surface.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 3 chunks +5 lines, -8 lines 0 comments Download
M services/ui/surfaces/direct_output_surface.cc View 1 2 3 4 5 6 2 chunks +3 lines, -3 lines 1 comment Download
M services/ui/surfaces/direct_output_surface_ozone.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 3 chunks +7 lines, -4 lines 0 comments Download
M services/ui/surfaces/direct_output_surface_ozone.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 3 chunks +4 lines, -3 lines 0 comments Download
M services/ui/surfaces/display_compositor.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 4 chunks +46 lines, -11 lines 0 comments Download
M services/ui/surfaces/display_compositor.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2 chunks +52 lines, -1 line 0 comments Download
A + services/ui/surfaces/gpu_compositor_frame_sink.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 9 chunks +20 lines, -23 lines 0 comments Download
A + services/ui/surfaces/gpu_compositor_frame_sink.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 6 chunks +35 lines, -13 lines 0 comments Download
A + services/ui/surfaces/mus_gpu_memory_buffer_manager.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2 chunks +6 lines, -12 lines 0 comments Download
A + services/ui/surfaces/mus_gpu_memory_buffer_manager.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 3 chunks +5 lines, -6 lines 0 comments Download
D services/ui/surfaces/surfaces_context_provider.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +0 lines, -106 lines 0 comments Download
D services/ui/surfaces/surfaces_context_provider.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +0 lines, -169 lines 0 comments Download
D services/ui/surfaces/surfaces_context_provider_delegate.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +0 lines, -28 lines 0 comments Download
M services/ui/ws/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +0 lines, -4 lines 0 comments Download
M services/ui/ws/frame_generator.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 3 chunks +3 lines, -5 lines 0 comments Download
M services/ui/ws/frame_generator.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 6 chunks +16 lines, -45 lines 0 comments Download
D services/ui/ws/gpu_compositor_frame_sink.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 1 chunk +0 lines, -141 lines 0 comments Download
D services/ui/ws/gpu_compositor_frame_sink.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 1 chunk +0 lines, -223 lines 0 comments Download
M services/ui/ws/gpu_service_proxy.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2 chunks +7 lines, -20 lines 0 comments Download
M services/ui/ws/gpu_service_proxy.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 4 chunks +10 lines, -47 lines 0 comments Download
M services/ui/ws/gpu_service_proxy_delegate.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +1 line, -2 lines 0 comments Download
D services/ui/ws/mus_gpu_memory_buffer_manager.h View 1 2 3 4 5 6 7 1 chunk +0 lines, -59 lines 0 comments Download
D services/ui/ws/mus_gpu_memory_buffer_manager.cc View 1 2 3 4 5 6 7 1 chunk +0 lines, -81 lines 0 comments Download
M services/ui/ws/platform_display.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 1 chunk +0 lines, -5 lines 0 comments Download
M services/ui/ws/platform_display_default.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 1 chunk +0 lines, -2 lines 0 comments Download
M services/ui/ws/platform_display_default.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 1 chunk +0 lines, -5 lines 0 comments Download
M services/ui/ws/server_window.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2 chunks +0 lines, -3 lines 0 comments Download
M services/ui/ws/server_window.cc View 1 2 3 4 5 6 7 1 chunk +2 lines, -4 lines 0 comments Download
M services/ui/ws/server_window_compositor_frame_sink_manager.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 4 chunks +0 lines, -5 lines 0 comments Download
M services/ui/ws/server_window_compositor_frame_sink_manager.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 4 chunks +7 lines, -10 lines 0 comments Download
M services/ui/ws/server_window_delegate.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2 chunks +9 lines, -2 lines 0 comments Download
M services/ui/ws/test_server_window_delegate.h View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +3 lines, -2 lines 0 comments Download
M services/ui/ws/test_server_window_delegate.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +3 lines, -2 lines 0 comments Download
M services/ui/ws/test_utils.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 1 chunk +0 lines, -1 line 0 comments Download
M services/ui/ws/test_utils.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 1 chunk +0 lines, -2 lines 0 comments Download
M services/ui/ws/window_server.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 4 chunks +4 lines, -6 lines 0 comments Download
M services/ui/ws/window_server.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 4 chunks +19 lines, -12 lines 0 comments Download
M services/ui/ws/window_tree.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 1 chunk +2 lines, -2 lines 0 comments Download

Messages

Total messages: 83 (60 generated)
Fady Samuel
+rjkroege@, +sadrul@ PTAL Just like that Mus-WS no longer accesses the display compositor directly :-)
4 years, 1 month ago (2016-11-19 19:47:43 UTC) #14
sadrul
https://codereview.chromium.org/2481263002/diff/490001/gpu/ipc/gpu_in_process_thread_service.h File gpu/ipc/gpu_in_process_thread_service.h (right): https://codereview.chromium.org/2481263002/diff/490001/gpu/ipc/gpu_in_process_thread_service.h#newcode16 gpu/ipc/gpu_in_process_thread_service.h:16: // Default Service class when a null service is ...
4 years, 1 month ago (2016-11-21 17:23:50 UTC) #35
Fady Samuel
PTAL Sadrul, Rob! https://codereview.chromium.org/2481263002/diff/490001/gpu/ipc/gpu_in_process_thread_service.h File gpu/ipc/gpu_in_process_thread_service.h (right): https://codereview.chromium.org/2481263002/diff/490001/gpu/ipc/gpu_in_process_thread_service.h#newcode16 gpu/ipc/gpu_in_process_thread_service.h:16: // Default Service class when a ...
4 years, 1 month ago (2016-11-21 20:40:41 UTC) #37
rjkroege
https://codereview.chromium.org/2481263002/diff/430002/cc/ipc/display_compositor.mojom File cc/ipc/display_compositor.mojom (right): https://codereview.chromium.org/2481263002/diff/430002/cc/ipc/display_compositor.mojom#newcode17 cc/ipc/display_compositor.mojom:17: interface DisplayCompositor { Please note how normal clients make ...
4 years, 1 month ago (2016-11-21 23:05:36 UTC) #41
Fady Samuel
PTAL Rob, Sadrul! https://codereview.chromium.org/2481263002/diff/430002/cc/ipc/display_compositor.mojom File cc/ipc/display_compositor.mojom (right): https://codereview.chromium.org/2481263002/diff/430002/cc/ipc/display_compositor.mojom#newcode17 cc/ipc/display_compositor.mojom:17: interface DisplayCompositor { On 2016/11/21 23:05:36, ...
4 years, 1 month ago (2016-11-22 01:02:23 UTC) #43
Fady Samuel
4 years, 1 month ago (2016-11-22 15:48:15 UTC) #55
Fady Samuel
4 years, 1 month ago (2016-11-22 15:48:17 UTC) #56
Fady Samuel
4 years, 1 month ago (2016-11-22 15:48:18 UTC) #57
rjkroege
lgtm lgtm https://codereview.chromium.org/2481263002/diff/580001/services/ui/surfaces/direct_output_surface.cc File services/ui/surfaces/direct_output_surface.cc (right): https://codereview.chromium.org/2481263002/diff/580001/services/ui/surfaces/direct_output_surface.cc#newcode79 services/ui/surfaces/direct_output_surface.cc:79: // Can it have alpha? cc::InProcessContextProvider doesn't ...
4 years, 1 month ago (2016-11-22 18:26:26 UTC) #58
rjkroege
lgtm
4 years, 1 month ago (2016-11-22 18:26:32 UTC) #59
Fady Samuel
+sky@ for services/ui +piman@ for cc and gpu +tsepez@ for mojom.
4 years, 1 month ago (2016-11-22 18:30:29 UTC) #61
Tom Sepez
https://codereview.chromium.org/2481263002/diff/580001/services/ui/gpu/interfaces/gpu_service_internal.mojom File services/ui/gpu/interfaces/gpu_service_internal.mojom (right): https://codereview.chromium.org/2481263002/diff/580001/services/ui/gpu/interfaces/gpu_service_internal.mojom#newcode38 services/ui/gpu/interfaces/gpu_service_internal.mojom:38: CreateDisplayCompositor( Who has access to this interface?
4 years, 1 month ago (2016-11-22 18:39:15 UTC) #62
Fady Samuel
PTAL tsepez@ https://codereview.chromium.org/2481263002/diff/580001/services/ui/gpu/interfaces/gpu_service_internal.mojom File services/ui/gpu/interfaces/gpu_service_internal.mojom (right): https://codereview.chromium.org/2481263002/diff/580001/services/ui/gpu/interfaces/gpu_service_internal.mojom#newcode38 services/ui/gpu/interfaces/gpu_service_internal.mojom:38: CreateDisplayCompositor( On 2016/11/22 18:39:15, Tom Sepez wrote: ...
4 years, 1 month ago (2016-11-22 18:41:23 UTC) #63
Tom Sepez
lgtm
4 years, 1 month ago (2016-11-22 18:48:33 UTC) #64
sky
LGTM
4 years, 1 month ago (2016-11-22 21:05:14 UTC) #66
piman
lgtm
4 years, 1 month ago (2016-11-22 21:07:50 UTC) #67
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2481263002/580001
4 years, 1 month ago (2016-11-22 21:09:00 UTC) #69
commit-bot: I haz the power
Try jobs failed on following builders: linux_precise_blink_rel on master.tryserver.blink (JOB_FAILED, no build URL)
4 years, 1 month ago (2016-11-22 21:11:35 UTC) #71
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2481263002/580001
4 years, 1 month ago (2016-11-22 21:18:34 UTC) #73
commit-bot: I haz the power
Try jobs failed on following builders: linux_precise_blink_rel on master.tryserver.blink (JOB_FAILED, no build URL)
4 years, 1 month ago (2016-11-22 21:20:47 UTC) #75
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2481263002/580001
4 years, 1 month ago (2016-11-22 21:33:13 UTC) #78
commit-bot: I haz the power
Committed patchset #31 (id:580001)
4 years, 1 month ago (2016-11-22 21:42:03 UTC) #81
commit-bot: I haz the power
4 years, 1 month ago (2016-11-22 21:44:29 UTC) #83
Message was sent while issue was closed.
Patchset 31 (id:??) landed as
https://crrev.com/4af1869e97cdf585994c422c22423f6d6fcf68ce
Cr-Commit-Position: refs/heads/master@{#433990}

Powered by Google App Engine
This is Rietveld 408576698