summaryrefslogtreecommitdiffstats
path: root/gpu
diff options
context:
space:
mode:
authordyen <dyen@chromium.org>2015-07-27 00:01:37 -0700
committerCommit bot <commit-bot@chromium.org>2015-07-27 07:03:05 +0000
commitddfc8b48070fa9bcef48b045d4a4b144e960f93f (patch)
tree2298f66742837f33cb885459c9bca6422f472649 /gpu
parent37919fe8630ebb57fb9b6b12f27c5c9482d1ccc5 (diff)
downloadchromium_src-ddfc8b48070fa9bcef48b045d4a4b144e960f93f.zip
chromium_src-ddfc8b48070fa9bcef48b045d4a4b144e960f93f.tar.gz
chromium_src-ddfc8b48070fa9bcef48b045d4a4b144e960f93f.tar.bz2
Added extra checks for all query related errors.
In order to help track down errors relating to the renderer crashing on Mac OSX, temporarily crash the GPU whenever we get any unexpected errors related to GL_COMMANDS_COMPLETED_CHROMIUM. R=piman@chromium.org BUG=467678 Review URL: https://codereview.chromium.org/1260583003 Cr-Commit-Position: refs/heads/master@{#340423}
Diffstat (limited to 'gpu')
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder.cc12
-rw-r--r--gpu/command_buffer/service/query_manager.cc5
2 files changed, 17 insertions, 0 deletions
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
index 019879b..5cab02c 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -11702,6 +11702,10 @@ error::Error GLES2DecoderImpl::HandleBeginQueryEXT(uint32 immediate_data_size,
}
if (!query_manager_->BeginQuery(query)) {
+#if defined(OS_MACOSX)
+ // TODO(dyen): Remove once we know what is failing.
+ CHECK(target != GL_COMMANDS_COMPLETED_CHROMIUM) << "Out of bounds";
+#endif
return error::kOutOfBounds;
}
@@ -11717,12 +11721,20 @@ error::Error GLES2DecoderImpl::HandleEndQueryEXT(uint32 immediate_data_size,
QueryManager::Query* query = query_manager_->GetActiveQuery(target);
if (!query) {
+#if defined(OS_MACOSX)
+ // TODO(dyen): Remove once we know what is failing.
+ CHECK(target != GL_COMMANDS_COMPLETED_CHROMIUM) << "Target not active";
+#endif
LOCAL_SET_GL_ERROR(
GL_INVALID_OPERATION, "glEndQueryEXT", "No active query");
return error::kNoError;
}
if (!query_manager_->EndQuery(query, submit_count)) {
+#if defined(OS_MACOSX)
+ // TODO(dyen): Remove once we know what is failing.
+ CHECK(target != GL_COMMANDS_COMPLETED_CHROMIUM) << "Out of bounds";
+#endif
return error::kOutOfBounds;
}
diff --git a/gpu/command_buffer/service/query_manager.cc b/gpu/command_buffer/service/query_manager.cc
index 09bad18..6700f78 100644
--- a/gpu/command_buffer/service/query_manager.cc
+++ b/gpu/command_buffer/service/query_manager.cc
@@ -969,7 +969,12 @@ bool QueryManager::ProcessPendingQueries(bool did_finish) {
pending_queries_.pop_front();
}
// If glFinish() has been called, all of our queries should be completed.
+#if defined(OS_MACOSX)
+ // TODO(dyen): Remove once we know what is failing.
+ CHECK(!did_finish || pending_queries_.empty());
+#else
DCHECK(!did_finish || pending_queries_.empty());
+#endif
return true;
}