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 #ifndef CONTENT_COMMON_GPU_GPU_CHANNEL_MANAGER_H_ | 5 #ifndef CONTENT_COMMON_GPU_GPU_CHANNEL_MANAGER_H_ |
6 #define CONTENT_COMMON_GPU_GPU_CHANNEL_MANAGER_H_ | 6 #define CONTENT_COMMON_GPU_GPU_CHANNEL_MANAGER_H_ |
7 | 7 |
8 #include <deque> | 8 #include <deque> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
104 } | 104 } |
105 | 105 |
106 // Returns the maximum order number for unprocessed IPC messages across all | 106 // Returns the maximum order number for unprocessed IPC messages across all |
107 // channels. | 107 // channels. |
108 uint32_t GetUnprocessedOrderNum() const; | 108 uint32_t GetUnprocessedOrderNum() const; |
109 | 109 |
110 // Returns the maximum order number for processed IPC messages across all | 110 // Returns the maximum order number for processed IPC messages across all |
111 // channels. | 111 // channels. |
112 uint32_t GetProcessedOrderNum() const; | 112 uint32_t GetProcessedOrderNum() const; |
113 | 113 |
| 114 #if defined(OS_ANDROID) |
| 115 void DidAccessGpu(); |
| 116 #endif |
| 117 |
114 protected: | 118 protected: |
115 virtual scoped_ptr<GpuChannel> CreateGpuChannel( | 119 virtual scoped_ptr<GpuChannel> CreateGpuChannel( |
116 gfx::GLShareGroup* share_group, | 120 gfx::GLShareGroup* share_group, |
117 gpu::gles2::MailboxManager* mailbox_manager, | 121 gpu::gles2::MailboxManager* mailbox_manager, |
118 int client_id, | 122 int client_id, |
119 uint64_t client_tracing_id, | 123 uint64_t client_tracing_id, |
120 bool allow_future_sync_points, | 124 bool allow_future_sync_points, |
121 bool allow_real_time_streams); | 125 bool allow_real_time_streams); |
122 | 126 |
123 scoped_refptr<base::SingleThreadTaskRunner> task_runner_; | 127 scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
(...skipping 24 matching lines...) Expand all Loading... |
148 void OnLoadedShader(std::string shader); | 152 void OnLoadedShader(std::string shader); |
149 void DestroyGpuMemoryBuffer(gfx::GpuMemoryBufferId id, int client_id); | 153 void DestroyGpuMemoryBuffer(gfx::GpuMemoryBufferId id, int client_id); |
150 void DestroyGpuMemoryBufferOnIO(gfx::GpuMemoryBufferId id, int client_id); | 154 void DestroyGpuMemoryBufferOnIO(gfx::GpuMemoryBufferId id, int client_id); |
151 void OnDestroyGpuMemoryBuffer(gfx::GpuMemoryBufferId id, | 155 void OnDestroyGpuMemoryBuffer(gfx::GpuMemoryBufferId id, |
152 int client_id, | 156 int client_id, |
153 int32 sync_point); | 157 int32 sync_point); |
154 | 158 |
155 void OnUpdateValueState(int client_id, | 159 void OnUpdateValueState(int client_id, |
156 unsigned int target, | 160 unsigned int target, |
157 const gpu::ValueState& state); | 161 const gpu::ValueState& state); |
| 162 #if defined(OS_ANDROID) |
| 163 void OnWakeUpGpu(); |
| 164 void ScheduleWakeUpGpu(); |
| 165 void DoWakeUpGpu(); |
| 166 #endif |
158 void OnLoseAllContexts(); | 167 void OnLoseAllContexts(); |
159 | 168 |
160 // Used to send and receive IPC messages from the browser process. | 169 // Used to send and receive IPC messages from the browser process. |
161 IPC::SyncChannel* const channel_; | 170 IPC::SyncChannel* const channel_; |
162 MessageRouter router_; | 171 MessageRouter router_; |
163 | 172 |
164 GpuWatchdog* watchdog_; | 173 GpuWatchdog* watchdog_; |
165 | 174 |
166 base::WaitableEvent* shutdown_event_; | 175 base::WaitableEvent* shutdown_event_; |
167 | 176 |
168 scoped_refptr<gfx::GLShareGroup> share_group_; | 177 scoped_refptr<gfx::GLShareGroup> share_group_; |
169 scoped_refptr<gpu::gles2::MailboxManager> mailbox_manager_; | 178 scoped_refptr<gpu::gles2::MailboxManager> mailbox_manager_; |
170 GpuMemoryManager gpu_memory_manager_; | 179 GpuMemoryManager gpu_memory_manager_; |
171 // SyncPointManager guaranteed to outlive running MessageLoop. | 180 // SyncPointManager guaranteed to outlive running MessageLoop. |
172 gpu::SyncPointManager* sync_point_manager_; | 181 gpu::SyncPointManager* sync_point_manager_; |
173 scoped_ptr<gpu::gles2::ProgramCache> program_cache_; | 182 scoped_ptr<gpu::gles2::ProgramCache> program_cache_; |
174 scoped_refptr<gpu::gles2::ShaderTranslatorCache> shader_translator_cache_; | 183 scoped_refptr<gpu::gles2::ShaderTranslatorCache> shader_translator_cache_; |
175 scoped_refptr<gpu::gles2::FramebufferCompletenessCache> | 184 scoped_refptr<gpu::gles2::FramebufferCompletenessCache> |
176 framebuffer_completeness_cache_; | 185 framebuffer_completeness_cache_; |
177 scoped_refptr<gfx::GLSurface> default_offscreen_surface_; | 186 scoped_refptr<gfx::GLSurface> default_offscreen_surface_; |
178 GpuMemoryBufferFactory* const gpu_memory_buffer_factory_; | 187 GpuMemoryBufferFactory* const gpu_memory_buffer_factory_; |
| 188 #if defined(OS_ANDROID) |
| 189 // Last time we know the GPU was powered on. Global for tracking across all |
| 190 // transport surfaces. |
| 191 base::TimeTicks last_gpu_access_time_; |
| 192 base::TimeTicks begin_wake_up_time_; |
| 193 #endif |
179 | 194 |
180 // Member variables should appear before the WeakPtrFactory, to ensure | 195 // Member variables should appear before the WeakPtrFactory, to ensure |
181 // that any WeakPtrs to Controller are invalidated before its members | 196 // that any WeakPtrs to Controller are invalidated before its members |
182 // variable's destructors are executed, rendering them invalid. | 197 // variable's destructors are executed, rendering them invalid. |
183 base::WeakPtrFactory<GpuChannelManager> weak_factory_; | 198 base::WeakPtrFactory<GpuChannelManager> weak_factory_; |
184 | 199 |
185 DISALLOW_COPY_AND_ASSIGN(GpuChannelManager); | 200 DISALLOW_COPY_AND_ASSIGN(GpuChannelManager); |
186 }; | 201 }; |
187 | 202 |
188 } // namespace content | 203 } // namespace content |
189 | 204 |
190 #endif // CONTENT_COMMON_GPU_GPU_CHANNEL_MANAGER_H_ | 205 #endif // CONTENT_COMMON_GPU_GPU_CHANNEL_MANAGER_H_ |
OLD | NEW |