- Relanding 61718.
I disabled the GPU watchdog in three new cases:
- If the OSMesa software renderer is in use. This will disable it on bots.
- When running on valgrind, whether on a bot or locally.
- In debug builds
I added a GPU process initialization time to the GPU info.
I moved the GPU initialization code outside the watchdog protection because it
can take a long time and trigger the watchdog.
I increased the timeout. I set up a field trial with different timeouts to see
the rate of failure for each period.
Original CL description:
I added a watchdog thread that intermitently checks the main thread can respond
to tasks posted on its message queue.
I fixed some bugs that prevented GGL from failing when the GPU channel was
lost.
Added a command line swith to disable the watchdog thread for debugging
purposes.
TEST=try, local testing of all features
BUG=none
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65461 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/renderer/render_thread.cc b/chrome/renderer/render_thread.cc
index a43a6ec..b871bbe8 100644
--- a/chrome/renderer/render_thread.cc
+++ b/chrome/renderer/render_thread.cc
@@ -765,12 +765,12 @@
if (gpu_channel_.get()) {
// Do nothing if we already have a GPU channel or are already
// establishing one.
- if (gpu_channel_->state() == GpuChannelHost::UNCONNECTED ||
- gpu_channel_->state() == GpuChannelHost::CONNECTED)
+ if (gpu_channel_->state() == GpuChannelHost::kUnconnected ||
+ gpu_channel_->state() == GpuChannelHost::kConnected)
return;
// Recreate the channel if it has been lost.
- if (gpu_channel_->state() == GpuChannelHost::LOST)
+ if (gpu_channel_->state() == GpuChannelHost::kLost)
gpu_channel_ = NULL;
}
@@ -791,7 +791,7 @@
if (!gpu_channel_.get())
return NULL;
- if (gpu_channel_->state() != GpuChannelHost::CONNECTED)
+ if (gpu_channel_->state() != GpuChannelHost::kConnected)
return NULL;
return gpu_channel_.get();