diff options
author | ajuma@chromium.org <ajuma@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-08 00:20:45 +0000 |
---|---|---|
committer | ajuma@chromium.org <ajuma@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-08 00:20:45 +0000 |
commit | 2526fb93744abd04782adf78cae1a7f2edf9396a (patch) | |
tree | 0a2ccce671366b294cf267aaa13b32678b6b1e7e /cc | |
parent | e4097c8d5848463fcd3e25f124f017d027b3ccf1 (diff) | |
download | chromium_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.cc | 10 |
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( |