Chromium Code Reviews| 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_channel_manager.h" | 5 #include "content/common/gpu/gpu_channel_manager.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 100 } | 100 } |
| 101 | 101 |
| 102 void GpuChannelManager::AddRoute(int32 routing_id, IPC::Listener* listener) { | 102 void GpuChannelManager::AddRoute(int32 routing_id, IPC::Listener* listener) { |
| 103 router_.AddRoute(routing_id, listener); | 103 router_.AddRoute(routing_id, listener); |
| 104 } | 104 } |
| 105 | 105 |
| 106 void GpuChannelManager::RemoveRoute(int32 routing_id) { | 106 void GpuChannelManager::RemoveRoute(int32 routing_id) { |
| 107 router_.RemoveRoute(routing_id); | 107 router_.RemoveRoute(routing_id); |
| 108 } | 108 } |
| 109 | 109 |
| 110 GpuChannel* GpuChannelManager::LookupChannel(int32 client_id) { | 110 GpuChannel* GpuChannelManager::LookupChannel(int32 client_id) const { |
| 111 const auto& it = gpu_channels_.find(client_id); | 111 const auto& it = gpu_channels_.find(client_id); |
| 112 return it != gpu_channels_.end() ? it->second : nullptr; | 112 return it != gpu_channels_.end() ? it->second : nullptr; |
| 113 } | 113 } |
| 114 | 114 |
| 115 bool GpuChannelManager::OnControlMessageReceived(const IPC::Message& msg) { | 115 bool GpuChannelManager::OnControlMessageReceived(const IPC::Message& msg) { |
| 116 bool handled = true; | 116 bool handled = true; |
| 117 IPC_BEGIN_MESSAGE_MAP(GpuChannelManager, msg) | 117 IPC_BEGIN_MESSAGE_MAP(GpuChannelManager, msg) |
| 118 IPC_MESSAGE_HANDLER(GpuMsg_EstablishChannel, OnEstablishChannel) | 118 IPC_MESSAGE_HANDLER(GpuMsg_EstablishChannel, OnEstablishChannel) |
| 119 IPC_MESSAGE_HANDLER(GpuMsg_CloseChannel, OnCloseChannel) | 119 IPC_MESSAGE_HANDLER(GpuMsg_CloseChannel, OnCloseChannel) |
| 120 IPC_MESSAGE_HANDLER(GpuMsg_CreateViewCommandBuffer, | 120 IPC_MESSAGE_HANDLER(GpuMsg_CreateViewCommandBuffer, |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 244 auto it = gpu_channels_.find(client_id); | 244 auto it = gpu_channels_.find(client_id); |
| 245 if (it != gpu_channels_.end()) | 245 if (it != gpu_channels_.end()) |
| 246 it->second->HandleUpdateValueState(target, state); | 246 it->second->HandleUpdateValueState(target, state); |
| 247 } | 247 } |
| 248 | 248 |
| 249 void GpuChannelManager::OnLoadedShader(std::string program_proto) { | 249 void GpuChannelManager::OnLoadedShader(std::string program_proto) { |
| 250 if (program_cache()) | 250 if (program_cache()) |
| 251 program_cache()->LoadProgram(program_proto); | 251 program_cache()->LoadProgram(program_proto); |
| 252 } | 252 } |
| 253 | 253 |
| 254 uint32_t GpuChannelManager::ProcessedOrderNumber() { | 254 uint32_t GpuChannelManager::GetNextUnprocessedOrderNum() { |
| 255 base::AutoLock lock(order_num_lock_); | |
|
David Yen
2015/09/10 22:42:06
Is the new scheduler also going to use this? Seems
sunnyps
2015/09/10 23:38:36
On second thought I'm keeping this as is for now -
David Yen
2015/09/11 16:47:20
per your comment yesterday, I think you are right.
| |
| 256 return ++unprocessed_order_num_; | |
| 257 } | |
| 258 | |
| 259 uint32_t GpuChannelManager::GetCurrentUnprocessedOrderNum() const { | |
| 260 base::AutoLock lock(order_num_lock_); | |
| 261 return unprocessed_order_num_; | |
| 262 } | |
| 263 | |
| 264 uint32_t GpuChannelManager::GetProcessedOrderNum() const { | |
| 255 uint32_t processed_order_num = 0; | 265 uint32_t processed_order_num = 0; |
| 256 for (auto& kv : gpu_channels_) { | 266 for (auto& kv : gpu_channels_) { |
| 257 processed_order_num = | 267 processed_order_num = |
| 258 std::max(processed_order_num, kv.second->GetProcessedOrderNum()); | 268 std::max(processed_order_num, kv.second->GetProcessedOrderNum()); |
| 259 } | 269 } |
| 260 return processed_order_num; | 270 return processed_order_num; |
| 261 } | 271 } |
| 262 | 272 |
| 263 uint32_t GpuChannelManager::UnprocessedOrderNumber() { | |
| 264 uint32_t unprocessed_order_num = 0; | |
| 265 for (auto& kv : gpu_channels_) { | |
| 266 unprocessed_order_num = | |
| 267 std::max(unprocessed_order_num, kv.second->GetUnprocessedOrderNum()); | |
| 268 } | |
| 269 return unprocessed_order_num; | |
| 270 } | |
| 271 | |
| 272 void GpuChannelManager::LoseAllContexts() { | 273 void GpuChannelManager::LoseAllContexts() { |
| 273 for (auto& kv : gpu_channels_) { | 274 for (auto& kv : gpu_channels_) { |
| 274 kv.second->MarkAllContextsLost(); | 275 kv.second->MarkAllContextsLost(); |
| 275 } | 276 } |
| 276 task_runner_->PostTask(FROM_HERE, | 277 task_runner_->PostTask(FROM_HERE, |
| 277 base::Bind(&GpuChannelManager::OnLoseAllContexts, | 278 base::Bind(&GpuChannelManager::OnLoseAllContexts, |
| 278 weak_factory_.GetWeakPtr())); | 279 weak_factory_.GetWeakPtr())); |
| 279 } | 280 } |
| 280 | 281 |
| 281 void GpuChannelManager::OnLoseAllContexts() { | 282 void GpuChannelManager::OnLoseAllContexts() { |
| 282 gpu_channels_.clear(); | 283 gpu_channels_.clear(); |
| 283 } | 284 } |
| 284 | 285 |
| 285 gfx::GLSurface* GpuChannelManager::GetDefaultOffscreenSurface() { | 286 gfx::GLSurface* GpuChannelManager::GetDefaultOffscreenSurface() { |
| 286 if (!default_offscreen_surface_.get()) { | 287 if (!default_offscreen_surface_.get()) { |
| 287 default_offscreen_surface_ = | 288 default_offscreen_surface_ = |
| 288 gfx::GLSurface::CreateOffscreenGLSurface(gfx::Size()); | 289 gfx::GLSurface::CreateOffscreenGLSurface(gfx::Size()); |
| 289 } | 290 } |
| 290 return default_offscreen_surface_.get(); | 291 return default_offscreen_surface_.get(); |
| 291 } | 292 } |
| 292 | 293 |
| 293 } // namespace content | 294 } // namespace content |
| OLD | NEW |