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

Issue 9380037: Use shared memory to update the renderer's view of the command buffer state. (Closed)

Created:
8 years, 10 months ago by jbauman
Modified:
8 years, 10 months ago
CC:
chromium-reviews, joi+watch-content_chromium.org, darin-cc_chromium.org, jam, apatrick_chromium
Visibility:
Public.

Description

Use shared memory to update the renderer's view of the command buffer state. The renderer can't receive UpdateState messages while it's executing javascript or NaCl, causing it to eventually flushsync once it fills up the command buffer or transfer buffer. To avoid this, share a piece of memory between the renderer and gpu process that the GPU can asynchronously update the state. A 4-slot asynchronous communication mechanism is used so that the renderer always receives a consistent copy of the state that was put in by the GPU process. BUG= TEST= Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=122034 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=122593

Patch Set 1 #

Patch Set 2 : minor unit test change #

Total comments: 4

Patch Set 3 : fix hang when last_state_.error accidentally overwritten #

Unified diffs Side-by-side diffs Delta from patch set Stats (+243 lines, -11 lines) Patch
M content/common/gpu/client/command_buffer_proxy.h View 3 chunks +7 lines, -0 lines 0 comments Download
M content/common/gpu/client/command_buffer_proxy.cc View 1 2 7 chunks +30 lines, -1 line 0 comments Download
M content/common/gpu/gpu_command_buffer_stub.h View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M content/common/gpu/gpu_command_buffer_stub.cc View 1 2 3 chunks +14 lines, -3 lines 0 comments Download
M content/common/gpu/gpu_messages.h View 1 2 3 chunks +6 lines, -7 lines 0 comments Download
A gpu/command_buffer/common/command_buffer_shared.h View 1 chunk +61 lines, -0 lines 0 comments Download
A gpu/command_buffer/common/command_buffer_shared_test.cc View 1 1 chunk +97 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/command_buffer_service.h View 2 chunks +8 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/command_buffer_service.cc View 4 chunks +18 lines, -0 lines 0 comments Download
M gpu/gpu.gyp View 1 2 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 11 (0 generated)
jbauman
8 years, 10 months ago (2012-02-11 03:38:14 UTC) #1
greggman
This is awesome! http://codereview.chromium.org/9380037/diff/13/content/common/gpu/client/command_buffer_proxy.cc File content/common/gpu/client/command_buffer_proxy.cc (right): http://codereview.chromium.org/9380037/diff/13/content/common/gpu/client/command_buffer_proxy.cc#newcode114 content/common/gpu/client/command_buffer_proxy.cc:114: int32 state_buffer = CreateTransferBuffer(sizeof *shared_state_, -1); ...
8 years, 10 months ago (2012-02-11 04:17:21 UTC) #2
jbauman
On 2012/02/11 04:17:21, greggman wrote: > This is awesome! > > http://codereview.chromium.org/9380037/diff/13/content/common/gpu/client/command_buffer_proxy.cc > File content/common/gpu/client/command_buffer_proxy.cc ...
8 years, 10 months ago (2012-02-11 04:38:18 UTC) #3
greggman
Sounds good. Al should review this more than me so get his blessing. I have ...
8 years, 10 months ago (2012-02-11 04:51:04 UTC) #4
apatrick_chromium
Awesome. A few questions... http://codereview.chromium.org/9380037/diff/13/content/common/gpu/client/command_buffer_proxy.cc File content/common/gpu/client/command_buffer_proxy.cc (right): http://codereview.chromium.org/9380037/diff/13/content/common/gpu/client/command_buffer_proxy.cc#newcode130 content/common/gpu/client/command_buffer_proxy.cc:130: if (!Send(new GpuCommandBufferMsg_SetSharedStateBuffer(route_id_, Could this ...
8 years, 10 months ago (2012-02-13 20:50:58 UTC) #5
jbauman
On 2012/02/13 20:50:58, apatrick_chromium wrote: > Awesome. A few questions... > > http://codereview.chromium.org/9380037/diff/13/content/common/gpu/client/command_buffer_proxy.cc > File ...
8 years, 10 months ago (2012-02-14 01:28:07 UTC) #6
apatrick_chromium
lgtm
8 years, 10 months ago (2012-02-14 01:31:56 UTC) #7
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/jbauman@chromium.org/9380037/13
8 years, 10 months ago (2012-02-15 00:48:17 UTC) #8
commit-bot: I haz the power
Try job failure for 9380037-13 (retry) on linux_rel for step "compile" (clobber build). It's a ...
8 years, 10 months ago (2012-02-15 01:27:21 UTC) #9
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/jbauman@chromium.org/9380037/13
8 years, 10 months ago (2012-02-15 01:31:05 UTC) #10
commit-bot: I haz the power
8 years, 10 months ago (2012-02-15 04:12:59 UTC) #11
Change committed as 122034

Powered by Google App Engine
This is Rietveld 408576698