| 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 #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/feature_info.h" | 9 #include "gpu/command_buffer/service/feature_info.h" |
| 10 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" | 10 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 static const uint32 kInvalidSharedMemoryOffset = kSharedBufferSize + 1; | 31 static const uint32 kInvalidSharedMemoryOffset = kSharedBufferSize + 1; |
| 32 static const uint32 kInitialResult = 0xBDBDBDBDu; | 32 static const uint32 kInitialResult = 0xBDBDBDBDu; |
| 33 static const uint8 kInitialMemoryValue = 0xBDu; | 33 static const uint8 kInitialMemoryValue = 0xBDu; |
| 34 | 34 |
| 35 QueryManagerTest() { | 35 QueryManagerTest() { |
| 36 } | 36 } |
| 37 ~QueryManagerTest() override {} | 37 ~QueryManagerTest() override {} |
| 38 | 38 |
| 39 protected: | 39 protected: |
| 40 void SetUp() override { | 40 void SetUp() override { |
| 41 GpuServiceTest::SetUpWithGLVersion("2.1", "GL_ARB_occlusion_query"); | 41 GpuServiceTest::SetUpWithGLVersion("2.1", |
| 42 "GL_ARB_occlusion_query, " |
| 43 "GL_ARB_timer_query"); |
| 42 engine_.reset(new MockCommandBufferEngine()); | 44 engine_.reset(new MockCommandBufferEngine()); |
| 43 decoder_.reset(new MockGLES2Decoder()); | 45 decoder_.reset(new MockGLES2Decoder()); |
| 44 decoder_->set_engine(engine_.get()); | 46 decoder_->set_engine(engine_.get()); |
| 45 TestHelper::SetupFeatureInfoInitExpectations( | 47 TestHelper::SetupFeatureInfoInitExpectations( |
| 46 gl_.get(), | 48 gl_.get(), |
| 47 "GL_EXT_occlusion_query_boolean"); | 49 "GL_EXT_occlusion_query_boolean, GL_ARB_timer_query"); |
| 50 EXPECT_CALL(*decoder_.get(), GetGLContext()) |
| 51 .WillRepeatedly(Return(GetGLContext())); |
| 48 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); | 52 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); |
| 49 feature_info->Initialize(); | 53 feature_info->Initialize(); |
| 50 manager_.reset(new QueryManager(decoder_.get(), feature_info.get())); | 54 manager_.reset(new QueryManager(decoder_.get(), feature_info.get())); |
| 51 } | 55 } |
| 52 | 56 |
| 53 void TearDown() override { | 57 void TearDown() override { |
| 54 decoder_.reset(); | 58 decoder_.reset(); |
| 55 manager_->Destroy(false); | 59 manager_->Destroy(false); |
| 56 manager_.reset(); | 60 manager_.reset(); |
| 57 engine_.reset(); | 61 engine_.reset(); |
| (...skipping 461 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 519 .Times(1) | 523 .Times(1) |
| 520 .RetiresOnSaturation(); | 524 .RetiresOnSaturation(); |
| 521 EXPECT_CALL(*gl_, EndQuery(GL_SAMPLES_PASSED_ARB)) | 525 EXPECT_CALL(*gl_, EndQuery(GL_SAMPLES_PASSED_ARB)) |
| 522 .Times(1) | 526 .Times(1) |
| 523 .RetiresOnSaturation(); | 527 .RetiresOnSaturation(); |
| 524 EXPECT_TRUE(manager->BeginQuery(query)); | 528 EXPECT_TRUE(manager->BeginQuery(query)); |
| 525 EXPECT_TRUE(manager->EndQuery(query, kSubmitCount)); | 529 EXPECT_TRUE(manager->EndQuery(query, kSubmitCount)); |
| 526 manager->Destroy(false); | 530 manager->Destroy(false); |
| 527 } | 531 } |
| 528 | 532 |
| 533 TEST_F(QueryManagerTest, TimeElapsedQuery) { |
| 534 const GLuint kClient1Id = 1; |
| 535 const GLuint kService1Id = 11; |
| 536 const GLenum kTarget = GL_TIME_ELAPSED_EXT; |
| 537 const base::subtle::Atomic32 kSubmitCount = 123; |
| 538 |
| 539 EXPECT_CALL(*gl_, GenQueries(1, _)) |
| 540 .WillOnce(SetArgumentPointee<1>(kService1Id)) |
| 541 .RetiresOnSaturation(); |
| 542 QueryManager::Query* query = manager_->CreateQuery( |
| 543 kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset); |
| 544 ASSERT_TRUE(query != NULL); |
| 545 |
| 546 EXPECT_CALL(*gl_, BeginQuery(GL_TIME_ELAPSED_EXT, kService1Id)) |
| 547 .Times(1) |
| 548 .RetiresOnSaturation(); |
| 549 EXPECT_CALL(*gl_, EndQuery(GL_TIME_ELAPSED_EXT)) |
| 550 .Times(1) |
| 551 .RetiresOnSaturation(); |
| 552 EXPECT_TRUE(manager_->BeginQuery(query)); |
| 553 EXPECT_TRUE(manager_->EndQuery(query, kSubmitCount)); |
| 554 manager_->Destroy(false); |
| 555 } |
| 556 |
| 557 TEST_F(QueryManagerTest, TimeStampQuery) { |
| 558 const GLuint kClient1Id = 1; |
| 559 const GLuint kService1Id = 11; |
| 560 const GLenum kTarget = GL_TIMESTAMP_EXT; |
| 561 const base::subtle::Atomic32 kSubmitCount = 123; |
| 562 |
| 563 EXPECT_CALL(*gl_, GenQueries(1, _)) |
| 564 .WillOnce(SetArgumentPointee<1>(kService1Id)) |
| 565 .RetiresOnSaturation(); |
| 566 QueryManager::Query* query = manager_->CreateQuery( |
| 567 kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset); |
| 568 ASSERT_TRUE(query != NULL); |
| 569 |
| 570 EXPECT_CALL(*gl_, QueryCounter(kService1Id, GL_TIMESTAMP_EXT)) |
| 571 .Times(1) |
| 572 .RetiresOnSaturation(); |
| 573 EXPECT_TRUE(manager_->QueryCounter(query, kSubmitCount)); |
| 574 manager_->Destroy(false); |
| 575 } |
| 576 |
| 529 TEST_F(QueryManagerTest, GetErrorQuery) { | 577 TEST_F(QueryManagerTest, GetErrorQuery) { |
| 530 const GLuint kClient1Id = 1; | 578 const GLuint kClient1Id = 1; |
| 531 const GLenum kTarget = GL_GET_ERROR_QUERY_CHROMIUM; | 579 const GLenum kTarget = GL_GET_ERROR_QUERY_CHROMIUM; |
| 532 const base::subtle::Atomic32 kSubmitCount = 123; | 580 const base::subtle::Atomic32 kSubmitCount = 123; |
| 533 | 581 |
| 534 TestHelper::SetupFeatureInfoInitExpectations(gl_.get(), ""); | 582 TestHelper::SetupFeatureInfoInitExpectations(gl_.get(), ""); |
| 535 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); | 583 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); |
| 536 feature_info->Initialize(); | 584 feature_info->Initialize(); |
| 537 scoped_ptr<QueryManager> manager( | 585 scoped_ptr<QueryManager> manager( |
| 538 new QueryManager(decoder_.get(), feature_info.get())); | 586 new QueryManager(decoder_.get(), feature_info.get())); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 561 | 609 |
| 562 EXPECT_EQ(static_cast<GLuint>(GL_INVALID_ENUM), sync->result); | 610 EXPECT_EQ(static_cast<GLuint>(GL_INVALID_ENUM), sync->result); |
| 563 | 611 |
| 564 manager->Destroy(false); | 612 manager->Destroy(false); |
| 565 } | 613 } |
| 566 | 614 |
| 567 } // namespace gles2 | 615 } // namespace gles2 |
| 568 } // namespace gpu | 616 } // namespace gpu |
| 569 | 617 |
| 570 | 618 |
| OLD | NEW |