summaryrefslogtreecommitdiffstats
path: root/gpu/command_buffer
diff options
context:
space:
mode:
Diffstat (limited to 'gpu/command_buffer')
-rw-r--r--gpu/command_buffer/client/gles2_implementation.cc2
-rw-r--r--gpu/command_buffer/client/query_tracker.cc5
-rw-r--r--gpu/command_buffer/client/query_tracker.h2
-rw-r--r--gpu/command_buffer/client/query_tracker_unittest.cc2
4 files changed, 6 insertions, 5 deletions
diff --git a/gpu/command_buffer/client/gles2_implementation.cc b/gpu/command_buffer/client/gles2_implementation.cc
index ce7b6f5..8fa305d 100644
--- a/gpu/command_buffer/client/gles2_implementation.cc
+++ b/gpu/command_buffer/client/gles2_implementation.cc
@@ -3059,7 +3059,7 @@ void GLES2Implementation::DeleteQueriesEXTHelper(
MustBeContextLost();
}
}
- query_tracker_->RemoveQuery(queries[ii]);
+ query_tracker_->RemoveQuery(queries[ii], context_lost_);
}
helper_->DeleteQueriesEXTImmediate(n, queries);
}
diff --git a/gpu/command_buffer/client/query_tracker.cc b/gpu/command_buffer/client/query_tracker.cc
index e1e150f..25790ec 100644
--- a/gpu/command_buffer/client/query_tracker.cc
+++ b/gpu/command_buffer/client/query_tracker.cc
@@ -151,11 +151,12 @@ QueryTracker::Query* QueryTracker::GetQuery(
return it != queries_.end() ? it->second : NULL;
}
-void QueryTracker::RemoveQuery(GLuint client_id) {
+void QueryTracker::RemoveQuery(GLuint client_id, bool context_lost) {
+ (void)context_lost; // stop unused warning
QueryMap::iterator it = queries_.find(client_id);
if (it != queries_.end()) {
Query* query = it->second;
- GPU_DCHECK(!query->Pending());
+ GPU_DCHECK(context_lost || !query->Pending());
query_sync_manager_.Free(query->info_);
queries_.erase(it);
delete query;
diff --git a/gpu/command_buffer/client/query_tracker.h b/gpu/command_buffer/client/query_tracker.h
index adaba82..ce6e1d4 100644
--- a/gpu/command_buffer/client/query_tracker.h
+++ b/gpu/command_buffer/client/query_tracker.h
@@ -150,7 +150,7 @@ class GLES2_IMPL_EXPORT QueryTracker {
Query* CreateQuery(GLuint id, GLenum target);
Query* GetQuery(GLuint id);
- void RemoveQuery(GLuint id);
+ void RemoveQuery(GLuint id, bool context_lost);
private:
typedef gpu::hash_map<GLuint, Query*> QueryMap;
diff --git a/gpu/command_buffer/client/query_tracker_unittest.cc b/gpu/command_buffer/client/query_tracker_unittest.cc
index 16da7c8..82f807c 100644
--- a/gpu/command_buffer/client/query_tracker_unittest.cc
+++ b/gpu/command_buffer/client/query_tracker_unittest.cc
@@ -115,7 +115,7 @@ TEST_F(QueryTrackerTest, Basic) {
// Check we get nothing for a non-existent query.
EXPECT_TRUE(query_tracker_->GetQuery(kId2) == NULL);
// Check we can delete the query.
- query_tracker_->RemoveQuery(kId1);
+ query_tracker_->RemoveQuery(kId1, false);
// Check we get nothing for a non-existent query.
EXPECT_TRUE(query_tracker_->GetQuery(kId1) == NULL);
}