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

Issue 235563002: gpu: Separate GpuControlService from GpuControl (Closed)

Created:
6 years, 8 months ago by boliu
Modified:
6 years, 7 months ago
CC:
chromium-reviews, piman+watch_chromium.org, jam, darin-cc_chromium.org
Visibility:
Public.

Description

gpu: Separate GpuControlService from GpuControl Orignal goal of this CL is to make InProcessCommandBuffer::CreateGpuMemoryBuffer and DestroyGpuMemoryBuffer thread safe. Before this, Create runs on the client thread and Destroy runs on the service thread without any kind of synchronization. This change makes the division closer to the cross-process implementation, moving parts of the implementation from GpuControlService to GpuControl/InProcessViewRenderer. As a result, GpuControlService no longer needs to inherit GpuControl. And GLES2Decoder has enough information to decide on all gpu::Capabilities. Need to implement the bare minimum client GpuControl for gl_tests and gles2_conform_test. This currently involves some boilerplate and duplication. BUG=362346 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=267753

Patch Set 1 #

Patch Set 2 : move capabilities #

Patch Set 3 : linux_gpu #

Patch Set 4 : rebase #

Patch Set 5 : everything #

Patch Set 6 : win compile #

Patch Set 7 : comment #

Total comments: 10

Patch Set 8 : unregister #

Total comments: 1

Patch Set 9 : move gpu_control.h #

Patch Set 10 : unregister #

Total comments: 4

