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 #include "gpu/command_buffer/service/query_manager.h" | 5 #include "gpu/command_buffer/service/query_manager.h" |
6 | 6 |
7 #include "base/atomicops.h" | 7 #include "base/atomicops.h" |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/memory/shared_memory.h" | 10 #include "base/memory/shared_memory.h" |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
209 private: | 209 private: |
210 base::TimeTicks begin_time_; | 210 base::TimeTicks begin_time_; |
211 }; | 211 }; |
212 | 212 |
213 CommandsIssuedQuery::CommandsIssuedQuery( | 213 CommandsIssuedQuery::CommandsIssuedQuery( |
214 QueryManager* manager, GLenum target, int32 shm_id, uint32 shm_offset) | 214 QueryManager* manager, GLenum target, int32 shm_id, uint32 shm_offset) |
215 : Query(manager, target, shm_id, shm_offset) { | 215 : Query(manager, target, shm_id, shm_offset) { |
216 } | 216 } |
217 | 217 |
218 bool CommandsIssuedQuery::Begin() { | 218 bool CommandsIssuedQuery::Begin() { |
219 begin_time_ = base::TimeTicks::HighResNow(); | 219 begin_time_ = base::TimeTicks::Now(); |
220 return true; | 220 return true; |
221 } | 221 } |
222 | 222 |
223 bool CommandsIssuedQuery::End(base::subtle::Atomic32 submit_count) { | 223 bool CommandsIssuedQuery::End(base::subtle::Atomic32 submit_count) { |
224 base::TimeDelta elapsed = base::TimeTicks::HighResNow() - begin_time_; | 224 base::TimeDelta elapsed = base::TimeTicks::Now() - begin_time_; |
225 MarkAsPending(submit_count); | 225 MarkAsPending(submit_count); |
226 return MarkAsCompleted(elapsed.InMicroseconds()); | 226 return MarkAsCompleted(elapsed.InMicroseconds()); |
227 } | 227 } |
228 | 228 |
229 bool CommandsIssuedQuery::Process(bool did_finish) { | 229 bool CommandsIssuedQuery::Process(bool did_finish) { |
230 NOTREACHED(); | 230 NOTREACHED(); |
231 return true; | 231 return true; |
232 } | 232 } |
233 | 233 |
234 void CommandsIssuedQuery::Destroy(bool /* have_context */) { | 234 void CommandsIssuedQuery::Destroy(bool /* have_context */) { |
(...skipping 22 matching lines...) Expand all Loading... |
257 CommandLatencyQuery::CommandLatencyQuery( | 257 CommandLatencyQuery::CommandLatencyQuery( |
258 QueryManager* manager, GLenum target, int32 shm_id, uint32 shm_offset) | 258 QueryManager* manager, GLenum target, int32 shm_id, uint32 shm_offset) |
259 : Query(manager, target, shm_id, shm_offset) { | 259 : Query(manager, target, shm_id, shm_offset) { |
260 } | 260 } |
261 | 261 |
262 bool CommandLatencyQuery::Begin() { | 262 bool CommandLatencyQuery::Begin() { |
263 return true; | 263 return true; |
264 } | 264 } |
265 | 265 |
266 bool CommandLatencyQuery::End(base::subtle::Atomic32 submit_count) { | 266 bool CommandLatencyQuery::End(base::subtle::Atomic32 submit_count) { |
267 base::TimeDelta now = base::TimeTicks::HighResNow() - base::TimeTicks(); | 267 base::TimeDelta now = base::TimeTicks::Now() - base::TimeTicks(); |
268 MarkAsPending(submit_count); | 268 MarkAsPending(submit_count); |
269 return MarkAsCompleted(now.InMicroseconds()); | 269 return MarkAsCompleted(now.InMicroseconds()); |
270 } | 270 } |
271 | 271 |
272 bool CommandLatencyQuery::Process(bool did_finish) { | 272 bool CommandLatencyQuery::Process(bool did_finish) { |
273 NOTREACHED(); | 273 NOTREACHED(); |
274 return true; | 274 return true; |
275 } | 275 } |
276 | 276 |
277 void CommandLatencyQuery::Destroy(bool /* have_context */) { | 277 void CommandLatencyQuery::Destroy(bool /* have_context */) { |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
411 base::TimeTicks begin_time_; | 411 base::TimeTicks begin_time_; |
412 }; | 412 }; |
413 | 413 |
414 CommandsCompletedQuery::CommandsCompletedQuery(QueryManager* manager, | 414 CommandsCompletedQuery::CommandsCompletedQuery(QueryManager* manager, |
415 GLenum target, | 415 GLenum target, |
416 int32 shm_id, | 416 int32 shm_id, |
417 uint32 shm_offset) | 417 uint32 shm_offset) |
418 : Query(manager, target, shm_id, shm_offset) {} | 418 : Query(manager, target, shm_id, shm_offset) {} |
419 | 419 |
420 bool CommandsCompletedQuery::Begin() { | 420 bool CommandsCompletedQuery::Begin() { |
421 begin_time_ = base::TimeTicks::HighResNow(); | 421 begin_time_ = base::TimeTicks::Now(); |
422 return true; | 422 return true; |
423 } | 423 } |
424 | 424 |
425 bool CommandsCompletedQuery::End(base::subtle::Atomic32 submit_count) { | 425 bool CommandsCompletedQuery::End(base::subtle::Atomic32 submit_count) { |
426 fence_.reset(gfx::GLFence::Create()); | 426 fence_.reset(gfx::GLFence::Create()); |
427 DCHECK(fence_); | 427 DCHECK(fence_); |
428 return AddToPendingQueue(submit_count); | 428 return AddToPendingQueue(submit_count); |
429 } | 429 } |
430 | 430 |
431 bool CommandsCompletedQuery::Process(bool did_finish) { | 431 bool CommandsCompletedQuery::Process(bool did_finish) { |
432 // Note: |did_finish| guarantees that the GPU has passed the fence but | 432 // Note: |did_finish| guarantees that the GPU has passed the fence but |
433 // we cannot assume that GLFence::HasCompleted() will return true yet as | 433 // we cannot assume that GLFence::HasCompleted() will return true yet as |
434 // that's not guaranteed by all GLFence implementations. | 434 // that's not guaranteed by all GLFence implementations. |
435 if (!did_finish && fence_ && !fence_->HasCompleted()) | 435 if (!did_finish && fence_ && !fence_->HasCompleted()) |
436 return true; | 436 return true; |
437 | 437 |
438 base::TimeDelta elapsed = base::TimeTicks::HighResNow() - begin_time_; | 438 base::TimeDelta elapsed = base::TimeTicks::Now() - begin_time_; |
439 return MarkAsCompleted(elapsed.InMicroseconds()); | 439 return MarkAsCompleted(elapsed.InMicroseconds()); |
440 } | 440 } |
441 | 441 |
442 void CommandsCompletedQuery::Destroy(bool have_context) { | 442 void CommandsCompletedQuery::Destroy(bool have_context) { |
443 if (have_context && !IsDeleted()) { | 443 if (have_context && !IsDeleted()) { |
444 fence_.reset(); | 444 fence_.reset(); |
445 MarkAsDeleted(); | 445 MarkAsDeleted(); |
446 } | 446 } |
447 } | 447 } |
448 | 448 |
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
747 bool QueryManager::EndQuery(Query* query, base::subtle::Atomic32 submit_count) { | 747 bool QueryManager::EndQuery(Query* query, base::subtle::Atomic32 submit_count) { |
748 DCHECK(query); | 748 DCHECK(query); |
749 if (!RemovePendingQuery(query)) { | 749 if (!RemovePendingQuery(query)) { |
750 return false; | 750 return false; |
751 } | 751 } |
752 return query->End(submit_count); | 752 return query->End(submit_count); |
753 } | 753 } |
754 | 754 |
755 } // namespace gles2 | 755 } // namespace gles2 |
756 } // namespace gpu | 756 } // namespace gpu |
OLD | NEW |