| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Tests for the QueryTracker. | 5 // Tests for the QueryTracker. |
| 6 | 6 |
| 7 #include "gpu/command_buffer/client/query_tracker.h" | 7 #include "gpu/command_buffer/client/query_tracker.h" |
| 8 | 8 |
| 9 #include <GLES2/gl2ext.h> | 9 #include <GLES2/gl2ext.h> |
| 10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 100 } | 100 } |
| 101 | 101 |
| 102 QuerySync* GetSync(QueryTracker::Query* query) { | 102 QuerySync* GetSync(QueryTracker::Query* query) { |
| 103 return query->info_.sync; | 103 return query->info_.sync; |
| 104 } | 104 } |
| 105 | 105 |
| 106 QuerySyncManager::Bucket* GetBucket(QueryTracker::Query* query) { | 106 QuerySyncManager::Bucket* GetBucket(QueryTracker::Query* query) { |
| 107 return query->info_.bucket; | 107 return query->info_.bucket; |
| 108 } | 108 } |
| 109 | 109 |
| 110 uint32 GetBucketUsedCount(QuerySyncManager::Bucket* bucket) { |
| 111 return QuerySyncManager::kSyncsPerBucket - bucket->free_queries.size(); |
| 112 } |
| 113 |
| 110 uint32 GetFlushGeneration() { return helper_->flush_generation(); } | 114 uint32 GetFlushGeneration() { return helper_->flush_generation(); } |
| 111 | 115 |
| 112 scoped_ptr<CommandBuffer> command_buffer_; | 116 scoped_ptr<CommandBuffer> command_buffer_; |
| 113 scoped_ptr<GLES2CmdHelper> helper_; | 117 scoped_ptr<GLES2CmdHelper> helper_; |
| 114 scoped_ptr<MappedMemoryManager> mapped_memory_; | 118 scoped_ptr<MappedMemoryManager> mapped_memory_; |
| 115 scoped_ptr<QueryTracker> query_tracker_; | 119 scoped_ptr<QueryTracker> query_tracker_; |
| 116 }; | 120 }; |
| 117 | 121 |
| 118 TEST_F(QueryTrackerTest, Basic) { | 122 TEST_F(QueryTrackerTest, Basic) { |
| 119 const GLuint kId1 = 123; | 123 const GLuint kId1 = 123; |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 202 const GLuint kId1 = 123; | 206 const GLuint kId1 = 123; |
| 203 const int32 kToken = 46; | 207 const int32 kToken = 46; |
| 204 const uint32 kResult = 456; | 208 const uint32 kResult = 456; |
| 205 | 209 |
| 206 // Create a Query. | 210 // Create a Query. |
| 207 QueryTracker::Query* query = query_tracker_->CreateQuery( | 211 QueryTracker::Query* query = query_tracker_->CreateQuery( |
| 208 kId1, GL_ANY_SAMPLES_PASSED_EXT); | 212 kId1, GL_ANY_SAMPLES_PASSED_EXT); |
| 209 ASSERT_TRUE(query != NULL); | 213 ASSERT_TRUE(query != NULL); |
| 210 | 214 |
| 211 QuerySyncManager::Bucket* bucket = GetBucket(query); | 215 QuerySyncManager::Bucket* bucket = GetBucket(query); |
| 212 EXPECT_EQ(1u, bucket->used_query_count); | 216 EXPECT_EQ(1u, GetBucketUsedCount(bucket)); |
| 213 | 217 |
| 214 query->MarkAsActive(); | 218 query->MarkAsActive(); |
| 215 query->MarkAsPending(kToken); | 219 query->MarkAsPending(kToken); |
| 216 | 220 |
| 217 query_tracker_->RemoveQuery(kId1); | 221 query_tracker_->RemoveQuery(kId1); |
| 218 // Check we get nothing for a non-existent query. | 222 // Check we get nothing for a non-existent query. |
| 219 EXPECT_TRUE(query_tracker_->GetQuery(kId1) == NULL); | 223 EXPECT_TRUE(query_tracker_->GetQuery(kId1) == NULL); |
| 220 | 224 |
| 221 // Check that memory was not freed. | 225 // Check that memory was not freed. |
| 222 EXPECT_EQ(1u, bucket->used_query_count); | 226 EXPECT_EQ(1u, GetBucketUsedCount(bucket)); |
| 223 | 227 |
| 224 // Simulate GPU process marking it as available. | 228 // Simulate GPU process marking it as available. |
| 225 QuerySync* sync = GetSync(query); | 229 QuerySync* sync = GetSync(query); |
| 226 sync->process_count = query->submit_count(); | 230 sync->process_count = query->submit_count(); |
| 227 sync->result = kResult; | 231 sync->result = kResult; |
| 228 | 232 |
| 229 // Check FreeCompletedQueries. | 233 // Check FreeCompletedQueries. |
| 230 query_tracker_->FreeCompletedQueries(); | 234 query_tracker_->FreeCompletedQueries(); |
| 231 EXPECT_EQ(0u, bucket->used_query_count); | 235 EXPECT_EQ(0u, GetBucketUsedCount(bucket)); |
| 232 } | 236 } |
| 233 | 237 |
| 234 } // namespace gles2 | 238 } // namespace gles2 |
| 235 } // namespace gpu | 239 } // namespace gpu |
| 236 | 240 |
| 237 | 241 |
| OLD | NEW |