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_H_ | 5 #ifndef CONTENT_COMMON_GPU_GPU_CHANNEL_H_ |
6 #define CONTENT_COMMON_GPU_GPU_CHANNEL_H_ | 6 #define CONTENT_COMMON_GPU_GPU_CHANNEL_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/containers/hash_tables.h" | 10 #include "base/containers/hash_tables.h" |
(...skipping 18 matching lines...) Expand all Loading... |
29 #include "ui/gl/gpu_preference.h" | 29 #include "ui/gl/gpu_preference.h" |
30 | 30 |
31 struct GPUCreateCommandBufferConfig; | 31 struct GPUCreateCommandBufferConfig; |
32 | 32 |
33 namespace base { | 33 namespace base { |
34 class WaitableEvent; | 34 class WaitableEvent; |
35 } | 35 } |
36 | 36 |
37 namespace gpu { | 37 namespace gpu { |
38 class PreemptionFlag; | 38 class PreemptionFlag; |
39 class SyncPointClientState; | 39 class SyncPointOrderData; |
40 class SyncPointManager; | 40 class SyncPointManager; |
41 union ValueState; | 41 union ValueState; |
42 class ValueStateMap; | 42 class ValueStateMap; |
43 namespace gles2 { | 43 namespace gles2 { |
44 class SubscriptionRefSet; | 44 class SubscriptionRefSet; |
45 } | 45 } |
46 } | 46 } |
47 | 47 |
48 namespace IPC { | 48 namespace IPC { |
49 class MessageFilter; | 49 class MessageFilter; |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
165 | 165 |
166 // Visible for testing. | 166 // Visible for testing. |
167 GpuChannelMessageFilter* filter() const { return filter_.get(); } | 167 GpuChannelMessageFilter* filter() const { return filter_.get(); } |
168 | 168 |
169 // Returns the global order number for the last processed IPC message. | 169 // Returns the global order number for the last processed IPC message. |
170 uint32_t GetProcessedOrderNum() const; | 170 uint32_t GetProcessedOrderNum() const; |
171 | 171 |
172 // Returns the global order number for the last unprocessed IPC message. | 172 // Returns the global order number for the last unprocessed IPC message. |
173 uint32_t GetUnprocessedOrderNum() const; | 173 uint32_t GetUnprocessedOrderNum() const; |
174 | 174 |
175 // Returns the shared sync point client state. | 175 // Returns the shared sync point global order data. |
176 scoped_refptr<gpu::SyncPointClientState> GetSyncPointClientState(); | 176 scoped_refptr<gpu::SyncPointOrderData> GetSyncPointOrderData(); |
177 | 177 |
178 void HandleMessage(); | 178 void HandleMessage(); |
179 | 179 |
180 // Some messages such as WaitForGetOffsetInRange and WaitForTokenInRange are | 180 // Some messages such as WaitForGetOffsetInRange and WaitForTokenInRange are |
181 // processed as soon as possible because the client is blocked until they | 181 // processed as soon as possible because the client is blocked until they |
182 // are completed. | 182 // are completed. |
183 void HandleOutOfOrderMessage(const IPC::Message& msg); | 183 void HandleOutOfOrderMessage(const IPC::Message& msg); |
184 | 184 |
185 #if defined(OS_ANDROID) | 185 #if defined(OS_ANDROID) |
186 const GpuCommandBufferStub* GetOneStub() const; | 186 const GpuCommandBufferStub* GetOneStub() const; |
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
403 DISALLOW_COPY_AND_ASSIGN(GpuChannelMessage); | 403 DISALLOW_COPY_AND_ASSIGN(GpuChannelMessage); |
404 }; | 404 }; |
405 | 405 |
406 class GpuChannelMessageQueue | 406 class GpuChannelMessageQueue |
407 : public base::RefCountedThreadSafe<GpuChannelMessageQueue> { | 407 : public base::RefCountedThreadSafe<GpuChannelMessageQueue> { |
408 public: | 408 public: |
409 static scoped_refptr<GpuChannelMessageQueue> Create( | 409 static scoped_refptr<GpuChannelMessageQueue> Create( |
410 const base::WeakPtr<GpuChannel>& gpu_channel, | 410 const base::WeakPtr<GpuChannel>& gpu_channel, |
411 base::SingleThreadTaskRunner* task_runner); | 411 base::SingleThreadTaskRunner* task_runner); |
412 | 412 |
413 scoped_refptr<gpu::SyncPointClientState> GetSyncPointClientState(); | 413 scoped_refptr<gpu::SyncPointOrderData> GetSyncPointOrderData(); |
414 | 414 |
415 // Returns the global order number for the last unprocessed IPC message. | 415 // Returns the global order number for the last unprocessed IPC message. |
416 uint32_t GetUnprocessedOrderNum() const; | 416 uint32_t GetUnprocessedOrderNum() const; |
417 | 417 |
418 // Returns the global order number for the last unprocessed IPC message. | 418 // Returns the global order number for the last unprocessed IPC message. |
419 uint32_t GetProcessedOrderNum() const; | 419 uint32_t GetProcessedOrderNum() const; |
420 | 420 |
421 bool HasQueuedMessages() const; | 421 bool HasQueuedMessages() const; |
422 | 422 |
423 base::TimeTicks GetNextMessageTimeTick() const; | 423 base::TimeTicks GetNextMessageTimeTick() const; |
(...skipping 30 matching lines...) Expand all Loading... |
454 | 454 |
455 bool enabled_; | 455 bool enabled_; |
456 | 456 |
457 // Both deques own the messages. | 457 // Both deques own the messages. |
458 std::deque<GpuChannelMessage*> channel_messages_; | 458 std::deque<GpuChannelMessage*> channel_messages_; |
459 | 459 |
460 // This lock protects enabled_ and channel_messages_. | 460 // This lock protects enabled_ and channel_messages_. |
461 mutable base::Lock channel_messages_lock_; | 461 mutable base::Lock channel_messages_lock_; |
462 | 462 |
463 // Keeps track of sync point related state such as message order numbers. | 463 // Keeps track of sync point related state such as message order numbers. |
464 scoped_refptr<gpu::SyncPointClientState> sync_point_client_state_; | 464 scoped_refptr<gpu::SyncPointOrderData> sync_point_order_data_; |
465 | 465 |
466 base::WeakPtr<GpuChannel> gpu_channel_; | 466 base::WeakPtr<GpuChannel> gpu_channel_; |
467 scoped_refptr<base::SingleThreadTaskRunner> task_runner_; | 467 scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
468 | 468 |
469 DISALLOW_COPY_AND_ASSIGN(GpuChannelMessageQueue); | 469 DISALLOW_COPY_AND_ASSIGN(GpuChannelMessageQueue); |
470 }; | 470 }; |
471 | 471 |
472 } // namespace content | 472 } // namespace content |
473 | 473 |
474 #endif // CONTENT_COMMON_GPU_GPU_CHANNEL_H_ | 474 #endif // CONTENT_COMMON_GPU_GPU_CHANNEL_H_ |
OLD | NEW |