diff options
author | kbr@google.com <kbr@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-27 00:23:34 +0000 |
---|---|---|
committer | kbr@google.com <kbr@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-27 00:23:34 +0000 |
commit | 3bf4d53ecb0a07e8639b4403997cddb6869ebc61 (patch) | |
tree | 5283f1b9733ecab92f0b2875110a4194c1ee41e0 /chrome/browser/renderer_host | |
parent | 6f4926b7834dfaf506957b02dd80e6004489824e (diff) | |
download | chromium_src-3bf4d53ecb0a07e8639b4403997cddb6869ebc61.zip chromium_src-3bf4d53ecb0a07e8639b4403997cddb6869ebc61.tar.gz chromium_src-3bf4d53ecb0a07e8639b4403997cddb6869ebc61.tar.bz2 |
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
Review URL: http://codereview.chromium.org/1328001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42879 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/renderer_host')
-rw-r--r-- | chrome/browser/renderer_host/browser_render_process_host.cc | 8 | ||||
-rw-r--r-- | chrome/browser/renderer_host/browser_render_process_host.h | 5 |
2 files changed, 12 insertions, 1 deletions
diff --git a/chrome/browser/renderer_host/browser_render_process_host.cc b/chrome/browser/renderer_host/browser_render_process_host.cc index dccc34d..1fc8ffa 100644 --- a/chrome/browser/renderer_host/browser_render_process_host.cc +++ b/chrome/browser/renderer_host/browser_render_process_host.cc @@ -773,7 +773,9 @@ void BrowserRenderProcessHost::OnMessageReceived(const IPC::Message& msg) { IPC_MESSAGE_HANDLER(ViewHostMsg_ExtensionCloseChannel, OnExtensionCloseChannel) IPC_MESSAGE_HANDLER(ViewHostMsg_EstablishGpuChannel, - OnMsgEstablishGpuChannel) + OnMsgEstablishGpuChannel) + IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_SynchronizeGpu, + OnMsgSynchronizeGpu) IPC_MESSAGE_HANDLER(ViewHostMsg_SpellChecker_RequestDictionary, OnSpellCheckerRequestDictionary) IPC_MESSAGE_UNHANDLED_ERROR() @@ -982,6 +984,10 @@ void BrowserRenderProcessHost::OnMsgEstablishGpuChannel() { GpuProcessHost::Get()->EstablishGpuChannel(id()); } +void BrowserRenderProcessHost::OnMsgSynchronizeGpu(IPC::Message* reply) { + GpuProcessHost::Get()->Synchronize(id(), reply); +} + void BrowserRenderProcessHost::OnSpellCheckerRequestDictionary() { if (profile()->GetSpellCheckHost()) { // The spellchecker initialization already started and finished; just send diff --git a/chrome/browser/renderer_host/browser_render_process_host.h b/chrome/browser/renderer_host/browser_render_process_host.h index 372045a..9a9c833 100644 --- a/chrome/browser/renderer_host/browser_render_process_host.h +++ b/chrome/browser/renderer_host/browser_render_process_host.h @@ -110,7 +110,12 @@ class BrowserRenderProcessHost : public RenderProcessHost, void OnExtensionAddListener(const std::string& event_name); void OnExtensionRemoveListener(const std::string& event_name); void OnExtensionCloseChannel(int port_id); + // Renderer process is requesting that the browser process establish a GPU + // channel. void OnMsgEstablishGpuChannel(); + // Renderer process is requesting that outstanding asynchronous GPU-related + // messages are processed. + void OnMsgSynchronizeGpu(IPC::Message* reply); // Initialize support for visited links. Send the renderer process its initial // set of visited links. |