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

Issue 2498053004: Add InProcessContextProvider and update InProcessCommandBuffer (Closed)

Created:
4 years, 1 month ago by Fady Samuel
Modified:
4 years, 1 month ago
CC:
chromium-reviews, piman+watch_chromium.org, cc-bugs_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Add InProcessContextProvider and update InProcessCommandBuffer The Mus-Gpu Display Compositor will use an InProcessContextProvider and InProcessCommandBuffer in place of SurfacesContextProvider, GpuChannelHost, and CommandBufferProxyImpl to avoid the IPC overhead of those classes. This CL introduces InProcessContextProvider and allows InProcessCommandBuffer to coexist with GpuCommandBufferStubs on the same thread. In particular, when an InProcessCommandBuffer hits a sync token, it will now get descheduled if specified by InProcessCommandBuffer::Service until the token is passed. At that point, it will finish the flush and run all the operations that have been queued up since the command buffer was descheduled. This enables other command buffers on the same thread to make progress. BUG=661278 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel Committed: https://crrev.com/edc0c2c7a7de29978b3c25d6f80ccee88aa00125 Cr-Commit-Position: refs/heads/master@{#433313}

Patch Set 1 #

Total comments: 12

Patch Set 2 : Addressed Antoine's comments #

Total comments: 2

Patch Set 3 : Fix Mac and Android #

Patch Set 4 : Remove unnecessary dependency #

Patch Set 5 : Add missing dependency #

Patch Set 6 : Use SurfaceHandle in more places #

Patch Set 7 : updated surfacehandle #

Patch Set 8 : Fix broken cc_unittests #

Patch Set 9 : Add DidCreateAcceleratedSurfaceChildWindow #

Patch Set 10 : Fix Mac build #

Patch Set 11 : Fix accidental paste of bad code #

Patch Set 12 : Fix gl_tests on Mac #

Patch Set 13 : Allow Mac content_unittests to use osmesa #

Patch Set 14 : Allow interactive_ui_tests to use osmesa on Mac #

Patch Set 15 : Fix Blimp #

Patch Set 16 : Add missing dep in blimp #

Total comments: 1

Patch Set 17 : Enable OSMesa for unit_tests target #

Patch Set 18 : Remove Surface on RemoveCompositor #

Total comments: 2

Patch Set 19 : Fix android_webview and fix blimp desktop #

Patch Set 20 : GLSurfaceTestSupport::InitializeOneOff for unit_tests #

Patch Set 21 : Fixed another blimp issue #

Patch Set 22 : Only initialize GLSurfaceTestSupport early on Mac #

Patch Set 23 : Another attempt to fix unit_tests #

Patch Set 24 : Don't use task_queue on android_webview #

Patch Set 25 : Fix include order #

Patch Set 26 : Fix deps #

Patch Set 27 : Fix components/display_compositor + speculative fix for android_webview #

Patch Set 28 : Fix some android_webview InProcessCommandBuffer logic #

Patch Set 29 : Another attempt to appease android_webview #

Patch Set 30 : Experiment: Don't use virtualized contexts in unit tests #

Patch Set 31 : Experiment: BlockThread #

Patch Set 32 : Revert experiments and fix android_webview #

