| Index: gpu/command_buffer/client/query_tracker.cc
|
| diff --git a/gpu/command_buffer/client/query_tracker.cc b/gpu/command_buffer/client/query_tracker.cc
|
| index 5ac89e07e0f5ca472d767f99b86815ef2984be5f..6395c047781d077eb559a55758971f3b4ff36758 100644
|
| --- a/gpu/command_buffer/client/query_tracker.cc
|
| +++ b/gpu/command_buffer/client/query_tracker.cc
|
| @@ -93,7 +93,7 @@ QueryTracker::Query::Query(GLuint id, GLenum target,
|
| state_(kUninitialized),
|
| submit_count_(0),
|
| token_(0),
|
| - flushed_(false),
|
| + flush_count_(0),
|
| client_begin_time_us_(0),
|
| result_(0) {
|
| }
|
| @@ -140,6 +140,7 @@ void QueryTracker::Query::End(GLES2Implementation* gl) {
|
| }
|
| }
|
| }
|
| + flush_count_ = gl->helper()->flush_generation();
|
| gl->helper()->EndQueryEXT(target(), submit_count());
|
| MarkAsPending(gl->helper()->InsertToken());
|
| }
|
| @@ -168,12 +169,7 @@ bool QueryTracker::Query::CheckResultsAvailable(
|
| }
|
| state_ = kComplete;
|
| } else {
|
| - if (!flushed_) {
|
| - // TODO(gman): We could reduce the number of flushes by having a
|
| - // flush count, recording that count at the time we insert the
|
| - // EndQuery command and then only flushing here if we've have not
|
| - // passed that count yet.
|
| - flushed_ = true;
|
| + if ((helper->flush_generation() - flush_count_ - 1) >= 0x80000000) {
|
| helper->Flush();
|
| } else {
|
| // Insert no-ops so that eventually the GPU process will see more work.
|
|
|