diff options
author | dyen <dyen@chromium.org> | 2015-07-31 17:17:17 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-08-01 00:18:01 +0000 |
commit | 750e3d319500140954d81dd8cd966ae328b7bd62 (patch) | |
tree | 2b0c0270f1893c42d086812850945d3eee8c6f6c /gpu | |
parent | 8118f931536af287db26bdd107f63a3f8686ce44 (diff) | |
download | chromium_src-750e3d319500140954d81dd8cd966ae328b7bd62.zip chromium_src-750e3d319500140954d81dd8cd966ae328b7bd62.tar.gz chromium_src-750e3d319500140954d81dd8cd966ae328b7bd62.tar.bz2 |
Revert various crash checks made to queries while tracking down a bug.
Now that we have pinpointed the crash, we should revert some of the
CHECKs that were added since these were never hit.
Revert "Temporarily crash the GPU process when unexpected failures happen."
This reverts commit 27cfeeeaa3faee230d2d526b13a3b0dee056022e.
Revert "Added extra checks for all query related errors."
This reverts commit ddfc8b48070fa9bcef48b045d4a4b144e960f93f.
Revert "Added some extra safe guards to remove possible errors for queries."
This reverts commit 15a3067d09a85c463691e962885c033c8d8d792c.
BUG=467678
Review URL: https://codereview.chromium.org/1270553003
Cr-Commit-Position: refs/heads/master@{#341445}
Diffstat (limited to 'gpu')
-rw-r--r-- | gpu/command_buffer/client/query_tracker.cc | 12 | ||||
-rw-r--r-- | gpu/command_buffer/client/query_tracker.h | 1 | ||||
-rw-r--r-- | gpu/command_buffer/client/query_tracker_unittest.cc | 6 | ||||
-rw-r--r-- | gpu/command_buffer/service/gles2_cmd_decoder.cc | 49 | ||||
-rw-r--r-- | gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc | 3 | ||||
-rw-r--r-- | gpu/command_buffer/service/query_manager.cc | 5 |
6 files changed, 7 insertions, 69 deletions
diff --git a/gpu/command_buffer/client/query_tracker.cc b/gpu/command_buffer/client/query_tracker.cc index bc23685..c85c6bb 100644 --- a/gpu/command_buffer/client/query_tracker.cc +++ b/gpu/command_buffer/client/query_tracker.cc @@ -31,8 +31,7 @@ QuerySyncManager::Bucket::Bucket(QuerySync* sync_mem, QuerySyncManager::Bucket::~Bucket() = default; QuerySyncManager::QuerySyncManager(MappedMemoryManager* manager) - : mapped_memory_(manager), - alloc_index_(0) { + : mapped_memory_(manager) { DCHECK(manager); } @@ -70,10 +69,8 @@ bool QuerySyncManager::Alloc(QuerySyncManager::QueryInfo* info) { unsigned short index_in_bucket = 0; for (size_t i = 0; i < kSyncsPerBucket; i++) { - size_t try_index = (i + alloc_index_) % kSyncsPerBucket; - if (!bucket->in_use_queries[try_index]) { - index_in_bucket = try_index; - alloc_index_ = try_index + 1; + if (!bucket->in_use_queries[i]) { + index_in_bucket = i; break; } } @@ -115,7 +112,7 @@ QueryTracker::Query::Query(GLuint id, GLenum target, target_(target), info_(info), state_(kUninitialized), - submit_count_(456), + submit_count_(0), token_(0), flush_count_(0), client_begin_time_us_(0), @@ -238,7 +235,6 @@ QueryTracker::Query* QueryTracker::CreateQuery(GLuint id, GLenum target) { if (!query_sync_manager_.Alloc(&info)) { return nullptr; } - info.sync->process_count = 123; Query* query = new Query(id, target, info); std::pair<QueryIdMap::iterator, bool> result = queries_.insert(std::make_pair(id, query)); diff --git a/gpu/command_buffer/client/query_tracker.h b/gpu/command_buffer/client/query_tracker.h index 931bc1b..45f5681 100644 --- a/gpu/command_buffer/client/query_tracker.h +++ b/gpu/command_buffer/client/query_tracker.h @@ -69,7 +69,6 @@ class GLES2_IMPL_EXPORT QuerySyncManager { private: MappedMemoryManager* mapped_memory_; std::deque<Bucket*> buckets_; - size_t alloc_index_; DISALLOW_COPY_AND_ASSIGN(QuerySyncManager); }; diff --git a/gpu/command_buffer/client/query_tracker_unittest.cc b/gpu/command_buffer/client/query_tracker_unittest.cc index 48aee6b..cba94d1 100644 --- a/gpu/command_buffer/client/query_tracker_unittest.cc +++ b/gpu/command_buffer/client/query_tracker_unittest.cc @@ -148,25 +148,25 @@ TEST_F(QueryTrackerTest, Query) { // Create a Query. QueryTracker::Query* query = query_tracker_->CreateQuery( kId1, GL_ANY_SAMPLES_PASSED_EXT); - const int32 start_submit_count = query->submit_count(); ASSERT_TRUE(query != NULL); EXPECT_TRUE(query->NeverUsed()); EXPECT_FALSE(query->Pending()); EXPECT_EQ(0, query->token()); + EXPECT_EQ(0, query->submit_count()); // Check MarkAsActive. query->MarkAsActive(); EXPECT_FALSE(query->NeverUsed()); EXPECT_FALSE(query->Pending()); EXPECT_EQ(0, query->token()); - EXPECT_EQ(start_submit_count + 1, query->submit_count()); + EXPECT_EQ(1, query->submit_count()); // Check MarkAsPending. query->MarkAsPending(kToken); EXPECT_FALSE(query->NeverUsed()); EXPECT_TRUE(query->Pending()); EXPECT_EQ(kToken, query->token()); - EXPECT_EQ(start_submit_count + 1, query->submit_count()); + EXPECT_EQ(1, query->submit_count()); // Flush only once if no more flushes happened between a call to // EndQuery command and CheckResultsAvailable diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc index 567d64a..fba0b90 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc @@ -11629,26 +11629,6 @@ error::Error GLES2DecoderImpl::HandleBeginQueryEXT(uint32 immediate_data_size, break; case GL_COMMANDS_COMPLETED_CHROMIUM: if (!features().chromium_sync_query) { -#if defined(OS_MACOSX) - // TODO(dyen): Remove once we know what is failing. - uint32_t boolean_flags = 0; - if (gfx::g_driver_gl.ext.b_GL_ARB_sync) - boolean_flags |= 1; - if (gfx::g_driver_gl.ext.b_GL_APPLE_fence) - boolean_flags |= 2; - if (gfx::g_driver_gl.ext.b_GL_NV_fence) - boolean_flags |= 4; - - CHECK(boolean_flags != 0) << "Nothing supported"; - CHECK(boolean_flags != 1) << "ARB"; - CHECK(boolean_flags != 2) << "APPLE"; - CHECK(boolean_flags != 3) << "ARB APPLE"; - CHECK(boolean_flags != 4) << "NV"; - CHECK(boolean_flags != 5) << "NV ARB"; - CHECK(boolean_flags != 6) << "NV APPLE"; - CHECK(boolean_flags != 7) << "NV ARB APPLE"; - CHECK(false) << "Unknown error."; -#endif LOCAL_SET_GL_ERROR( GL_INVALID_OPERATION, "glBeginQueryEXT", "not enabled for commands completed queries"); @@ -11681,21 +11661,12 @@ error::Error GLES2DecoderImpl::HandleBeginQueryEXT(uint32 immediate_data_size, } if (query_manager_->GetActiveQuery(target)) { -#if defined(OS_MACOSX) - // TODO(dyen): Remove once we know what is failing. - CHECK(target != GL_COMMANDS_COMPLETED_CHROMIUM) - << "Query already in progress"; -#endif LOCAL_SET_GL_ERROR( GL_INVALID_OPERATION, "glBeginQueryEXT", "query already in progress"); return error::kNoError; } if (client_id == 0) { -#if defined(OS_MACOSX) - // TODO(dyen): Remove once we know what is failing. - CHECK(target != GL_COMMANDS_COMPLETED_CHROMIUM) << "Id is 0"; -#endif LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glBeginQueryEXT", "id is 0"); return error::kNoError; } @@ -11703,10 +11674,6 @@ error::Error GLES2DecoderImpl::HandleBeginQueryEXT(uint32 immediate_data_size, QueryManager::Query* query = query_manager_->GetQuery(client_id); if (!query) { if (!query_manager_->IsValidQuery(client_id)) { -#if defined(OS_MACOSX) - // TODO(dyen): Remove once we know what is failing. - CHECK(target != GL_COMMANDS_COMPLETED_CHROMIUM) << "Invalid ID"; -#endif LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glBeginQueryEXT", "id not made by glGenQueriesEXT"); @@ -11717,10 +11684,6 @@ error::Error GLES2DecoderImpl::HandleBeginQueryEXT(uint32 immediate_data_size, } if (query->target() != target) { -#if defined(OS_MACOSX) - // TODO(dyen): Remove once we know what is failing. - CHECK(target != GL_COMMANDS_COMPLETED_CHROMIUM) << "Non-Matching Target"; -#endif LOCAL_SET_GL_ERROR( GL_INVALID_OPERATION, "glBeginQueryEXT", "target does not match"); return error::kNoError; @@ -11731,10 +11694,6 @@ 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; } @@ -11750,20 +11709,12 @@ 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/gles2_cmd_decoder_unittest.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc index 2dfb1090..b8ec9d2 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc @@ -992,15 +992,12 @@ TEST_P(GLES2DecoderManualInitTest, BeginInvalidTargetQueryFails) { GenHelper<GenQueriesEXTImmediate>(kNewClientId); BeginQueryEXT begin_cmd; -#if !defined(OS_MACOSX) - // TODO(dyen): Remove once we know what is failing. begin_cmd.Init(GL_COMMANDS_COMPLETED_CHROMIUM, kNewClientId, kSharedMemoryId, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(begin_cmd)); EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); -#endif // !defined(OS_MACOSX) begin_cmd.Init(GL_ANY_SAMPLES_PASSED, kNewClientId, diff --git a/gpu/command_buffer/service/query_manager.cc b/gpu/command_buffer/service/query_manager.cc index ab9dd63..49f111f 100644 --- a/gpu/command_buffer/service/query_manager.cc +++ b/gpu/command_buffer/service/query_manager.cc @@ -1035,12 +1035,7 @@ 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; } |