Unified diffs Side-by-side diffs Delta from patch set Stats (+915 lines, -243 lines) Patch
M android_webview/browser/aw_render_thread_context_provider.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +1 line, -1 line 0 comments Download
M android_webview/browser/deferred_gpu_command_service.h View 1 1 chunk +1 line, -0 lines 0 comments Download
M android_webview/browser/deferred_gpu_command_service.cc View 1 1 chunk +4 lines, -0 lines 0 comments Download
M blimp/client/app/BUILD.gn 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 blimp/client/app/compositor/browser_compositor.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +2 lines, -0 lines 0 comments Download
M blimp/client/app/compositor/browser_compositor.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 2 chunks +19 lines, -2 lines 0 comments Download
M blimp/client/support/compositor/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +1 line, -0 lines 0 comments Download
M blimp/client/support/compositor/blimp_context_provider.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 3 chunks +3 lines, -2 lines 0 comments Download
M blimp/client/support/compositor/blimp_context_provider.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +3 lines, -3 lines 0 comments Download
M blimp/client/support/compositor/compositor_dependencies_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +2 lines, -1 line 0 comments Download
M blimp/client/test/compositor/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 chunk +1 line, -0 lines 0 comments Download
M blimp/client/test/compositor/test_blimp_embedder_compositor.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2 chunks +2 lines, -1 line 0 comments Download
M cc/BUILD.gn View 1 2 3 4 5 6 7 8 9 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 2 chunks +5 lines, -0 lines 0 comments Download
M cc/DEPS View 1 1 chunk +14 lines, -0 lines 0 comments Download
A cc/output/in_process_context_provider.h View 1 2 3 4 5 1 chunk +84 lines, -0 lines 0 comments Download
A cc/output/in_process_context_provider.cc View 1 2 3 4 5 6 7 8 9 1 chunk +165 lines, -0 lines 0 comments Download
M cc/test/test_in_process_context_provider.cc View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M chrome/test/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 chrome/test/base/chrome_unit_test_suite.cc 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 +5 lines, -0 lines 0 comments Download
M chrome/test/base/interactive_ui_tests_main.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +5 lines, -0 lines 0 comments Download
M components/display_compositor/gl_helper_benchmark.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 +10 lines, -10 lines 0 comments Download
M components/display_compositor/gl_helper_unittest.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 +10 lines, -10 lines 0 comments Download
M components/display_compositor/yuv_readback_unittest.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 +11 lines, -10 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_mac_unittest.mm View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +3 lines, -0 lines 0 comments Download
M gpu/ipc/BUILD.gn View 1 2 3 4 2 chunks +4 lines, -0 lines 0 comments Download
M gpu/ipc/client/gpu_in_process_context_tests.cc View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +11 lines, -10 lines 0 comments Download
M gpu/ipc/gl_in_process_context.h View 1 2 3 4 5 3 chunks +10 lines, -1 line 0 comments Download
M gpu/ipc/gl_in_process_context.cc View 1 2 3 4 5 6 6 chunks +22 lines, -4 lines 0 comments Download
A gpu/ipc/gpu_in_process_thread_service.h View 1 1 chunk +55 lines, -0 lines 0 comments Download
A gpu/ipc/gpu_in_process_thread_service.cc View 1 30 31 1 chunk +69 lines, -0 lines 0 comments Download
M gpu/ipc/in_process_command_buffer.h View 1 2 3 4 5 6 7 8 9 13 chunks +65 lines, -39 lines 0 comments Download
M gpu/ipc/in_process_command_buffer.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 30 31 28 chunks +242 lines, -126 lines 0 comments Download
M gpu/ipc/service/gpu_channel_manager.h View 2 chunks +7 lines, -7 lines 0 comments Download
M ui/compositor/test/in_process_context_factory.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 3 chunks +8 lines, -2 lines 0 comments Download
M ui/compositor/test/in_process_context_factory.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 7 chunks +51 lines, -7 lines 0 comments Download
M ui/compositor/test/in_process_context_provider.h View 1 2 3 4 5 6 7 8 9 4 chunks +4 lines, -3 lines 0 comments Download
M ui/compositor/test/in_process_context_provider.cc View 1 2 3 4 5 6 7 8 9 3 chunks +3 lines, -3 lines 0 comments Download
M ui/views/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 ui/views/DEPS 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 1 chunk +3 lines, -0 lines 0 comments Download
M ui/views/views_test_suite.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 2 chunks +6 lines, -0 lines 0 comments Download

Messages

