summaryrefslogtreecommitdiffstats
path: root/cc
diff options
context:
space:
mode:
authorajuma@chromium.org <ajuma@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-08 00:20:45 +0000
committerajuma@chromium.org <ajuma@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-08 00:20:45 +0000
commit2526fb93744abd04782adf78cae1a7f2edf9396a (patch)
tree0a2ccce671366b294cf267aaa13b32678b6b1e7e /cc
parente4097c8d5848463fcd3e25f124f017d027b3ccf1 (diff)
downloadchromium_src-2526fb93744abd04782adf78cae1a7f2edf9396a.zip
chromium_src-2526fb93744abd04782adf78cae1a7f2edf9396a.tar.gz
chromium_src-2526fb93744abd04782adf78cae1a7f2edf9396a.tar.bz2
Clean up GPU latency queries when the context is reset
This explicitly deletes queries when the context is reset (e.g. when the OutputSurface is destroyed). Failing to destroy the queries may be causing flickering on some devices. BUG=306690,243459 Review URL: https://codereview.chromium.org/32723003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@233718 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc')
-rw-r--r--cc/output/output_surface.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/cc/output/output_surface.cc b/cc/output/output_surface.cc
index f7b3b36..9e1ef81 100644
--- a/cc/output/output_surface.cc
+++ b/cc/output/output_surface.cc
@@ -334,6 +334,16 @@ void OutputSurface::SetUpContext3d() {
void OutputSurface::ResetContext3d() {
if (context_provider_.get()) {
+ while (!pending_gpu_latency_query_ids_.empty()) {
+ unsigned query_id = pending_gpu_latency_query_ids_.front();
+ pending_gpu_latency_query_ids_.pop_front();
+ context_provider_->Context3d()->deleteQueryEXT(query_id);
+ }
+ while (!available_gpu_latency_query_ids_.empty()) {
+ unsigned query_id = available_gpu_latency_query_ids_.front();
+ available_gpu_latency_query_ids_.pop_front();
+ context_provider_->Context3d()->deleteQueryEXT(query_id);
+ }
context_provider_->SetLostContextCallback(
ContextProvider::LostContextCallback());
context_provider_->SetSwapBuffersCompleteCallback(