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

Unified Diff: content/common/gpu/client/gpu_channel_host.cc

Issue 440203002: Merge 283085 "Added more detailed result codes for CreateViewCom..." (Closed) Base URL: svn://svn.chromium.org/chrome/branches/2062/src/
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/common/gpu/client/gpu_channel_host.h ('k') | content/common/gpu/gpu_channel.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/common/gpu/client/gpu_channel_host.cc
===================================================================
--- content/common/gpu/client/gpu_channel_host.cc (revision 287582)
+++ content/common/gpu/client/gpu_channel_host.cc (working copy)
@@ -142,20 +142,25 @@
init_params.active_url = active_url;
init_params.gpu_preference = gpu_preference;
int32 route_id = GenerateRouteID();
- if (!factory_->CreateViewCommandBuffer(surface_id, init_params, route_id)) {
+ CreateCommandBufferResult result = factory_->CreateViewCommandBuffer(
+ surface_id, init_params, route_id);
+ if (result != CREATE_COMMAND_BUFFER_SUCCEEDED) {
LOG(ERROR) << "GpuChannelHost::CreateViewCommandBuffer failed.";
- // The most likely reason CreateViewCommandBuffer will fail is
- // that the GPU process crashed. In this case the GPU channel
- // needs to be considered lost. The caller will then set up a new
- // connection, and the GPU channel and any view command buffers
- // will all be associated with the same GPU process.
- DCHECK(MessageLoopProxy::current().get());
+ if (result == CREATE_COMMAND_BUFFER_FAILED_AND_CHANNEL_LOST) {
+ // The GPU channel needs to be considered lost. The caller will
+ // then set up a new connection, and the GPU channel and any
+ // view command buffers will all be associated with the same GPU
+ // process.
+ DCHECK(MessageLoopProxy::current().get());
- scoped_refptr<base::MessageLoopProxy> io_loop = factory_->GetIOLoopProxy();
- io_loop->PostTask(FROM_HERE,
- base::Bind(&GpuChannelHost::MessageFilter::OnChannelError,
- channel_filter_.get()));
+ scoped_refptr<base::MessageLoopProxy> io_loop =
+ factory_->GetIOLoopProxy();
+ io_loop->PostTask(
+ FROM_HERE,
+ base::Bind(&GpuChannelHost::MessageFilter::OnChannelError,
+ channel_filter_.get()));
+ }
return NULL;
}
« no previous file with comments | « content/common/gpu/client/gpu_channel_host.h ('k') | content/common/gpu/gpu_channel.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698