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

Issue 1328001: Added command buffer implementation of WebGL which runs in the sandbox.... (Closed)

Created:
10 years, 9 months ago by Ken Russell (switch to Gerrit)
Modified:
9 years, 7 months ago
CC:
chromium-reviews, jam+cc_chromium.org, dpranke+watch_chromium.org, ben+cc_chromium.org, John Grabowski, apatrick_chromium, darin-cc_chromium.org, brettw-cc_chromium.org, pam+watch_chromium.org, greggman, dglazkov, Vangelis Kokkevis
Visibility:
Public.

Description

Added command buffer implementation of WebGL which runs in the sandbox. Added synchronous initialization of the channel to the GPU process, needed to obey WebGL startup semantics. There are problems with this on the Windows platform which will be addressed via refactoring in the GpuProcessHost in a subsequent CL. Implemented offscreen rendering code path in GGL / GLES2CmdDecoder for Mac OS X. This new code path is not yet complete for all platforms and is still being stress tested. The previous in-process WebGL implementation is currently used when the sandbox is disabled; it will be removed in a subsequent CL. A one-line code change in WebKit is needed after this CL lands to enable the new code path. BUG=29120 TEST=ran WebGL demos on command buffer implementation on Mac Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=42879

Patch Set 1 #

Total comments: 44

Patch Set 2 : '' #

Total comments: 29

Patch Set 3 : '' #

Total comments: 4

Patch Set 4 : '' #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+1426 lines, -9 lines) Patch
M chrome/browser/gpu_process_host.h View 1 3 chunks +8 lines, -0 lines 0 comments Download
M chrome/browser/gpu_process_host.cc View 1 4 chunks +38 lines, -1 line 0 comments Download
M chrome/browser/renderer_host/browser_render_process_host.h View 1 chunk +5 lines, -0 lines 0 comments Download
M chrome/browser/renderer_host/browser_render_process_host.cc View 2 chunks +7 lines, -1 line 0 comments Download
M chrome/chrome_renderer.gypi View 1 1 chunk +2 lines, -0 lines 0 comments Download
M chrome/common/gpu_messages_internal.h View 1 2 chunks +13 lines, -0 lines 0 comments Download
M chrome/common/render_messages_internal.h View 1 1 chunk +5 lines, -0 lines 0 comments Download
M chrome/common/sandbox_init_wrapper_mac.cc View 1 1 chunk +2 lines, -1 line 0 comments Download
M chrome/gpu/gpu_thread.h View 1 1 chunk +1 line, -0 lines 0 comments Download
M chrome/gpu/gpu_thread.cc View 1 2 chunks +6 lines, -0 lines 0 comments Download
M chrome/renderer/ggl/ggl.cc View 1 chunk +2 lines, -0 lines 0 comments Download
M chrome/renderer/render_thread.h View 1 chunk +6 lines, -0 lines 0 comments Download
M chrome/renderer/render_thread.cc View 1 chunk +8 lines, -0 lines 0 comments Download
M chrome/renderer/renderer_webkitclient_impl.h View 1 1 chunk +1 line, -1 line 0 comments Download
M chrome/renderer/renderer_webkitclient_impl.cc View 1 2 2 chunks +19 lines, -0 lines 2 comments Download
A chrome/renderer/webgraphicscontext3d_command_buffer_impl.h View 1 2 3 1 chunk +352 lines, -0 lines 0 comments Download
A chrome/renderer/webgraphicscontext3d_command_buffer_impl.cc View 1 2 3 1 chunk +878 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/gles2_cmd_decoder.cc View 5 chunks +68 lines, -5 lines 0 comments Download
M webkit/tools/test_shell/test_shell_webkit_init.h View 1 2 chunks +5 lines, -0 lines 0 comments Download

Messages