Patch Set 11 : Remove MailboxManager #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+278 lines, -325 lines) Patch
M content/common/gpu/client/command_buffer_proxy_impl.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -1 line 0 comments Download
M content/common/gpu/gpu_command_buffer_stub.h View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M content/common/gpu/gpu_command_buffer_stub.cc View 1 2 3 4 5 6 7 8 9 10 3 chunks +8 lines, -15 lines 0 comments Download
M gpu/command_buffer/client/client_test_helper.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -1 line 0 comments Download
M gpu/command_buffer/client/gles2_implementation.cc View 1 2 3 4 5 6 7 8 2 chunks +5 lines, -5 lines 0 comments Download
A + gpu/command_buffer/client/gpu_control.h View 1 2 3 4 5 6 7 8 2 chunks +3 lines, -3 lines 0 comments Download
M gpu/command_buffer/client/gpu_memory_buffer_tracker.cc View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
M gpu/command_buffer/common/capabilities.h View 1 2 3 4 5 6 7 1 chunk +0 lines, -2 lines 0 comments Download
D gpu/command_buffer/common/gpu_control.h View 1 2 3 4 5 6 7 8 1 chunk +0 lines, -71 lines 0 comments Download
M gpu/command_buffer/service/gles2_cmd_decoder.cc View 1 2 3 4 5 6 7 8 9 10 8 chunks +10 lines, -19 lines 2 comments Download
M gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +0 lines, -5 lines 0 comments Download
M gpu/command_buffer/service/gpu_control_service.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +8 lines, -38 lines 0 comments Download
M gpu/command_buffer/service/gpu_control_service.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +9 lines, -89 lines 0 comments Download
M gpu/command_buffer/service/gpu_memory_buffer_manager.h View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -2 lines 0 comments Download
M gpu/command_buffer/service/image_manager.h View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -2 lines 0 comments Download
M gpu/command_buffer/service/image_manager.cc View 1 2 3 4 5 6 7 8 9 2 chunks +5 lines, -6 lines 0 comments Download
M gpu/command_buffer/service/in_process_command_buffer.h View 1 2 3 4 5 6 7 8 9 10 4 chunks +7 lines, -2 lines 0 comments Download
M gpu/command_buffer/service/in_process_command_buffer.cc View 1 2 3 4 5 6 7 8 9 10 5 chunks +35 lines, -14 lines 0 comments Download
M gpu/command_buffer/service/vertex_array_manager.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +3 lines, -7 lines 0 comments Download
M gpu/command_buffer/service/vertex_array_manager.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +6 lines, -14 lines 0 comments Download
M gpu/command_buffer/service/vertex_array_manager_unittest.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +2 lines, -3 lines 0 comments Download
M gpu/command_buffer/tests/gl_manager.h View 1 2 3 4 5 6 7 8 6 chunks +26 lines, -3 lines 0 comments Download
M gpu/command_buffer/tests/gl_manager.cc View 1 2 3 4 5 6 7 8 9 10 5 chunks +67 lines, -7 lines 0 comments Download
M gpu/command_buffer_client.gypi View 1 2 3 4 5 6 7 8 1 chunk +1 line, -0 lines 0 comments Download
M gpu/command_buffer_common.gypi View 1 2 3 4 5 6 7 8 1 chunk +0 lines, -1 line 0 comments Download
M gpu/gles2_conform_support/egl/display.h View 1 2 3 4 5 6 7 8 4 chunks +22 lines, -2 lines 0 comments Download
M gpu/gles2_conform_support/egl/display.cc View 1 2 3 4 5 6 7 8 9 10 4 chunks +50 lines, -4 lines 0 comments Download
M mojo/gles2/command_buffer_client_impl.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -1 line 0 comments Download
M mojo/services/gles2/command_buffer_impl.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -5 lines 0 comments Download
M ppapi/proxy/ppapi_command_buffer_proxy.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 25 (0 generated)
boliu
Juicy code review for you after you come back :)
6 years, 8 months ago (2014-04-21 23:09:05 UTC) #1
no sievers
Looks like a good idea to split the service portion out of GpuControl. revaman@ to ...
6 years, 8 months ago (2014-04-23 23:57:28 UTC) #2
boliu
https://codereview.chromium.org/235563002/diff/120001/gpu/command_buffer/service/gles2_cmd_decoder.cc File gpu/command_buffer/service/gles2_cmd_decoder.cc (right): https://codereview.chromium.org/235563002/diff/120001/gpu/command_buffer/service/gles2_cmd_decoder.cc#newcode2692 gpu/command_buffer/service/gles2_cmd_decoder.cc:2692: caps.map_image = !!image_manager(); On 2014/04/23 23:57:29, sievers wrote: > ...
6 years, 8 months ago (2014-04-24 00:04:02 UTC) #3
reveman
https://codereview.chromium.org/235563002/diff/120001/gpu/command_buffer/service/gles2_cmd_decoder.cc File gpu/command_buffer/service/gles2_cmd_decoder.cc (right): https://codereview.chromium.org/235563002/diff/120001/gpu/command_buffer/service/gles2_cmd_decoder.cc#newcode2692 gpu/command_buffer/service/gles2_cmd_decoder.cc:2692: caps.map_image = !!image_manager(); On 2014/04/23 23:57:29, sievers wrote: > ...
6 years, 8 months ago (2014-04-24 00:39:10 UTC) #4
boliu
https://codereview.chromium.org/235563002/diff/120001/gpu/command_buffer/service/gles2_cmd_decoder.cc File gpu/command_buffer/service/gles2_cmd_decoder.cc (right): https://codereview.chromium.org/235563002/diff/120001/gpu/command_buffer/service/gles2_cmd_decoder.cc#newcode2692 gpu/command_buffer/service/gles2_cmd_decoder.cc:2692: caps.map_image = !!image_manager(); On 2014/04/24 00:39:11, reveman wrote: > ...
6 years, 8 months ago (2014-04-24 01:30:56 UTC) #5
no sievers
https://codereview.chromium.org/235563002/diff/140001/gpu/command_buffer/service/gpu_control_service.h File gpu/command_buffer/service/gpu_control_service.h (left): https://codereview.chromium.org/235563002/diff/140001/gpu/command_buffer/service/gpu_control_service.h#oldcode23 gpu/command_buffer/service/gpu_control_service.h:23: class GPU_EXPORT GpuControlService : public GpuControl { Is it ...
6 years, 8 months ago (2014-04-25 01:16:35 UTC) #6
boliu
On 2014/04/25 01:16:35, sievers wrote: > https://codereview.chromium.org/235563002/diff/140001/gpu/command_buffer/service/gpu_control_service.h > File gpu/command_buffer/service/gpu_control_service.h (left): > > https://codereview.chromium.org/235563002/diff/140001/gpu/command_buffer/service/gpu_control_service.h#oldcode23 > ...
6 years, 8 months ago (2014-04-25 02:23:46 UTC) #7
boliu
Ping? Is this good to go?
6 years, 8 months ago (2014-04-25 19:45:24 UTC) #8
no sievers
LGTM is reveman is happy. https://codereview.chromium.org/235563002/diff/120001/gpu/command_buffer/service/gpu_control_service.h File gpu/command_buffer/service/gpu_control_service.h (right): https://codereview.chromium.org/235563002/diff/120001/gpu/command_buffer/service/gpu_control_service.h#newcode29 gpu/command_buffer/service/gpu_control_service.h:29: void DestroyGpuMemoryBuffer(int32 id); On ...
6 years, 8 months ago (2014-04-25 19:51:48 UTC) #9
boliu
https://codereview.chromium.org/235563002/diff/120001/gpu/command_buffer/service/gpu_control_service.h File gpu/command_buffer/service/gpu_control_service.h (right): https://codereview.chromium.org/235563002/diff/120001/gpu/command_buffer/service/gpu_control_service.h#newcode29 gpu/command_buffer/service/gpu_control_service.h:29: void DestroyGpuMemoryBuffer(int32 id); On 2014/04/25 19:51:48, sievers wrote: > ...
6 years, 8 months ago (2014-04-25 20:27:15 UTC) #10
boliu
reveman: ping?
6 years, 7 months ago (2014-04-28 22:36:54 UTC) #11
boliu
On 2014/04/28 22:36:54, boliu wrote: > reveman: ping? ping again?
6 years, 7 months ago (2014-04-30 22:57:28 UTC) #12
reveman
sorry for the delay. lgtm.
6 years, 7 months ago (2014-05-01 18:47:07 UTC) #13
boliu
+viettrungluu for mojo +piman for ppapi/proxy (and maybe the whole thing)
6 years, 7 months ago (2014-05-01 18:51:53 UTC) #14
piman
Not sure it's a net win to make GpuControlService not a GpuControl any more. https://codereview.chromium.org/235563002/diff/180001/gpu/command_buffer/service/gpu_control_service.h ...
6 years, 7 months ago (2014-05-01 19:28:04 UTC) #15
boliu
About not having GpuControlService inherit GpuControl. The new code duplication are in the test harnesses, ...
6 years, 7 months ago (2014-05-01 22:10:45 UTC) #16
piman
On Thu, May 1, 2014 at 3:10 PM, <boliu@chromium.org> wrote: > About not having GpuControlService ...
6 years, 7 months ago (2014-05-01 22:30:23 UTC) #17
piman
lgtm
6 years, 7 months ago (2014-05-01 22:30:35 UTC) #18
viettrungluu
mojo lgtm
6 years, 7 months ago (2014-05-01 23:03:29 UTC) #19
boliu
The CQ bit was checked by boliu@chromium.org
6 years, 7 months ago (2014-05-01 23:21:14 UTC) #20
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/boliu@chromium.org/235563002/200001
6 years, 7 months ago (2014-05-01 23:22:31 UTC) #21
commit-bot: I haz the power
Change committed as 267753
6 years, 7 months ago (2014-05-02 05:22:06 UTC) #22
vmiura
https://codereview.chromium.org/235563002/diff/200001/gpu/command_buffer/service/gles2_cmd_decoder.cc File gpu/command_buffer/service/gles2_cmd_decoder.cc (right): https://codereview.chromium.org/235563002/diff/200001/gpu/command_buffer/service/gles2_cmd_decoder.cc#newcode2358 gpu/command_buffer/service/gles2_cmd_decoder.cc:2358: state_.default_vertex_attrib_manager = new VertexAttribManager(); Was there a reason for ...
6 years, 7 months ago (2014-05-08 20:21:22 UTC) #23
boliu
https://codereview.chromium.org/235563002/diff/200001/gpu/command_buffer/service/gles2_cmd_decoder.cc File gpu/command_buffer/service/gles2_cmd_decoder.cc (right): https://codereview.chromium.org/235563002/diff/200001/gpu/command_buffer/service/gles2_cmd_decoder.cc#newcode2358 gpu/command_buffer/service/gles2_cmd_decoder.cc:2358: state_.default_vertex_attrib_manager = new VertexAttribManager(); On 2014/05/08 20:21:22, vmiura wrote: ...
6 years, 7 months ago (2014-05-08 20:23:24 UTC) #24
boliu
6 years, 7 months ago (2014-05-08 20:34:39 UTC) #25
Message was sent while issue was closed.
Reland of VAO change in https://codereview.chromium.org/278653002/

Sorry again!

Powered by Google App Engine
This is Rietveld 408576698