summaryrefslogtreecommitdiffstats
path: root/content/gpu/gpu_render_thread.cc
diff options
context:
space:
mode:
authorjbauman@chromium.org <jbauman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-23 03:49:02 +0000
committerjbauman@chromium.org <jbauman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-23 03:49:02 +0000
commit808f7fe7f54d770c411409d55a486437da664119 (patch)
treec31c85d40ae9ac7597902c32c6ec1d8be81c56c5 /content/gpu/gpu_render_thread.cc
parentd8528c1042cb74073bea1a8adc0721be4c7eb64d (diff)
downloadchromium_src-808f7fe7f54d770c411409d55a486437da664119.zip
chromium_src-808f7fe7f54d770c411409d55a486437da664119.tar.gz
chromium_src-808f7fe7f54d770c411409d55a486437da664119.tar.bz2
Check the GPU watchdog after processing every 3D command.
Reduce the chance that a long stream of expensive 3D commands will cause the watchdog to go off by checking the watchdog after every 3D command. BUG=76603 TEST=none Review URL: http://codereview.chromium.org/6715006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79097 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/gpu/gpu_render_thread.cc')
-rw-r--r--content/gpu/gpu_render_thread.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/content/gpu/gpu_render_thread.cc b/content/gpu/gpu_render_thread.cc
index 99d9e58..7930337 100644
--- a/content/gpu/gpu_render_thread.cc
+++ b/content/gpu/gpu_render_thread.cc
@@ -23,11 +23,13 @@
#include "ipc/ipc_channel_handle.h"
GpuRenderThread::GpuRenderThread(IPC::Message::Sender* browser_channel,
+ GpuWatchdogThread* gpu_watchdog_thread,
MessageLoop* io_message_loop,
base::WaitableEvent* shutdown_event)
: io_message_loop_(io_message_loop),
shutdown_event_(shutdown_event),
- browser_channel_(browser_channel) {
+ browser_channel_(browser_channel),
+ watchdog_thread_(gpu_watchdog_thread) {
DCHECK(browser_channel);
DCHECK(io_message_loop);
DCHECK(shutdown_event);
@@ -72,7 +74,7 @@ void GpuRenderThread::OnEstablishChannel(int renderer_id) {
GpuChannelMap::const_iterator iter = gpu_channels_.find(renderer_id);
if (iter == gpu_channels_.end())
- channel = new GpuChannel(this, renderer_id);
+ channel = new GpuChannel(this, watchdog_thread_, renderer_id);
else
channel = iter->second;