| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/common/gpu/gpu_command_buffer_stub.h" | 5 #include "content/common/gpu/gpu_command_buffer_stub.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
| (...skipping 1124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1135 | 1135 |
| 1136 // Work around issues with recovery by allowing a new GPU process to launch. | 1136 // Work around issues with recovery by allowing a new GPU process to launch. |
| 1137 if ((was_lost_by_robustness || | 1137 if ((was_lost_by_robustness || |
| 1138 context_group_->feature_info()->workarounds().exit_on_context_lost) && | 1138 context_group_->feature_info()->workarounds().exit_on_context_lost) && |
| 1139 !base::CommandLine::ForCurrentProcess()->HasSwitch( | 1139 !base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 1140 switches::kSingleProcess) && | 1140 switches::kSingleProcess) && |
| 1141 !base::CommandLine::ForCurrentProcess()->HasSwitch( | 1141 !base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 1142 switches::kInProcessGPU)) { | 1142 switches::kInProcessGPU)) { |
| 1143 LOG(ERROR) << "Exiting GPU process because some drivers cannot recover" | 1143 LOG(ERROR) << "Exiting GPU process because some drivers cannot recover" |
| 1144 << " from problems."; | 1144 << " from problems."; |
| 1145 #if defined(OS_WIN) | 1145 // Signal the message loop to quit to shut down other threads |
| 1146 base::win::SetShouldCrashOnProcessDetach(false); | 1146 // gracefully. |
| 1147 #endif | 1147 base::MessageLoop::current()->QuitNow(); |
| 1148 exit(0); | |
| 1149 } | 1148 } |
| 1150 | 1149 |
| 1151 // Lose all other contexts if the reset was triggered by the robustness | 1150 // Lose all other contexts if the reset was triggered by the robustness |
| 1152 // extension instead of being synthetic. | 1151 // extension instead of being synthetic. |
| 1153 if (was_lost_by_robustness && | 1152 if (was_lost_by_robustness && |
| 1154 (gfx::GLContext::LosesAllContextsOnContextLost() || | 1153 (gfx::GLContext::LosesAllContextsOnContextLost() || |
| 1155 use_virtualized_gl_context_)) { | 1154 use_virtualized_gl_context_)) { |
| 1156 channel_->LoseAllContexts(); | 1155 channel_->LoseAllContexts(); |
| 1157 } | 1156 } |
| 1158 } | 1157 } |
| (...skipping 20 matching lines...) Expand all Loading... |
| 1179 result)); | 1178 result)); |
| 1180 } | 1179 } |
| 1181 | 1180 |
| 1182 void GpuCommandBufferStub::SendUpdateVSyncParameters(base::TimeTicks timebase, | 1181 void GpuCommandBufferStub::SendUpdateVSyncParameters(base::TimeTicks timebase, |
| 1183 base::TimeDelta interval) { | 1182 base::TimeDelta interval) { |
| 1184 Send(new GpuCommandBufferMsg_UpdateVSyncParameters(route_id_, timebase, | 1183 Send(new GpuCommandBufferMsg_UpdateVSyncParameters(route_id_, timebase, |
| 1185 interval)); | 1184 interval)); |
| 1186 } | 1185 } |
| 1187 | 1186 |
| 1188 } // namespace content | 1187 } // namespace content |
| OLD | NEW |