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

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

Issue 184223003: gpu: Use explicit atomics instead of assuming that 32bit read/writes are atomic. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: more s/uint32/base::subtle::Atomic32/ Created 6 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
« no previous file with comments | « gpu/command_buffer/service/query_manager.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/error_state_mock.h" 8 #include "gpu/command_buffer/service/error_state_mock.h"
9 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" 9 #include "gpu/command_buffer/service/gles2_cmd_decoder.h"
10 #include "gpu/command_buffer/service/gles2_cmd_decoder_mock.h" 10 #include "gpu/command_buffer/service/gles2_cmd_decoder_mock.h"
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 62
63 QueryManager::Query* CreateQuery( 63 QueryManager::Query* CreateQuery(
64 GLenum target, GLuint client_id, int32 shm_id, uint32 shm_offset, 64 GLenum target, GLuint client_id, int32 shm_id, uint32 shm_offset,
65 GLuint service_id) { 65 GLuint service_id) {
66 EXPECT_CALL(*gl_, GenQueriesARB(1, _)) 66 EXPECT_CALL(*gl_, GenQueriesARB(1, _))
67 .WillOnce(SetArgumentPointee<1>(service_id)) 67 .WillOnce(SetArgumentPointee<1>(service_id))
68 .RetiresOnSaturation(); 68 .RetiresOnSaturation();
69 return manager_->CreateQuery(target, client_id, shm_id, shm_offset); 69 return manager_->CreateQuery(target, client_id, shm_id, shm_offset);
70 } 70 }
71 71
72 void QueueQuery( 72 void QueueQuery(QueryManager::Query* query,
73 QueryManager::Query* query, GLuint service_id, uint32 submit_count) { 73 GLuint service_id,
74 base::subtle::Atomic32 submit_count) {
74 EXPECT_CALL(*gl_, BeginQueryARB(query->target(), service_id)) 75 EXPECT_CALL(*gl_, BeginQueryARB(query->target(), service_id))
75 .Times(1) 76 .Times(1)
76 .RetiresOnSaturation(); 77 .RetiresOnSaturation();
77 EXPECT_CALL(*gl_, EndQueryARB(query->target())) 78 EXPECT_CALL(*gl_, EndQueryARB(query->target()))
78 .Times(1) 79 .Times(1)
79 .RetiresOnSaturation(); 80 .RetiresOnSaturation();
80 EXPECT_TRUE(manager_->BeginQuery(query)); 81 EXPECT_TRUE(manager_->BeginQuery(query));
81 EXPECT_TRUE(manager_->EndQuery(query, submit_count)); 82 EXPECT_TRUE(manager_->EndQuery(query, submit_count));
82 } 83 }
83 84
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 EXPECT_FALSE(query->pending()); 208 EXPECT_FALSE(query->pending());
208 EXPECT_EQ(kTarget, query->target()); 209 EXPECT_EQ(kTarget, query->target());
209 EXPECT_EQ(kSharedMemoryId, query->shm_id()); 210 EXPECT_EQ(kSharedMemoryId, query->shm_id());
210 EXPECT_EQ(kSharedMemoryOffset, query->shm_offset()); 211 EXPECT_EQ(kSharedMemoryOffset, query->shm_offset());
211 } 212 }
212 213
213 TEST_F(QueryManagerTest, ProcessPendingQuery) { 214 TEST_F(QueryManagerTest, ProcessPendingQuery) {
214 const GLuint kClient1Id = 1; 215 const GLuint kClient1Id = 1;
215 const GLuint kService1Id = 11; 216 const GLuint kService1Id = 11;
216 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_EXT; 217 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_EXT;
217 const uint32 kSubmitCount = 123; 218 const base::subtle::Atomic32 kSubmitCount = 123;
218 const GLuint kResult = 1; 219 const GLuint kResult = 1;
219 220
220 // Check nothing happens if there are no pending queries. 221 // Check nothing happens if there are no pending queries.
221 EXPECT_TRUE(manager_->ProcessPendingQueries()); 222 EXPECT_TRUE(manager_->ProcessPendingQueries());
222 223
223 // Create Query. 224 // Create Query.
224 scoped_refptr<QueryManager::Query> query( 225 scoped_refptr<QueryManager::Query> query(
225 CreateQuery(kTarget, kClient1Id, 226 CreateQuery(kTarget, kClient1Id,
226 kSharedMemoryId, kSharedMemoryOffset, kService1Id)); 227 kSharedMemoryId, kSharedMemoryOffset, kService1Id));
227 ASSERT_TRUE(query.get() != NULL); 228 ASSERT_TRUE(query.get() != NULL);
(...skipping 10 matching lines...) Expand all
238 EXPECT_TRUE(manager_->HavePendingQueries()); 239 EXPECT_TRUE(manager_->HavePendingQueries());
239 240
240 // Process with return not available. 241 // Process with return not available.
241 // Expect 1 GL command. 242 // Expect 1 GL command.
242 EXPECT_CALL(*gl_, 243 EXPECT_CALL(*gl_,
243 GetQueryObjectuivARB(kService1Id, GL_QUERY_RESULT_AVAILABLE_EXT, _)) 244 GetQueryObjectuivARB(kService1Id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
244 .WillOnce(SetArgumentPointee<2>(0)) 245 .WillOnce(SetArgumentPointee<2>(0))
245 .RetiresOnSaturation(); 246 .RetiresOnSaturation();
246 EXPECT_TRUE(manager_->ProcessPendingQueries()); 247 EXPECT_TRUE(manager_->ProcessPendingQueries());
247 EXPECT_TRUE(query->pending()); 248 EXPECT_TRUE(query->pending());
248 EXPECT_EQ(0u, sync->process_count); 249 EXPECT_EQ(0, sync->process_count);
249 EXPECT_EQ(0u, sync->result); 250 EXPECT_EQ(0u, sync->result);
250 251
251 // Process with return available. 252 // Process with return available.
252 // Expect 2 GL commands. 253 // Expect 2 GL commands.
253 EXPECT_CALL(*gl_, 254 EXPECT_CALL(*gl_,
254 GetQueryObjectuivARB(kService1Id, GL_QUERY_RESULT_AVAILABLE_EXT, _)) 255 GetQueryObjectuivARB(kService1Id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
255 .WillOnce(SetArgumentPointee<2>(1)) 256 .WillOnce(SetArgumentPointee<2>(1))
256 .RetiresOnSaturation(); 257 .RetiresOnSaturation();
257 EXPECT_CALL(*gl_, 258 EXPECT_CALL(*gl_,
258 GetQueryObjectuivARB(kService1Id, GL_QUERY_RESULT_EXT, _)) 259 GetQueryObjectuivARB(kService1Id, GL_QUERY_RESULT_EXT, _))
(...skipping 11 matching lines...) Expand all
270 } 271 }
271 272
272 TEST_F(QueryManagerTest, ProcessPendingQueries) { 273 TEST_F(QueryManagerTest, ProcessPendingQueries) {
273 const GLuint kClient1Id = 1; 274 const GLuint kClient1Id = 1;
274 const GLuint kService1Id = 11; 275 const GLuint kService1Id = 11;
275 const GLuint kClient2Id = 2; 276 const GLuint kClient2Id = 2;
276 const GLuint kService2Id = 12; 277 const GLuint kService2Id = 12;
277 const GLuint kClient3Id = 3; 278 const GLuint kClient3Id = 3;
278 const GLuint kService3Id = 13; 279 const GLuint kService3Id = 13;
279 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_EXT; 280 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_EXT;
280 const uint32 kSubmitCount1 = 123; 281 const base::subtle::Atomic32 kSubmitCount1 = 123;
281 const uint32 kSubmitCount2 = 123; 282 const base::subtle::Atomic32 kSubmitCount2 = 123;
282 const uint32 kSubmitCount3 = 123; 283 const base::subtle::Atomic32 kSubmitCount3 = 123;
283 const GLuint kResult1 = 1; 284 const GLuint kResult1 = 1;
284 const GLuint kResult2 = 1; 285 const GLuint kResult2 = 1;
285 const GLuint kResult3 = 1; 286 const GLuint kResult3 = 1;
286 287
287 // Setup shared memory like client would. 288 // Setup shared memory like client would.
288 QuerySync* sync1 = decoder_->GetSharedMemoryAs<QuerySync*>( 289 QuerySync* sync1 = decoder_->GetSharedMemoryAs<QuerySync*>(
289 kSharedMemoryId, kSharedMemoryOffset, sizeof(*sync1) * 3); 290 kSharedMemoryId, kSharedMemoryOffset, sizeof(*sync1) * 3);
290 ASSERT_TRUE(sync1 != NULL); 291 ASSERT_TRUE(sync1 != NULL);
291 QuerySync* sync2 = sync1 + 1; 292 QuerySync* sync2 = sync1 + 1;
292 QuerySync* sync3 = sync2 + 1; 293 QuerySync* sync3 = sync2 + 1;
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 .RetiresOnSaturation(); 349 .RetiresOnSaturation();
349 EXPECT_TRUE(manager_->ProcessPendingQueries()); 350 EXPECT_TRUE(manager_->ProcessPendingQueries());
350 } 351 }
351 EXPECT_FALSE(query1->pending()); 352 EXPECT_FALSE(query1->pending());
352 EXPECT_FALSE(query2->pending()); 353 EXPECT_FALSE(query2->pending());
353 EXPECT_TRUE(query3->pending()); 354 EXPECT_TRUE(query3->pending());
354 EXPECT_EQ(kSubmitCount1, sync1->process_count); 355 EXPECT_EQ(kSubmitCount1, sync1->process_count);
355 EXPECT_EQ(kSubmitCount2, sync2->process_count); 356 EXPECT_EQ(kSubmitCount2, sync2->process_count);
356 EXPECT_EQ(kResult1, sync1->result); 357 EXPECT_EQ(kResult1, sync1->result);
357 EXPECT_EQ(kResult2, sync2->result); 358 EXPECT_EQ(kResult2, sync2->result);
358 EXPECT_EQ(0u, sync3->process_count); 359 EXPECT_EQ(0, sync3->process_count);
359 EXPECT_EQ(0u, sync3->result); 360 EXPECT_EQ(0u, sync3->result);
360 EXPECT_TRUE(manager_->HavePendingQueries()); 361 EXPECT_TRUE(manager_->HavePendingQueries());
361 362
362 // Process with renaming query. No result. 363 // Process with renaming query. No result.
363 // Expect 1 GL commands. 364 // Expect 1 GL commands.
364 EXPECT_CALL(*gl_, 365 EXPECT_CALL(*gl_,
365 GetQueryObjectuivARB(kService3Id, GL_QUERY_RESULT_AVAILABLE_EXT, _)) 366 GetQueryObjectuivARB(kService3Id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
366 .WillOnce(SetArgumentPointee<2>(0)) 367 .WillOnce(SetArgumentPointee<2>(0))
367 .RetiresOnSaturation(); 368 .RetiresOnSaturation();
368 EXPECT_TRUE(manager_->ProcessPendingQueries()); 369 EXPECT_TRUE(manager_->ProcessPendingQueries());
369 EXPECT_TRUE(query3->pending()); 370 EXPECT_TRUE(query3->pending());
370 EXPECT_EQ(0u, sync3->process_count); 371 EXPECT_EQ(0, sync3->process_count);
371 EXPECT_EQ(0u, sync3->result); 372 EXPECT_EQ(0u, sync3->result);
372 EXPECT_TRUE(manager_->HavePendingQueries()); 373 EXPECT_TRUE(manager_->HavePendingQueries());
373 374
374 // Process with renaming query. With result. 375 // Process with renaming query. With result.
375 // Expect 2 GL commands. 376 // Expect 2 GL commands.
376 EXPECT_CALL(*gl_, 377 EXPECT_CALL(*gl_,
377 GetQueryObjectuivARB(kService3Id, GL_QUERY_RESULT_AVAILABLE_EXT, _)) 378 GetQueryObjectuivARB(kService3Id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
378 .WillOnce(SetArgumentPointee<2>(1)) 379 .WillOnce(SetArgumentPointee<2>(1))
379 .RetiresOnSaturation(); 380 .RetiresOnSaturation();
380 EXPECT_CALL(*gl_, 381 EXPECT_CALL(*gl_,
381 GetQueryObjectuivARB(kService3Id, GL_QUERY_RESULT_EXT, _)) 382 GetQueryObjectuivARB(kService3Id, GL_QUERY_RESULT_EXT, _))
382 .WillOnce(SetArgumentPointee<2>(kResult3)) 383 .WillOnce(SetArgumentPointee<2>(kResult3))
383 .RetiresOnSaturation(); 384 .RetiresOnSaturation();
384 EXPECT_TRUE(manager_->ProcessPendingQueries()); 385 EXPECT_TRUE(manager_->ProcessPendingQueries());
385 EXPECT_FALSE(query3->pending()); 386 EXPECT_FALSE(query3->pending());
386 EXPECT_EQ(kSubmitCount3, sync3->process_count); 387 EXPECT_EQ(kSubmitCount3, sync3->process_count);
387 EXPECT_EQ(kResult3, sync3->result); 388 EXPECT_EQ(kResult3, sync3->result);
388 EXPECT_FALSE(manager_->HavePendingQueries()); 389 EXPECT_FALSE(manager_->HavePendingQueries());
389 } 390 }
390 391
391 TEST_F(QueryManagerTest, ProcessPendingBadSharedMemoryId) { 392 TEST_F(QueryManagerTest, ProcessPendingBadSharedMemoryId) {
392 const GLuint kClient1Id = 1; 393 const GLuint kClient1Id = 1;
393 const GLuint kService1Id = 11; 394 const GLuint kService1Id = 11;
394 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_EXT; 395 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_EXT;
395 const uint32 kSubmitCount = 123; 396 const base::subtle::Atomic32 kSubmitCount = 123;
396 const GLuint kResult = 1; 397 const GLuint kResult = 1;
397 398
398 // Create Query. 399 // Create Query.
399 scoped_refptr<QueryManager::Query> query( 400 scoped_refptr<QueryManager::Query> query(
400 CreateQuery(kTarget, kClient1Id, 401 CreateQuery(kTarget, kClient1Id,
401 kInvalidSharedMemoryId, kSharedMemoryOffset, kService1Id)); 402 kInvalidSharedMemoryId, kSharedMemoryOffset, kService1Id));
402 ASSERT_TRUE(query.get() != NULL); 403 ASSERT_TRUE(query.get() != NULL);
403 404
404 // Queue it 405 // Queue it
405 QueueQuery(query.get(), kService1Id, kSubmitCount); 406 QueueQuery(query.get(), kService1Id, kSubmitCount);
406 407
407 // Process with return available. 408 // Process with return available.
408 // Expect 2 GL commands. 409 // Expect 2 GL commands.
409 EXPECT_CALL(*gl_, 410 EXPECT_CALL(*gl_,
410 GetQueryObjectuivARB(kService1Id, GL_QUERY_RESULT_AVAILABLE_EXT, _)) 411 GetQueryObjectuivARB(kService1Id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
411 .WillOnce(SetArgumentPointee<2>(1)) 412 .WillOnce(SetArgumentPointee<2>(1))
412 .RetiresOnSaturation(); 413 .RetiresOnSaturation();
413 EXPECT_CALL(*gl_, 414 EXPECT_CALL(*gl_,
414 GetQueryObjectuivARB(kService1Id, GL_QUERY_RESULT_EXT, _)) 415 GetQueryObjectuivARB(kService1Id, GL_QUERY_RESULT_EXT, _))
415 .WillOnce(SetArgumentPointee<2>(kResult)) 416 .WillOnce(SetArgumentPointee<2>(kResult))
416 .RetiresOnSaturation(); 417 .RetiresOnSaturation();
417 EXPECT_FALSE(manager_->ProcessPendingQueries()); 418 EXPECT_FALSE(manager_->ProcessPendingQueries());
418 } 419 }
419 420
420 TEST_F(QueryManagerTest, ProcessPendingBadSharedMemoryOffset) { 421 TEST_F(QueryManagerTest, ProcessPendingBadSharedMemoryOffset) {
421 const GLuint kClient1Id = 1; 422 const GLuint kClient1Id = 1;
422 const GLuint kService1Id = 11; 423 const GLuint kService1Id = 11;
423 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_EXT; 424 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_EXT;
424 const uint32 kSubmitCount = 123; 425 const base::subtle::Atomic32 kSubmitCount = 123;
425 const GLuint kResult = 1; 426 const GLuint kResult = 1;
426 427
427 // Create Query. 428 // Create Query.
428 scoped_refptr<QueryManager::Query> query( 429 scoped_refptr<QueryManager::Query> query(
429 CreateQuery(kTarget, kClient1Id, 430 CreateQuery(kTarget, kClient1Id,
430 kSharedMemoryId, kInvalidSharedMemoryOffset, kService1Id)); 431 kSharedMemoryId, kInvalidSharedMemoryOffset, kService1Id));
431 ASSERT_TRUE(query.get() != NULL); 432 ASSERT_TRUE(query.get() != NULL);
432 433
433 // Queue it 434 // Queue it
434 QueueQuery(query.get(), kService1Id, kSubmitCount); 435 QueueQuery(query.get(), kService1Id, kSubmitCount);
435 436
436 // Process with return available. 437 // Process with return available.
437 // Expect 2 GL commands. 438 // Expect 2 GL commands.
438 EXPECT_CALL(*gl_, 439 EXPECT_CALL(*gl_,
439 GetQueryObjectuivARB(kService1Id, GL_QUERY_RESULT_AVAILABLE_EXT, _)) 440 GetQueryObjectuivARB(kService1Id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
440 .WillOnce(SetArgumentPointee<2>(1)) 441 .WillOnce(SetArgumentPointee<2>(1))
441 .RetiresOnSaturation(); 442 .RetiresOnSaturation();
442 EXPECT_CALL(*gl_, 443 EXPECT_CALL(*gl_,
443 GetQueryObjectuivARB(kService1Id, GL_QUERY_RESULT_EXT, _)) 444 GetQueryObjectuivARB(kService1Id, GL_QUERY_RESULT_EXT, _))
444 .WillOnce(SetArgumentPointee<2>(kResult)) 445 .WillOnce(SetArgumentPointee<2>(kResult))
445 .RetiresOnSaturation(); 446 .RetiresOnSaturation();
446 EXPECT_FALSE(manager_->ProcessPendingQueries()); 447 EXPECT_FALSE(manager_->ProcessPendingQueries());
447 } 448 }
448 449
449 TEST_F(QueryManagerTest, ExitWithPendingQuery) { 450 TEST_F(QueryManagerTest, ExitWithPendingQuery) {
450 const GLuint kClient1Id = 1; 451 const GLuint kClient1Id = 1;
451 const GLuint kService1Id = 11; 452 const GLuint kService1Id = 11;
452 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_EXT; 453 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_EXT;
453 const uint32 kSubmitCount = 123; 454 const base::subtle::Atomic32 kSubmitCount = 123;
454 455
455 // Create Query. 456 // Create Query.
456 scoped_refptr<QueryManager::Query> query( 457 scoped_refptr<QueryManager::Query> query(
457 CreateQuery(kTarget, kClient1Id, 458 CreateQuery(kTarget, kClient1Id,
458 kSharedMemoryId, kSharedMemoryOffset, kService1Id)); 459 kSharedMemoryId, kSharedMemoryOffset, kService1Id));
459 ASSERT_TRUE(query.get() != NULL); 460 ASSERT_TRUE(query.get() != NULL);
460 461
461 // Queue it 462 // Queue it
462 QueueQuery(query.get(), kService1Id, kSubmitCount); 463 QueueQuery(query.get(), kService1Id, kSubmitCount);
463 } 464 }
464 465
465 // Test that when based on ARB_occlusion_query2 we use GL_ANY_SAMPLES_PASSED_ARB 466 // Test that when based on ARB_occlusion_query2 we use GL_ANY_SAMPLES_PASSED_ARB
466 // for GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT 467 // for GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT
467 TEST_F(QueryManagerTest, ARBOcclusionQuery2) { 468 TEST_F(QueryManagerTest, ARBOcclusionQuery2) {
468 const GLuint kClient1Id = 1; 469 const GLuint kClient1Id = 1;
469 const GLuint kService1Id = 11; 470 const GLuint kService1Id = 11;
470 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT; 471 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT;
471 const uint32 kSubmitCount = 123; 472 const base::subtle::Atomic32 kSubmitCount = 123;
472 473
473 TestHelper::SetupFeatureInfoInitExpectations( 474 TestHelper::SetupFeatureInfoInitExpectations(
474 gl_.get(), 475 gl_.get(),
475 "GL_ARB_occlusion_query2"); 476 "GL_ARB_occlusion_query2");
476 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); 477 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo());
477 feature_info->Initialize(); 478 feature_info->Initialize();
478 scoped_ptr<QueryManager> manager( 479 scoped_ptr<QueryManager> manager(
479 new QueryManager(decoder_.get(), feature_info.get())); 480 new QueryManager(decoder_.get(), feature_info.get()));
480 481
481 EXPECT_CALL(*gl_, GenQueriesARB(1, _)) 482 EXPECT_CALL(*gl_, GenQueriesARB(1, _))
(...skipping 13 matching lines...) Expand all
495 EXPECT_TRUE(manager->EndQuery(query, kSubmitCount)); 496 EXPECT_TRUE(manager->EndQuery(query, kSubmitCount));
496 manager->Destroy(false); 497 manager->Destroy(false);
497 } 498 }
498 499
499 // Test that when based on ARB_occlusion_query we use GL_SAMPLES_PASSED_ARB 500 // Test that when based on ARB_occlusion_query we use GL_SAMPLES_PASSED_ARB
500 // for GL_ANY_SAMPLES_PASSED_EXT 501 // for GL_ANY_SAMPLES_PASSED_EXT
501 TEST_F(QueryManagerTest, ARBOcclusionQuery) { 502 TEST_F(QueryManagerTest, ARBOcclusionQuery) {
502 const GLuint kClient1Id = 1; 503 const GLuint kClient1Id = 1;
503 const GLuint kService1Id = 11; 504 const GLuint kService1Id = 11;
504 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_EXT; 505 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_EXT;
505 const uint32 kSubmitCount = 123; 506 const base::subtle::Atomic32 kSubmitCount = 123;
506 507
507 TestHelper::SetupFeatureInfoInitExpectations( 508 TestHelper::SetupFeatureInfoInitExpectations(
508 gl_.get(), 509 gl_.get(),
509 "GL_ARB_occlusion_query"); 510 "GL_ARB_occlusion_query");
510 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); 511 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo());
511 feature_info->Initialize(); 512 feature_info->Initialize();
512 scoped_ptr<QueryManager> manager( 513 scoped_ptr<QueryManager> manager(
513 new QueryManager(decoder_.get(), feature_info.get())); 514 new QueryManager(decoder_.get(), feature_info.get()));
514 515
515 EXPECT_CALL(*gl_, GenQueriesARB(1, _)) 516 EXPECT_CALL(*gl_, GenQueriesARB(1, _))
(...skipping 10 matching lines...) Expand all
526 .Times(1) 527 .Times(1)
527 .RetiresOnSaturation(); 528 .RetiresOnSaturation();
528 EXPECT_TRUE(manager->BeginQuery(query)); 529 EXPECT_TRUE(manager->BeginQuery(query));
529 EXPECT_TRUE(manager->EndQuery(query, kSubmitCount)); 530 EXPECT_TRUE(manager->EndQuery(query, kSubmitCount));
530 manager->Destroy(false); 531 manager->Destroy(false);
531 } 532 }
532 533
533 TEST_F(QueryManagerTest, GetErrorQuery) { 534 TEST_F(QueryManagerTest, GetErrorQuery) {
534 const GLuint kClient1Id = 1; 535 const GLuint kClient1Id = 1;
535 const GLenum kTarget = GL_GET_ERROR_QUERY_CHROMIUM; 536 const GLenum kTarget = GL_GET_ERROR_QUERY_CHROMIUM;
536 const uint32 kSubmitCount = 123; 537 const base::subtle::Atomic32 kSubmitCount = 123;
537 538
538 TestHelper::SetupFeatureInfoInitExpectations(gl_.get(), ""); 539 TestHelper::SetupFeatureInfoInitExpectations(gl_.get(), "");
539 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); 540 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo());
540 feature_info->Initialize(); 541 feature_info->Initialize();
541 scoped_ptr<QueryManager> manager( 542 scoped_ptr<QueryManager> manager(
542 new QueryManager(decoder_.get(), feature_info.get())); 543 new QueryManager(decoder_.get(), feature_info.get()));
543 544
544 QueryManager::Query* query = manager->CreateQuery( 545 QueryManager::Query* query = manager->CreateQuery(
545 kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset); 546 kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset);
546 ASSERT_TRUE(query != NULL); 547 ASSERT_TRUE(query != NULL);
(...skipping 18 matching lines...) Expand all
565 566
566 EXPECT_EQ(static_cast<GLuint>(GL_INVALID_ENUM), sync->result); 567 EXPECT_EQ(static_cast<GLuint>(GL_INVALID_ENUM), sync->result);
567 568
568 manager->Destroy(false); 569 manager->Destroy(false);
569 } 570 }
570 571
571 } // namespace gles2 572 } // namespace gles2
572 } // namespace gpu 573 } // namespace gpu
573 574
574 575
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/query_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698