Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1195)

Side by Side Diff: gpu/ipc/service/gpu_channel_manager.h

Issue 2440093003: WIP GPU scheduler + delayed activation / tile draw
Patch Set: SignalSyncToken -> IsFenceSyncReleased Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « gpu/ipc/service/gpu_channel.cc ('k') | gpu/ipc/service/gpu_channel_manager.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_MANAGER_H_ 5 #ifndef GPU_IPC_SERVICE_GPU_CHANNEL_MANAGER_H_
6 #define GPU_IPC_SERVICE_GPU_CHANNEL_MANAGER_H_ 6 #define GPU_IPC_SERVICE_GPU_CHANNEL_MANAGER_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <deque> 10 #include <deque>
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 } 49 }
50 } 50 }
51 51
52 namespace IPC { 52 namespace IPC {
53 struct ChannelHandle; 53 struct ChannelHandle;
54 } 54 }
55 55
56 namespace gpu { 56 namespace gpu {
57 class GpuChannel; 57 class GpuChannel;
58 class GpuChannelManagerDelegate; 58 class GpuChannelManagerDelegate;
59 class GpuScheduler;
59 class GpuMemoryBufferFactory; 60 class GpuMemoryBufferFactory;
60 class GpuWatchdogThread; 61 class GpuWatchdogThread;
61 62
62 // A GpuChannelManager is a thread responsible for issuing rendering commands 63 // A GpuChannelManager is a thread responsible for issuing rendering commands
63 // managing the lifetimes of GPU channels and forwarding IPC requests from the 64 // managing the lifetimes of GPU channels and forwarding IPC requests from the
64 // browser process to them based on the corresponding renderer ID. 65 // browser process to them based on the corresponding renderer ID.
65 class GPU_EXPORT GpuChannelManager { 66 class GPU_EXPORT GpuChannelManager {
66 public: 67 public:
67 GpuChannelManager(const GpuPreferences& gpu_preferences, 68 GpuChannelManager(const GpuPreferences& gpu_preferences,
68 GpuChannelManagerDelegate* delegate, 69 GpuChannelManagerDelegate* delegate,
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 const GpuPreferences gpu_preferences_; 174 const GpuPreferences gpu_preferences_;
174 GpuDriverBugWorkarounds gpu_driver_bug_workarounds_; 175 GpuDriverBugWorkarounds gpu_driver_bug_workarounds_;
175 176
176 GpuChannelManagerDelegate* const delegate_; 177 GpuChannelManagerDelegate* const delegate_;
177 178
178 GpuWatchdogThread* watchdog_; 179 GpuWatchdogThread* watchdog_;
179 180
180 base::WaitableEvent* shutdown_event_; 181 base::WaitableEvent* shutdown_event_;
181 182
182 scoped_refptr<gl::GLShareGroup> share_group_; 183 scoped_refptr<gl::GLShareGroup> share_group_;
184
185 scoped_refptr<PreemptionFlag> preemption_flag_;
186 std::unique_ptr<GpuScheduler> scheduler_;
187
183 scoped_refptr<gles2::MailboxManager> mailbox_manager_; 188 scoped_refptr<gles2::MailboxManager> mailbox_manager_;
184 scoped_refptr<PreemptionFlag> preemption_flag_;
185 GpuMemoryManager gpu_memory_manager_; 189 GpuMemoryManager gpu_memory_manager_;
186 // SyncPointManager guaranteed to outlive running MessageLoop. 190 // SyncPointManager guaranteed to outlive running MessageLoop.
187 SyncPointManager* sync_point_manager_; 191 SyncPointManager* sync_point_manager_;
188 std::unique_ptr<SyncPointClient> sync_point_client_waiter_; 192 std::unique_ptr<SyncPointClient> sync_point_client_waiter_;
189 std::unique_ptr<gles2::ProgramCache> program_cache_; 193 std::unique_ptr<gles2::ProgramCache> program_cache_;
190 scoped_refptr<gles2::ShaderTranslatorCache> shader_translator_cache_; 194 scoped_refptr<gles2::ShaderTranslatorCache> shader_translator_cache_;
191 scoped_refptr<gles2::FramebufferCompletenessCache> 195 scoped_refptr<gles2::FramebufferCompletenessCache>
192 framebuffer_completeness_cache_; 196 framebuffer_completeness_cache_;
193 scoped_refptr<gl::GLSurface> default_offscreen_surface_; 197 scoped_refptr<gl::GLSurface> default_offscreen_surface_;
194 GpuMemoryBufferFactory* const gpu_memory_buffer_factory_; 198 GpuMemoryBufferFactory* const gpu_memory_buffer_factory_;
(...skipping 11 matching lines...) Expand all
206 // that any WeakPtrs to Controller are invalidated before its members 210 // that any WeakPtrs to Controller are invalidated before its members
207 // variable's destructors are executed, rendering them invalid. 211 // variable's destructors are executed, rendering them invalid.
208 base::WeakPtrFactory<GpuChannelManager> weak_factory_; 212 base::WeakPtrFactory<GpuChannelManager> weak_factory_;
209 213
210 DISALLOW_COPY_AND_ASSIGN(GpuChannelManager); 214 DISALLOW_COPY_AND_ASSIGN(GpuChannelManager);
211 }; 215 };
212 216
213 } // namespace gpu 217 } // namespace gpu
214 218
215 #endif // GPU_IPC_SERVICE_GPU_CHANNEL_MANAGER_H_ 219 #endif // GPU_IPC_SERVICE_GPU_CHANNEL_MANAGER_H_
OLDNEW
« no previous file with comments | « gpu/ipc/service/gpu_channel.cc ('k') | gpu/ipc/service/gpu_channel_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698