Total messages: 11 (0 generated)
Ken Russell (switch to Gerrit)
This is the bulk of the remaining code needed to make WebGL work in the ...
10 years, 9 months ago (2010-03-25 00:39:18 UTC) #1
apatrick
http://codereview.chromium.org/1328001/diff/1/4 File chrome/browser/gpu_process_host.cc (right): http://codereview.chromium.org/1328001/diff/1/4#newcode195 chrome/browser/gpu_process_host.cc:195: CHECK(process_host->Send(msg)); I'm going to remove this CHECK in my ...
10 years, 9 months ago (2010-03-25 00:58:01 UTC) #2
brettw
http://codereview.chromium.org/1328001/diff/1/4 File chrome/browser/gpu_process_host.cc (right): http://codereview.chromium.org/1328001/diff/1/4#newcode149 chrome/browser/gpu_process_host.cc:149: queued_synchronization_replies_.push(reply); What does it mean if the GpuProcessHost is ...
10 years, 9 months ago (2010-03-25 20:56:44 UTC) #3
Ken Russell (switch to Gerrit)
Merged with Al's CL and changed initialization path to use GGL, which simplifies it considerably ...
10 years, 9 months ago (2010-03-26 21:01:22 UTC) #4
apatrick
lgtm http://codereview.chromium.org/1328001/diff/20001/21013 File chrome/renderer/render_thread.cc (right): http://codereview.chromium.org/1328001/diff/20001/21013#newcode709 chrome/renderer/render_thread.cc:709: // TODO(kbr): the GPU channel is still in ...
10 years, 9 months ago (2010-03-26 21:27:41 UTC) #5
Ken Russell (switch to Gerrit)
http://codereview.chromium.org/1328001/diff/20001/21017 File chrome/renderer/renderer_webkitclient_impl.cc (right): http://codereview.chromium.org/1328001/diff/20001/21017#newcode356 chrome/renderer/renderer_webkitclient_impl.cc:356: return 0; On 2010/03/26 21:27:42, apatrick wrote: > 0 ...
10 years, 9 months ago (2010-03-26 21:47:51 UTC) #6
apatrick
lgtm
10 years, 9 months ago (2010-03-26 22:08:28 UTC) #7
brettw
LGTM, I only spot checked the OpenGL commands. http://codereview.chromium.org/1328001/diff/1/13 File chrome/renderer/webgraphicscontext3d_command_buffer_impl.cc (right): http://codereview.chromium.org/1328001/diff/1/13#newcode42 chrome/renderer/webgraphicscontext3d_command_buffer_impl.cc:42: WebGraphicsContext3DCommandBufferImpl::~WebGraphicsContext3DCommandBufferImpl() ...
10 years, 9 months ago (2010-03-26 22:18:11 UTC) #8
Ken Russell (switch to Gerrit)
http://codereview.chromium.org/1328001/diff/1/13 File chrome/renderer/webgraphicscontext3d_command_buffer_impl.cc (right): http://codereview.chromium.org/1328001/diff/1/13#newcode42 chrome/renderer/webgraphicscontext3d_command_buffer_impl.cc:42: WebGraphicsContext3DCommandBufferImpl::~WebGraphicsContext3DCommandBufferImpl() { On 2010/03/26 22:18:11, brettw wrote: > Me, ...
10 years, 9 months ago (2010-03-26 22:36:57 UTC) #9
darin (slow to review)
http://codereview.chromium.org/1328001/diff/56001/57017 File chrome/renderer/renderer_webkitclient_impl.cc (right): http://codereview.chromium.org/1328001/diff/56001/57017#newcode350 chrome/renderer/renderer_webkitclient_impl.cc:350: if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kNoSandbox)) { nit: it seems like a more ...
10 years, 9 months ago (2010-03-29 15:24:31 UTC) #10
Ken Russell (switch to Gerrit)
10 years, 9 months ago (2010-03-29 19:56:30 UTC) #11
http://codereview.chromium.org/1328001/diff/56001/57017
File chrome/renderer/renderer_webkitclient_impl.cc (right):

http://codereview.chromium.org/1328001/diff/56001/57017#newcode350
chrome/renderer/renderer_webkitclient_impl.cc:350: if
(CommandLine::ForCurrentProcess()->HasSwitch(switches::kNoSandbox)) {
On 2010/03/29 15:24:32, darin wrote:
> nit: it seems like a more specific command line switch would be better here
long
> term.  much as we have --in-process-plugins, a chrome developer might like to
> run webgl with the command buffer code eliminated in order to reduce
complexity
> in the hopes of more quickly ruling out possible sources of a bug.

Good suggestion. Filed as http://crbug.com/39721 .

Powered by Google App Engine
This is Rietveld 408576698