Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Side by Side Diff: gpu/command_buffer/service/query_manager_unittest.cc

Issue 12326146: Refactor/Rename a bunch of GPU stuff (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 #include "gpu/command_buffer/service/query_manager.h" 5 #include "gpu/command_buffer/service/query_manager.h"
6 #include "gpu/command_buffer/common/gles2_cmd_format.h" 6 #include "gpu/command_buffer/common/gles2_cmd_format.h"
7 #include "gpu/command_buffer/service/cmd_buffer_engine.h" 7 #include "gpu/command_buffer/service/cmd_buffer_engine.h"
8 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" 8 #include "gpu/command_buffer/service/gles2_cmd_decoder.h"
9 #include "gpu/command_buffer/service/gles2_cmd_decoder_mock.h" 9 #include "gpu/command_buffer/service/gles2_cmd_decoder_mock.h"
10 #include "gpu/command_buffer/service/feature_info.h" 10 #include "gpu/command_buffer/service/feature_info.h"
(...skipping 27 matching lines...) Expand all
38 protected: 38 protected:
39 virtual void SetUp() { 39 virtual void SetUp() {
40 gl_.reset(new ::testing::StrictMock< ::gfx::MockGLInterface>()); 40 gl_.reset(new ::testing::StrictMock< ::gfx::MockGLInterface>());
41 ::gfx::GLInterface::SetGLInterface(gl_.get()); 41 ::gfx::GLInterface::SetGLInterface(gl_.get());
42 engine_.reset(new MockCommandBufferEngine()); 42 engine_.reset(new MockCommandBufferEngine());
43 decoder_.reset(new MockGLES2Decoder()); 43 decoder_.reset(new MockGLES2Decoder());
44 decoder_->set_engine(engine_.get()); 44 decoder_->set_engine(engine_.get());
45 TestHelper::SetupFeatureInfoInitExpectations( 45 TestHelper::SetupFeatureInfoInitExpectations(
46 gl_.get(), 46 gl_.get(),
47 "GL_EXT_occlusion_query_boolean"); 47 "GL_EXT_occlusion_query_boolean");
48 FeatureInfo::Ref feature_info(new FeatureInfo()); 48 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo());
49 feature_info->Initialize("*"); 49 feature_info->Initialize("*");
50 manager_.reset(new QueryManager(decoder_.get(), feature_info.get())); 50 manager_.reset(new QueryManager(decoder_.get(), feature_info.get()));
51 } 51 }
52 52
53 virtual void TearDown() { 53 virtual void TearDown() {
54 decoder_.reset(); 54 decoder_.reset();
55 manager_->Destroy(false); 55 manager_->Destroy(false);
56 manager_.reset(); 56 manager_.reset();
57 engine_.reset(); 57 engine_.reset();
58 ::gfx::GLInterface::SetGLInterface(NULL); 58 ::gfx::GLInterface::SetGLInterface(NULL);
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 const uint8 QueryManagerTest::kInitialMemoryValue; 147 const uint8 QueryManagerTest::kInitialMemoryValue;
148 #endif 148 #endif
149 149
150 TEST_F(QueryManagerTest, Basic) { 150 TEST_F(QueryManagerTest, Basic) {
151 const GLuint kClient1Id = 1; 151 const GLuint kClient1Id = 1;
152 const GLuint kService1Id = 11; 152 const GLuint kService1Id = 11;
153 const GLuint kClient2Id = 2; 153 const GLuint kClient2Id = 2;
154 154
155 EXPECT_FALSE(manager_->HavePendingQueries()); 155 EXPECT_FALSE(manager_->HavePendingQueries());
156 // Check we can create a Query. 156 // Check we can create a Query.
157 QueryManager::Query::Ref query( 157 scoped_refptr<QueryManager::Query> query(
158 CreateQuery(GL_ANY_SAMPLES_PASSED_EXT, kClient1Id, 158 CreateQuery(GL_ANY_SAMPLES_PASSED_EXT, kClient1Id,
159 kSharedMemoryId, kSharedMemoryOffset, kService1Id)); 159 kSharedMemoryId, kSharedMemoryOffset, kService1Id));
160 ASSERT_TRUE(query.get() != NULL); 160 ASSERT_TRUE(query.get() != NULL);
161 // Check we can get the same Query. 161 // Check we can get the same Query.
162 EXPECT_EQ(query.get(), manager_->GetQuery(kClient1Id)); 162 EXPECT_EQ(query.get(), manager_->GetQuery(kClient1Id));
163 // Check we get nothing for a non-existent query. 163 // Check we get nothing for a non-existent query.
164 EXPECT_TRUE(manager_->GetQuery(kClient2Id) == NULL); 164 EXPECT_TRUE(manager_->GetQuery(kClient2Id) == NULL);
165 // Check we can delete the query. 165 // Check we can delete the query.
166 manager_->RemoveQuery(kClient1Id); 166 manager_->RemoveQuery(kClient1Id);
167 // Check we get nothing for a non-existent query. 167 // Check we get nothing for a non-existent query.
168 EXPECT_TRUE(manager_->GetQuery(kClient1Id) == NULL); 168 EXPECT_TRUE(manager_->GetQuery(kClient1Id) == NULL);
169 // Check query is deleted 169 // Check query is deleted
170 EXPECT_TRUE(query->IsDeleted()); 170 EXPECT_TRUE(query->IsDeleted());
171 EXPECT_FALSE(manager_->HavePendingQueries()); 171 EXPECT_FALSE(manager_->HavePendingQueries());
172 } 172 }
173 173
174 TEST_F(QueryManagerTest, Destroy) { 174 TEST_F(QueryManagerTest, Destroy) {
175 const GLuint kClient1Id = 1; 175 const GLuint kClient1Id = 1;
176 const GLuint kService1Id = 11; 176 const GLuint kService1Id = 11;
177 177
178 // Create Query. 178 // Create Query.
179 QueryManager::Query::Ref query( 179 scoped_refptr<QueryManager::Query> query(
180 CreateQuery(GL_ANY_SAMPLES_PASSED_EXT, kClient1Id, 180 CreateQuery(GL_ANY_SAMPLES_PASSED_EXT, kClient1Id,
181 kSharedMemoryId, kSharedMemoryOffset, kService1Id)); 181 kSharedMemoryId, kSharedMemoryOffset, kService1Id));
182 ASSERT_TRUE(query.get() != NULL); 182 ASSERT_TRUE(query.get() != NULL);
183 EXPECT_CALL(*gl_, DeleteQueriesARB(1, ::testing::Pointee(kService1Id))) 183 EXPECT_CALL(*gl_, DeleteQueriesARB(1, ::testing::Pointee(kService1Id)))
184 .Times(1) 184 .Times(1)
185 .RetiresOnSaturation(); 185 .RetiresOnSaturation();
186 manager_->Destroy(true); 186 manager_->Destroy(true);
187 // Check we get nothing for a non-existent query. 187 // Check we get nothing for a non-existent query.
188 EXPECT_TRUE(manager_->GetQuery(kClient1Id) == NULL); 188 EXPECT_TRUE(manager_->GetQuery(kClient1Id) == NULL);
189 // Check query is deleted 189 // Check query is deleted
190 EXPECT_TRUE(query->IsDeleted()); 190 EXPECT_TRUE(query->IsDeleted());
191 } 191 }
192 192
193 TEST_F(QueryManagerTest, QueryBasic) { 193 TEST_F(QueryManagerTest, QueryBasic) {
194 const GLuint kClient1Id = 1; 194 const GLuint kClient1Id = 1;
195 const GLuint kService1Id = 11; 195 const GLuint kService1Id = 11;
196 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_EXT; 196 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_EXT;
197 197
198 // Create Query. 198 // Create Query.
199 QueryManager::Query::Ref query( 199 scoped_refptr<QueryManager::Query> query(
200 CreateQuery(kTarget, kClient1Id, 200 CreateQuery(kTarget, kClient1Id,
201 kSharedMemoryId, kSharedMemoryOffset, kService1Id)); 201 kSharedMemoryId, kSharedMemoryOffset, kService1Id));
202 ASSERT_TRUE(query.get() != NULL); 202 ASSERT_TRUE(query.get() != NULL);
203 203
204 EXPECT_TRUE(query->IsValid()); 204 EXPECT_TRUE(query->IsValid());
205 EXPECT_FALSE(query->IsDeleted()); 205 EXPECT_FALSE(query->IsDeleted());
206 EXPECT_FALSE(query->pending()); 206 EXPECT_FALSE(query->pending());
207 EXPECT_EQ(kTarget, query->target()); 207 EXPECT_EQ(kTarget, query->target());
208 EXPECT_EQ(kSharedMemoryId, query->shm_id()); 208 EXPECT_EQ(kSharedMemoryId, query->shm_id());
209 EXPECT_EQ(kSharedMemoryOffset, query->shm_offset()); 209 EXPECT_EQ(kSharedMemoryOffset, query->shm_offset());
210 } 210 }
211 211
212 TEST_F(QueryManagerTest, ProcessPendingQuery) { 212 TEST_F(QueryManagerTest, ProcessPendingQuery) {
213 const GLuint kClient1Id = 1; 213 const GLuint kClient1Id = 1;
214 const GLuint kService1Id = 11; 214 const GLuint kService1Id = 11;
215 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_EXT; 215 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_EXT;
216 const uint32 kSubmitCount = 123; 216 const uint32 kSubmitCount = 123;
217 const GLuint kResult = 1; 217 const GLuint kResult = 1;
218 218
219 // Check nothing happens if there are no pending queries. 219 // Check nothing happens if there are no pending queries.
220 EXPECT_TRUE(manager_->ProcessPendingQueries()); 220 EXPECT_TRUE(manager_->ProcessPendingQueries());
221 221
222 // Create Query. 222 // Create Query.
223 QueryManager::Query::Ref query( 223 scoped_refptr<QueryManager::Query> query(
224 CreateQuery(kTarget, kClient1Id, 224 CreateQuery(kTarget, kClient1Id,
225 kSharedMemoryId, kSharedMemoryOffset, kService1Id)); 225 kSharedMemoryId, kSharedMemoryOffset, kService1Id));
226 ASSERT_TRUE(query.get() != NULL); 226 ASSERT_TRUE(query.get() != NULL);
227 227
228 // Setup shared memory like client would. 228 // Setup shared memory like client would.
229 QuerySync* sync = decoder_->GetSharedMemoryAs<QuerySync*>( 229 QuerySync* sync = decoder_->GetSharedMemoryAs<QuerySync*>(
230 kSharedMemoryId, kSharedMemoryOffset, sizeof(*sync)); 230 kSharedMemoryId, kSharedMemoryOffset, sizeof(*sync));
231 ASSERT_TRUE(sync != NULL); 231 ASSERT_TRUE(sync != NULL);
232 sync->Reset(); 232 sync->Reset();
233 233
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 const GLuint kResult3 = 1; 284 const GLuint kResult3 = 1;
285 285
286 // Setup shared memory like client would. 286 // Setup shared memory like client would.
287 QuerySync* sync1 = decoder_->GetSharedMemoryAs<QuerySync*>( 287 QuerySync* sync1 = decoder_->GetSharedMemoryAs<QuerySync*>(
288 kSharedMemoryId, kSharedMemoryOffset, sizeof(*sync1) * 3); 288 kSharedMemoryId, kSharedMemoryOffset, sizeof(*sync1) * 3);
289 ASSERT_TRUE(sync1 != NULL); 289 ASSERT_TRUE(sync1 != NULL);
290 QuerySync* sync2 = sync1 + 1; 290 QuerySync* sync2 = sync1 + 1;
291 QuerySync* sync3 = sync2 + 1; 291 QuerySync* sync3 = sync2 + 1;
292 292
293 // Create Queries. 293 // Create Queries.
294 QueryManager::Query::Ref query1( 294 scoped_refptr<QueryManager::Query> query1(
295 CreateQuery(kTarget, kClient1Id, 295 CreateQuery(kTarget, kClient1Id,
296 kSharedMemoryId, kSharedMemoryOffset + sizeof(*sync1) * 0, 296 kSharedMemoryId, kSharedMemoryOffset + sizeof(*sync1) * 0,
297 kService1Id)); 297 kService1Id));
298 QueryManager::Query::Ref query2( 298 scoped_refptr<QueryManager::Query> query2(
299 CreateQuery(kTarget, kClient2Id, 299 CreateQuery(kTarget, kClient2Id,
300 kSharedMemoryId, kSharedMemoryOffset + sizeof(*sync1) * 1, 300 kSharedMemoryId, kSharedMemoryOffset + sizeof(*sync1) * 1,
301 kService2Id)); 301 kService2Id));
302 QueryManager::Query::Ref query3( 302 scoped_refptr<QueryManager::Query> query3(
303 CreateQuery(kTarget, kClient3Id, 303 CreateQuery(kTarget, kClient3Id,
304 kSharedMemoryId, kSharedMemoryOffset + sizeof(*sync1) * 2, 304 kSharedMemoryId, kSharedMemoryOffset + sizeof(*sync1) * 2,
305 kService3Id)); 305 kService3Id));
306 ASSERT_TRUE(query1.get() != NULL); 306 ASSERT_TRUE(query1.get() != NULL);
307 ASSERT_TRUE(query2.get() != NULL); 307 ASSERT_TRUE(query2.get() != NULL);
308 ASSERT_TRUE(query3.get() != NULL); 308 ASSERT_TRUE(query3.get() != NULL);
309 EXPECT_FALSE(manager_->HavePendingQueries()); 309 EXPECT_FALSE(manager_->HavePendingQueries());
310 310
311 sync1->Reset(); 311 sync1->Reset();
312 sync2->Reset(); 312 sync2->Reset();
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 } 388 }
389 389
390 TEST_F(QueryManagerTest, ProcessPendingBadSharedMemoryId) { 390 TEST_F(QueryManagerTest, ProcessPendingBadSharedMemoryId) {
391 const GLuint kClient1Id = 1; 391 const GLuint kClient1Id = 1;
392 const GLuint kService1Id = 11; 392 const GLuint kService1Id = 11;
393 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_EXT; 393 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_EXT;
394 const uint32 kSubmitCount = 123; 394 const uint32 kSubmitCount = 123;
395 const GLuint kResult = 1; 395 const GLuint kResult = 1;
396 396
397 // Create Query. 397 // Create Query.
398 QueryManager::Query::Ref query( 398 scoped_refptr<QueryManager::Query> query(
399 CreateQuery(kTarget, kClient1Id, 399 CreateQuery(kTarget, kClient1Id,
400 kInvalidSharedMemoryId, kSharedMemoryOffset, kService1Id)); 400 kInvalidSharedMemoryId, kSharedMemoryOffset, kService1Id));
401 ASSERT_TRUE(query.get() != NULL); 401 ASSERT_TRUE(query.get() != NULL);
402 402
403 // Queue it 403 // Queue it
404 QueueQuery(query.get(), kService1Id, kSubmitCount); 404 QueueQuery(query.get(), kService1Id, kSubmitCount);
405 405
406 // Process with return available. 406 // Process with return available.
407 // Expect 2 GL commands. 407 // Expect 2 GL commands.
408 EXPECT_CALL(*gl_, 408 EXPECT_CALL(*gl_,
409 GetQueryObjectuivARB(kService1Id, GL_QUERY_RESULT_AVAILABLE_EXT, _)) 409 GetQueryObjectuivARB(kService1Id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
410 .WillOnce(SetArgumentPointee<2>(1)) 410 .WillOnce(SetArgumentPointee<2>(1))
411 .RetiresOnSaturation(); 411 .RetiresOnSaturation();
412 EXPECT_CALL(*gl_, 412 EXPECT_CALL(*gl_,
413 GetQueryObjectuivARB(kService1Id, GL_QUERY_RESULT_EXT, _)) 413 GetQueryObjectuivARB(kService1Id, GL_QUERY_RESULT_EXT, _))
414 .WillOnce(SetArgumentPointee<2>(kResult)) 414 .WillOnce(SetArgumentPointee<2>(kResult))
415 .RetiresOnSaturation(); 415 .RetiresOnSaturation();
416 EXPECT_FALSE(manager_->ProcessPendingQueries()); 416 EXPECT_FALSE(manager_->ProcessPendingQueries());
417 } 417 }
418 418
419 TEST_F(QueryManagerTest, ProcessPendingBadSharedMemoryOffset) { 419 TEST_F(QueryManagerTest, ProcessPendingBadSharedMemoryOffset) {
420 const GLuint kClient1Id = 1; 420 const GLuint kClient1Id = 1;
421 const GLuint kService1Id = 11; 421 const GLuint kService1Id = 11;
422 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_EXT; 422 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_EXT;
423 const uint32 kSubmitCount = 123; 423 const uint32 kSubmitCount = 123;
424 const GLuint kResult = 1; 424 const GLuint kResult = 1;
425 425
426 // Create Query. 426 // Create Query.
427 QueryManager::Query::Ref query( 427 scoped_refptr<QueryManager::Query> query(
428 CreateQuery(kTarget, kClient1Id, 428 CreateQuery(kTarget, kClient1Id,
429 kSharedMemoryId, kInvalidSharedMemoryOffset, kService1Id)); 429 kSharedMemoryId, kInvalidSharedMemoryOffset, kService1Id));
430 ASSERT_TRUE(query.get() != NULL); 430 ASSERT_TRUE(query.get() != NULL);
431 431
432 // Queue it 432 // Queue it
433 QueueQuery(query.get(), kService1Id, kSubmitCount); 433 QueueQuery(query.get(), kService1Id, kSubmitCount);
434 434
435 // Process with return available. 435 // Process with return available.
436 // Expect 2 GL commands. 436 // Expect 2 GL commands.
437 EXPECT_CALL(*gl_, 437 EXPECT_CALL(*gl_,
438 GetQueryObjectuivARB(kService1Id, GL_QUERY_RESULT_AVAILABLE_EXT, _)) 438 GetQueryObjectuivARB(kService1Id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
439 .WillOnce(SetArgumentPointee<2>(1)) 439 .WillOnce(SetArgumentPointee<2>(1))
440 .RetiresOnSaturation(); 440 .RetiresOnSaturation();
441 EXPECT_CALL(*gl_, 441 EXPECT_CALL(*gl_,
442 GetQueryObjectuivARB(kService1Id, GL_QUERY_RESULT_EXT, _)) 442 GetQueryObjectuivARB(kService1Id, GL_QUERY_RESULT_EXT, _))
443 .WillOnce(SetArgumentPointee<2>(kResult)) 443 .WillOnce(SetArgumentPointee<2>(kResult))
444 .RetiresOnSaturation(); 444 .RetiresOnSaturation();
445 EXPECT_FALSE(manager_->ProcessPendingQueries()); 445 EXPECT_FALSE(manager_->ProcessPendingQueries());
446 } 446 }
447 447
448 TEST_F(QueryManagerTest, ExitWithPendingQuery) { 448 TEST_F(QueryManagerTest, ExitWithPendingQuery) {
449 const GLuint kClient1Id = 1; 449 const GLuint kClient1Id = 1;
450 const GLuint kService1Id = 11; 450 const GLuint kService1Id = 11;
451 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_EXT; 451 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_EXT;
452 const uint32 kSubmitCount = 123; 452 const uint32 kSubmitCount = 123;
453 453
454 // Create Query. 454 // Create Query.
455 QueryManager::Query::Ref query( 455 scoped_refptr<QueryManager::Query> query(
456 CreateQuery(kTarget, kClient1Id, 456 CreateQuery(kTarget, kClient1Id,
457 kSharedMemoryId, kSharedMemoryOffset, kService1Id)); 457 kSharedMemoryId, kSharedMemoryOffset, kService1Id));
458 ASSERT_TRUE(query.get() != NULL); 458 ASSERT_TRUE(query.get() != NULL);
459 459
460 // Queue it 460 // Queue it
461 QueueQuery(query.get(), kService1Id, kSubmitCount); 461 QueueQuery(query.get(), kService1Id, kSubmitCount);
462 } 462 }
463 463
464 // Test that when based on ARB_occlusion_query2 we use GL_ANY_SAMPLES_PASSED_ARB 464 // Test that when based on ARB_occlusion_query2 we use GL_ANY_SAMPLES_PASSED_ARB
465 // for GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT 465 // for GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT
466 TEST_F(QueryManagerTest, ARBOcclusionQuery2) { 466 TEST_F(QueryManagerTest, ARBOcclusionQuery2) {
467 const GLuint kClient1Id = 1; 467 const GLuint kClient1Id = 1;
468 const GLuint kService1Id = 11; 468 const GLuint kService1Id = 11;
469 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT; 469 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT;
470 const uint32 kSubmitCount = 123; 470 const uint32 kSubmitCount = 123;
471 471
472 TestHelper::SetupFeatureInfoInitExpectations( 472 TestHelper::SetupFeatureInfoInitExpectations(
473 gl_.get(), 473 gl_.get(),
474 "GL_ARB_occlusion_query2"); 474 "GL_ARB_occlusion_query2");
475 FeatureInfo::Ref feature_info(new FeatureInfo()); 475 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo());
476 feature_info->Initialize("*"); 476 feature_info->Initialize("*");
477 scoped_ptr<QueryManager> manager( 477 scoped_ptr<QueryManager> manager(
478 new QueryManager(decoder_.get(), feature_info.get())); 478 new QueryManager(decoder_.get(), feature_info.get()));
479 479
480 EXPECT_CALL(*gl_, GenQueriesARB(1, _)) 480 EXPECT_CALL(*gl_, GenQueriesARB(1, _))
481 .WillOnce(SetArgumentPointee<1>(kService1Id)) 481 .WillOnce(SetArgumentPointee<1>(kService1Id))
482 .RetiresOnSaturation(); 482 .RetiresOnSaturation();
483 QueryManager::Query* query = manager->CreateQuery( 483 QueryManager::Query* query = manager->CreateQuery(
484 kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset); 484 kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset);
485 ASSERT_TRUE(query != NULL); 485 ASSERT_TRUE(query != NULL);
(...skipping 13 matching lines...) Expand all
499 // for GL_ANY_SAMPLES_PASSED_EXT 499 // for GL_ANY_SAMPLES_PASSED_EXT
500 TEST_F(QueryManagerTest, ARBOcclusionQuery) { 500 TEST_F(QueryManagerTest, ARBOcclusionQuery) {
501 const GLuint kClient1Id = 1; 501 const GLuint kClient1Id = 1;
502 const GLuint kService1Id = 11; 502 const GLuint kService1Id = 11;
503 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_EXT; 503 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_EXT;
504 const uint32 kSubmitCount = 123; 504 const uint32 kSubmitCount = 123;
505 505
506 TestHelper::SetupFeatureInfoInitExpectations( 506 TestHelper::SetupFeatureInfoInitExpectations(
507 gl_.get(), 507 gl_.get(),
508 "GL_ARB_occlusion_query"); 508 "GL_ARB_occlusion_query");
509 FeatureInfo::Ref feature_info(new FeatureInfo()); 509 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo());
510 feature_info->Initialize("*"); 510 feature_info->Initialize("*");
511 scoped_ptr<QueryManager> manager( 511 scoped_ptr<QueryManager> manager(
512 new QueryManager(decoder_.get(), feature_info.get())); 512 new QueryManager(decoder_.get(), feature_info.get()));
513 513
514 EXPECT_CALL(*gl_, GenQueriesARB(1, _)) 514 EXPECT_CALL(*gl_, GenQueriesARB(1, _))
515 .WillOnce(SetArgumentPointee<1>(kService1Id)) 515 .WillOnce(SetArgumentPointee<1>(kService1Id))
516 .RetiresOnSaturation(); 516 .RetiresOnSaturation();
517 QueryManager::Query* query = manager->CreateQuery( 517 QueryManager::Query* query = manager->CreateQuery(
518 kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset); 518 kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset);
519 ASSERT_TRUE(query != NULL); 519 ASSERT_TRUE(query != NULL);
520 520
521 EXPECT_CALL(*gl_, BeginQueryARB(GL_SAMPLES_PASSED_ARB, kService1Id)) 521 EXPECT_CALL(*gl_, BeginQueryARB(GL_SAMPLES_PASSED_ARB, kService1Id))
522 .Times(1) 522 .Times(1)
523 .RetiresOnSaturation(); 523 .RetiresOnSaturation();
524 EXPECT_CALL(*gl_, EndQueryARB(GL_SAMPLES_PASSED_ARB)) 524 EXPECT_CALL(*gl_, EndQueryARB(GL_SAMPLES_PASSED_ARB))
525 .Times(1) 525 .Times(1)
526 .RetiresOnSaturation(); 526 .RetiresOnSaturation();
527 EXPECT_TRUE(manager->BeginQuery(query)); 527 EXPECT_TRUE(manager->BeginQuery(query));
528 EXPECT_TRUE(manager->EndQuery(query, kSubmitCount)); 528 EXPECT_TRUE(manager->EndQuery(query, kSubmitCount));
529 manager->Destroy(false); 529 manager->Destroy(false);
530 } 530 }
531 531
532 TEST_F(QueryManagerTest, GetErrorQuery) { 532 TEST_F(QueryManagerTest, GetErrorQuery) {
533 const GLuint kClient1Id = 1; 533 const GLuint kClient1Id = 1;
534 const GLenum kTarget = GL_GET_ERROR_QUERY_CHROMIUM; 534 const GLenum kTarget = GL_GET_ERROR_QUERY_CHROMIUM;
535 const uint32 kSubmitCount = 123; 535 const uint32 kSubmitCount = 123;
536 536
537 TestHelper::SetupFeatureInfoInitExpectations(gl_.get(), ""); 537 TestHelper::SetupFeatureInfoInitExpectations(gl_.get(), "");
538 FeatureInfo::Ref feature_info(new FeatureInfo()); 538 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo());
539 feature_info->Initialize("*"); 539 feature_info->Initialize("*");
540 scoped_ptr<QueryManager> manager( 540 scoped_ptr<QueryManager> manager(
541 new QueryManager(decoder_.get(), feature_info.get())); 541 new QueryManager(decoder_.get(), feature_info.get()));
542 542
543 QueryManager::Query* query = manager->CreateQuery( 543 QueryManager::Query* query = manager->CreateQuery(
544 kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset); 544 kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset);
545 ASSERT_TRUE(query != NULL); 545 ASSERT_TRUE(query != NULL);
546 546
547 // Setup shared memory like client would. 547 // Setup shared memory like client would.
548 QuerySync* sync = decoder_->GetSharedMemoryAs<QuerySync*>( 548 QuerySync* sync = decoder_->GetSharedMemoryAs<QuerySync*>(
(...skipping 12 matching lines...) Expand all
561 561
562 EXPECT_EQ(static_cast<GLuint>(GL_INVALID_ENUM), sync->result); 562 EXPECT_EQ(static_cast<GLuint>(GL_INVALID_ENUM), sync->result);
563 563
564 manager->Destroy(false); 564 manager->Destroy(false);
565 } 565 }
566 566
567 } // namespace gles2 567 } // namespace gles2
568 } // namespace gpu 568 } // namespace gpu
569 569
570 570
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/query_manager.cc ('k') | gpu/command_buffer/service/renderbuffer_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698