Total messages: 130 (113 generated)
Fady Samuel
4 years, 1 month ago (2016-11-15 21:31:15 UTC) #9
piman
https://codereview.chromium.org/2498053004/diff/1/cc/surfaces/BUILD.gn File cc/surfaces/BUILD.gn (right): https://codereview.chromium.org/2498053004/diff/1/cc/surfaces/BUILD.gn#newcode20 cc/surfaces/BUILD.gn:20: source_set("context_provider") { How about cc/output instead of cc/surfaces for ...
4 years, 1 month ago (2016-11-15 21:57:32 UTC) #10
Fady Samuel
PTAL Antoine! https://codereview.chromium.org/2498053004/diff/1/cc/surfaces/BUILD.gn File cc/surfaces/BUILD.gn (right): https://codereview.chromium.org/2498053004/diff/1/cc/surfaces/BUILD.gn#newcode20 cc/surfaces/BUILD.gn:20: source_set("context_provider") { On 2016/11/15 21:57:32, piman wrote: ...
4 years, 1 month ago (2016-11-16 00:33:35 UTC) #11
piman
lgtm https://codereview.chromium.org/2498053004/diff/20001/cc/BUILD.gn File cc/BUILD.gn (right): https://codereview.chromium.org/2498053004/diff/20001/cc/BUILD.gn#newcode589 cc/BUILD.gn:589: "//gpu/command_buffer/client:gles2_c_lib", nit: You shouldn't need this one
4 years, 1 month ago (2016-11-16 00:50:16 UTC) #16
Fady Samuel
+boliu@ for android_webview. https://codereview.chromium.org/2498053004/diff/20001/cc/BUILD.gn File cc/BUILD.gn (right): https://codereview.chromium.org/2498053004/diff/20001/cc/BUILD.gn#newcode589 cc/BUILD.gn:589: "//gpu/command_buffer/client:gles2_c_lib", On 2016/11/16 00:50:16, piman wrote: ...
4 years, 1 month ago (2016-11-16 01:05:14 UTC) #19
boliu
lgtm
4 years, 1 month ago (2016-11-16 01:35:11 UTC) #25
Fady Samuel
+dtrainor@ for blimp changes. +piman@: PTAL for recent changes: more plumbing of SurfaceHandle. InProcessCommandBuffer uses ...
4 years, 1 month ago (2016-11-16 20:28:37 UTC) #61
piman
https://codereview.chromium.org/2498053004/diff/300001/ui/compositor/test/in_process_context_factory.cc File ui/compositor/test/in_process_context_factory.cc (right): https://codereview.chromium.org/2498053004/diff/300001/ui/compositor/test/in_process_context_factory.cc#newcode178 ui/compositor/test/in_process_context_factory.cc:178: surface_handle = tracker->AddSurfaceForNativeWidget(compositor->widget()); Should we remove in RemoveCompositor?
4 years, 1 month ago (2016-11-16 20:48:50 UTC) #66
Fady Samuel
PTAL Antoine, David!
4 years, 1 month ago (2016-11-16 21:08:43 UTC) #67
David Trainor- moved to gerrit
Small nit suggestion, but lgtm either way. https://codereview.chromium.org/2498053004/diff/340001/blimp/client/app/compositor/browser_compositor.h File blimp/client/app/compositor/browser_compositor.h (right): https://codereview.chromium.org/2498053004/diff/340001/blimp/client/app/compositor/browser_compositor.h#newcode41 blimp/client/app/compositor/browser_compositor.h:41: gpu::SurfaceHandle surface_handle_ ...
4 years, 1 month ago (2016-11-16 21:13:52 UTC) #70
Fady Samuel
Thanks David! I'm not going to make your change because I'd like the usage to ...
4 years, 1 month ago (2016-11-16 21:16:17 UTC) #71
piman
lgtm
4 years, 1 month ago (2016-11-16 22:00:53 UTC) #74
Fady Samuel
+sky@ for chrome/test
4 years, 1 month ago (2016-11-16 22:34:37 UTC) #78
sky
LGTM
4 years, 1 month ago (2016-11-17 00:38:45 UTC) #87
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/2498053004/610001
4 years, 1 month ago (2016-11-18 19:59:28 UTC) #126
commit-bot: I haz the power
Committed patchset #32 (id:610001)
4 years, 1 month ago (2016-11-18 22:29:25 UTC) #128
commit-bot: I haz the power
4 years, 1 month ago (2016-11-18 22:32:10 UTC) #130
Message was sent while issue was closed.
Patchset 32 (id:??) landed as
https://crrev.com/edc0c2c7a7de29978b3c25d6f80ccee88aa00125
Cr-Commit-Position: refs/heads/master@{#433313}

Powered by Google App Engine
This is Rietveld 408576698