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 GPU_IPC_SERVICE_GPU_CHANNEL_H_ | 5 #ifndef GPU_IPC_SERVICE_GPU_CHANNEL_H_ |
6 #define GPU_IPC_SERVICE_GPU_CHANNEL_H_ | 6 #define GPU_IPC_SERVICE_GPU_CHANNEL_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 | 10 |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 // Encapsulates an IPC channel between the GPU process and one renderer | 79 // Encapsulates an IPC channel between the GPU process and one renderer |
80 // process. On the renderer side there's a corresponding GpuChannelHost. | 80 // process. On the renderer side there's a corresponding GpuChannelHost. |
81 class GPU_EXPORT GpuChannel : public IPC::Listener, public FilteredSender { | 81 class GPU_EXPORT GpuChannel : public IPC::Listener, public FilteredSender { |
82 public: | 82 public: |
83 // Takes ownership of the renderer process handle. | 83 // Takes ownership of the renderer process handle. |
84 GpuChannel(GpuChannelManager* gpu_channel_manager, | 84 GpuChannel(GpuChannelManager* gpu_channel_manager, |
85 SyncPointManager* sync_point_manager, | 85 SyncPointManager* sync_point_manager, |
86 GpuWatchdogThread* watchdog, | 86 GpuWatchdogThread* watchdog, |
87 scoped_refptr<gl::GLShareGroup> share_group, | 87 scoped_refptr<gl::GLShareGroup> share_group, |
88 scoped_refptr<gles2::MailboxManager> mailbox_manager, | 88 scoped_refptr<gles2::MailboxManager> mailbox_manager, |
| 89 ServiceDiscardableManager* discardable_manager_, |
89 scoped_refptr<PreemptionFlag> preempting_flag, | 90 scoped_refptr<PreemptionFlag> preempting_flag, |
90 scoped_refptr<PreemptionFlag> preempted_flag, | 91 scoped_refptr<PreemptionFlag> preempted_flag, |
91 scoped_refptr<base::SingleThreadTaskRunner> task_runner, | 92 scoped_refptr<base::SingleThreadTaskRunner> task_runner, |
92 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, | 93 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, |
93 int32_t client_id, | 94 int32_t client_id, |
94 uint64_t client_tracing_id, | 95 uint64_t client_tracing_id, |
95 bool is_gpu_host); | 96 bool is_gpu_host); |
96 ~GpuChannel() override; | 97 ~GpuChannel() override; |
97 | 98 |
98 // The IPC channel cannot be passed in the constructor because it needs a | 99 // The IPC channel cannot be passed in the constructor because it needs a |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
148 // FilteredSender implementation: | 149 // FilteredSender implementation: |
149 bool Send(IPC::Message* msg) override; | 150 bool Send(IPC::Message* msg) override; |
150 void AddFilter(IPC::MessageFilter* filter) override; | 151 void AddFilter(IPC::MessageFilter* filter) override; |
151 void RemoveFilter(IPC::MessageFilter* filter) override; | 152 void RemoveFilter(IPC::MessageFilter* filter) override; |
152 | 153 |
153 void OnCommandBufferScheduled(GpuCommandBufferStub* stub); | 154 void OnCommandBufferScheduled(GpuCommandBufferStub* stub); |
154 void OnCommandBufferDescheduled(GpuCommandBufferStub* stub); | 155 void OnCommandBufferDescheduled(GpuCommandBufferStub* stub); |
155 | 156 |
156 gl::GLShareGroup* share_group() const { return share_group_.get(); } | 157 gl::GLShareGroup* share_group() const { return share_group_.get(); } |
157 | 158 |
| 159 ServiceDiscardableManager* discardable_manager() const { |
| 160 return discardable_manager_; |
| 161 } |
| 162 |
158 GpuCommandBufferStub* LookupCommandBuffer(int32_t route_id); | 163 GpuCommandBufferStub* LookupCommandBuffer(int32_t route_id); |
159 | 164 |
160 void LoseAllContexts(); | 165 void LoseAllContexts(); |
161 void MarkAllContextsLost(); | 166 void MarkAllContextsLost(); |
162 | 167 |
163 // Called to add a listener for a particular message routing ID. | 168 // Called to add a listener for a particular message routing ID. |
164 // Returns true if succeeded. | 169 // Returns true if succeeded. |
165 bool AddRoute(int32_t route_id, | 170 bool AddRoute(int32_t route_id, |
166 SequenceId sequence_id, | 171 SequenceId sequence_id, |
167 IPC::Listener* listener); | 172 IPC::Listener* listener); |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
257 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_; | 262 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_; |
258 | 263 |
259 // The share group that all contexts associated with a particular renderer | 264 // The share group that all contexts associated with a particular renderer |
260 // process use. | 265 // process use. |
261 scoped_refptr<gl::GLShareGroup> share_group_; | 266 scoped_refptr<gl::GLShareGroup> share_group_; |
262 | 267 |
263 scoped_refptr<gles2::MailboxManager> mailbox_manager_; | 268 scoped_refptr<gles2::MailboxManager> mailbox_manager_; |
264 | 269 |
265 GpuWatchdogThread* const watchdog_; | 270 GpuWatchdogThread* const watchdog_; |
266 | 271 |
| 272 ServiceDiscardableManager* discardable_manager_; |
| 273 |
267 const bool is_gpu_host_; | 274 const bool is_gpu_host_; |
268 | 275 |
269 // Member variables should appear before the WeakPtrFactory, to ensure that | 276 // Member variables should appear before the WeakPtrFactory, to ensure that |
270 // any WeakPtrs to Controller are invalidated before its members variable's | 277 // any WeakPtrs to Controller are invalidated before its members variable's |
271 // destructors are executed, rendering them invalid. | 278 // destructors are executed, rendering them invalid. |
272 base::WeakPtrFactory<GpuChannel> weak_factory_; | 279 base::WeakPtrFactory<GpuChannel> weak_factory_; |
273 | 280 |
274 DISALLOW_COPY_AND_ASSIGN(GpuChannel); | 281 DISALLOW_COPY_AND_ASSIGN(GpuChannel); |
275 }; | 282 }; |
276 | 283 |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
439 scoped_refptr<PreemptionFlag> preempting_flag_; | 446 scoped_refptr<PreemptionFlag> preempting_flag_; |
440 scoped_refptr<PreemptionFlag> preempted_flag_; | 447 scoped_refptr<PreemptionFlag> preempted_flag_; |
441 SyncPointManager* const sync_point_manager_; | 448 SyncPointManager* const sync_point_manager_; |
442 | 449 |
443 DISALLOW_COPY_AND_ASSIGN(GpuChannelMessageQueue); | 450 DISALLOW_COPY_AND_ASSIGN(GpuChannelMessageQueue); |
444 }; | 451 }; |
445 | 452 |
446 } // namespace gpu | 453 } // namespace gpu |
447 | 454 |
448 #endif // GPU_IPC_SERVICE_GPU_CHANNEL_H_ | 455 #endif // GPU_IPC_SERVICE_GPU_CHANNEL_H_ |
OLD | NEW |