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 <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <deque> | 10 #include <deque> |
(...skipping 22 matching lines...) Expand all Loading... |
33 namespace base { | 33 namespace base { |
34 class WaitableEvent; | 34 class WaitableEvent; |
35 } | 35 } |
36 | 36 |
37 namespace gfx { | 37 namespace gfx { |
38 class GLShareGroup; | 38 class GLShareGroup; |
39 } | 39 } |
40 | 40 |
41 namespace gpu { | 41 namespace gpu { |
42 struct GpuPreferences; | 42 struct GpuPreferences; |
| 43 class GpuDriverBugWorkarounds; |
43 class PreemptionFlag; | 44 class PreemptionFlag; |
44 class SyncPointClient; | 45 class SyncPointClient; |
45 class SyncPointManager; | 46 class SyncPointManager; |
46 struct SyncToken; | 47 struct SyncToken; |
47 union ValueState; | 48 union ValueState; |
48 namespace gles2 { | 49 namespace gles2 { |
49 class FramebufferCompletenessCache; | 50 class FramebufferCompletenessCache; |
50 class MailboxManager; | 51 class MailboxManager; |
51 class ProgramCache; | 52 class ProgramCache; |
52 class ShaderTranslatorCache; | 53 class ShaderTranslatorCache; |
(...skipping 13 matching lines...) Expand all Loading... |
66 // A GpuChannelManager is a thread responsible for issuing rendering commands | 67 // A GpuChannelManager is a thread responsible for issuing rendering commands |
67 // managing the lifetimes of GPU channels and forwarding IPC requests from the | 68 // managing the lifetimes of GPU channels and forwarding IPC requests from the |
68 // browser process to them based on the corresponding renderer ID. | 69 // browser process to them based on the corresponding renderer ID. |
69 class CONTENT_EXPORT GpuChannelManager { | 70 class CONTENT_EXPORT GpuChannelManager { |
70 public: | 71 public: |
71 #if defined(OS_MACOSX) | 72 #if defined(OS_MACOSX) |
72 typedef base::Callback< | 73 typedef base::Callback< |
73 void(int32_t, const base::TimeTicks&, const base::TimeDelta&)> | 74 void(int32_t, const base::TimeTicks&, const base::TimeDelta&)> |
74 BufferPresentedCallback; | 75 BufferPresentedCallback; |
75 #endif | 76 #endif |
76 GpuChannelManager(const gpu::GpuPreferences& gpu_preferences, | 77 GpuChannelManager( |
77 GpuChannelManagerDelegate* delegate, | 78 const gpu::GpuPreferences& gpu_preferences, |
78 GpuWatchdog* watchdog, | 79 const gpu::GpuDriverBugWorkarounds& gpu_driver_bug_workarounds, |
79 base::SingleThreadTaskRunner* task_runner, | 80 GpuChannelManagerDelegate* delegate, |
80 base::SingleThreadTaskRunner* io_task_runner, | 81 GpuWatchdog* watchdog, |
81 base::WaitableEvent* shutdown_event, | 82 base::SingleThreadTaskRunner* task_runner, |
82 gpu::SyncPointManager* sync_point_manager, | 83 base::SingleThreadTaskRunner* io_task_runner, |
83 GpuMemoryBufferFactory* gpu_memory_buffer_factory); | 84 base::WaitableEvent* shutdown_event, |
| 85 gpu::SyncPointManager* sync_point_manager, |
| 86 GpuMemoryBufferFactory* gpu_memory_buffer_factory); |
84 virtual ~GpuChannelManager(); | 87 virtual ~GpuChannelManager(); |
85 | 88 |
86 GpuChannelManagerDelegate* delegate() const { return delegate_; } | 89 GpuChannelManagerDelegate* delegate() const { return delegate_; } |
87 | 90 |
88 IPC::ChannelHandle EstablishChannel(int client_id, | 91 IPC::ChannelHandle EstablishChannel(int client_id, |
89 uint64_t client_tracing_id, | 92 uint64_t client_tracing_id, |
90 bool preempts, | 93 bool preempts, |
91 bool allow_view_command_buffers, | 94 bool allow_view_command_buffers, |
92 bool allow_real_time_streams); | 95 bool allow_real_time_streams); |
93 | 96 |
(...skipping 19 matching lines...) Expand all Loading... |
113 const BufferPresentedCallback& callback); | 116 const BufferPresentedCallback& callback); |
114 void RemoveBufferPresentedCallback(int32_t routing_id); | 117 void RemoveBufferPresentedCallback(int32_t routing_id); |
115 void BufferPresented(int32_t surface_id, | 118 void BufferPresented(int32_t surface_id, |
116 const base::TimeTicks& vsync_timebase, | 119 const base::TimeTicks& vsync_timebase, |
117 const base::TimeDelta& vsync_interval); | 120 const base::TimeDelta& vsync_interval); |
118 #endif | 121 #endif |
119 | 122 |
120 const gpu::GpuPreferences& gpu_preferences() const { | 123 const gpu::GpuPreferences& gpu_preferences() const { |
121 return gpu_preferences_; | 124 return gpu_preferences_; |
122 } | 125 } |
| 126 const gpu::GpuDriverBugWorkarounds& gpu_driver_bug_workarounds() const { |
| 127 return gpu_driver_bug_workarounds_; |
| 128 } |
123 gpu::gles2::ProgramCache* program_cache(); | 129 gpu::gles2::ProgramCache* program_cache(); |
124 gpu::gles2::ShaderTranslatorCache* shader_translator_cache(); | 130 gpu::gles2::ShaderTranslatorCache* shader_translator_cache(); |
125 gpu::gles2::FramebufferCompletenessCache* framebuffer_completeness_cache(); | 131 gpu::gles2::FramebufferCompletenessCache* framebuffer_completeness_cache(); |
126 | 132 |
127 GpuMemoryManager* gpu_memory_manager() { return &gpu_memory_manager_; } | 133 GpuMemoryManager* gpu_memory_manager() { return &gpu_memory_manager_; } |
128 | 134 |
129 GpuChannel* LookupChannel(int32_t client_id) const; | 135 GpuChannel* LookupChannel(int32_t client_id) const; |
130 | 136 |
131 gfx::GLSurface* GetDefaultOffscreenSurface(); | 137 gfx::GLSurface* GetDefaultOffscreenSurface(); |
132 | 138 |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
178 void InternalDestroyGpuMemoryBuffer(gfx::GpuMemoryBufferId id, int client_id); | 184 void InternalDestroyGpuMemoryBuffer(gfx::GpuMemoryBufferId id, int client_id); |
179 void InternalDestroyGpuMemoryBufferOnIO(gfx::GpuMemoryBufferId id, | 185 void InternalDestroyGpuMemoryBufferOnIO(gfx::GpuMemoryBufferId id, |
180 int client_id); | 186 int client_id); |
181 #if defined(OS_ANDROID) | 187 #if defined(OS_ANDROID) |
182 void ScheduleWakeUpGpu(); | 188 void ScheduleWakeUpGpu(); |
183 void DoWakeUpGpu(); | 189 void DoWakeUpGpu(); |
184 #endif | 190 #endif |
185 | 191 |
186 const gpu::GpuPreferences& gpu_preferences_; | 192 const gpu::GpuPreferences& gpu_preferences_; |
187 | 193 |
| 194 const gpu::GpuDriverBugWorkarounds& gpu_driver_bug_workarounds_; |
| 195 |
188 GpuChannelManagerDelegate* const delegate_; | 196 GpuChannelManagerDelegate* const delegate_; |
189 #if defined(OS_MACOSX) | 197 #if defined(OS_MACOSX) |
190 base::hash_map<int32_t, BufferPresentedCallback> | 198 base::hash_map<int32_t, BufferPresentedCallback> |
191 buffer_presented_callback_map_; | 199 buffer_presented_callback_map_; |
192 #endif | 200 #endif |
193 | 201 |
194 GpuWatchdog* watchdog_; | 202 GpuWatchdog* watchdog_; |
195 | 203 |
196 base::WaitableEvent* shutdown_event_; | 204 base::WaitableEvent* shutdown_event_; |
197 | 205 |
(...skipping 21 matching lines...) Expand all Loading... |
219 // that any WeakPtrs to Controller are invalidated before its members | 227 // that any WeakPtrs to Controller are invalidated before its members |
220 // variable's destructors are executed, rendering them invalid. | 228 // variable's destructors are executed, rendering them invalid. |
221 base::WeakPtrFactory<GpuChannelManager> weak_factory_; | 229 base::WeakPtrFactory<GpuChannelManager> weak_factory_; |
222 | 230 |
223 DISALLOW_COPY_AND_ASSIGN(GpuChannelManager); | 231 DISALLOW_COPY_AND_ASSIGN(GpuChannelManager); |
224 }; | 232 }; |
225 | 233 |
226 } // namespace content | 234 } // namespace content |
227 | 235 |
228 #endif // CONTENT_COMMON_GPU_GPU_CHANNEL_MANAGER_H_ | 236 #endif // CONTENT_COMMON_GPU_GPU_CHANNEL_MANAGER_H_ |
OLD | NEW |