Chromium Code Reviews| 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 <stddef.h> | 5 #include <stddef.h> |
| 6 #include <stdint.h> | 6 #include <stdint.h> |
| 7 | 7 |
|
no sievers
2016/04/05 19:02:41
#include <memory>
Mostyn Bramley-Moore
2016/04/05 21:35:31
Done.
| |
| 8 #include "gpu/command_buffer/common/gles2_cmd_format.h" | 8 #include "gpu/command_buffer/common/gles2_cmd_format.h" |
| 9 #include "gpu/command_buffer/service/cmd_buffer_engine.h" | 9 #include "gpu/command_buffer/service/cmd_buffer_engine.h" |
| 10 #include "gpu/command_buffer/service/error_state_mock.h" | 10 #include "gpu/command_buffer/service/error_state_mock.h" |
| 11 #include "gpu/command_buffer/service/feature_info.h" | 11 #include "gpu/command_buffer/service/feature_info.h" |
| 12 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" | 12 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" |
| 13 #include "gpu/command_buffer/service/gles2_cmd_decoder_mock.h" | 13 #include "gpu/command_buffer/service/gles2_cmd_decoder_mock.h" |
| 14 #include "gpu/command_buffer/service/gpu_service_test.h" | 14 #include "gpu/command_buffer/service/gpu_service_test.h" |
| 15 #include "gpu/command_buffer/service/query_manager.h" | 15 #include "gpu/command_buffer/service/query_manager.h" |
| 16 #include "gpu/command_buffer/service/test_helper.h" | 16 #include "gpu/command_buffer/service/test_helper.h" |
| 17 #include "testing/gtest/include/gtest/gtest.h" | 17 #include "testing/gtest/include/gtest/gtest.h" |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 90 EXPECT_CALL(*gl_, BeginQuery(query->target(), service_id)) | 90 EXPECT_CALL(*gl_, BeginQuery(query->target(), service_id)) |
| 91 .Times(1) | 91 .Times(1) |
| 92 .RetiresOnSaturation(); | 92 .RetiresOnSaturation(); |
| 93 EXPECT_CALL(*gl_, EndQuery(query->target())) | 93 EXPECT_CALL(*gl_, EndQuery(query->target())) |
| 94 .Times(1) | 94 .Times(1) |
| 95 .RetiresOnSaturation(); | 95 .RetiresOnSaturation(); |
| 96 EXPECT_TRUE(manager_->BeginQuery(query)); | 96 EXPECT_TRUE(manager_->BeginQuery(query)); |
| 97 EXPECT_TRUE(manager_->EndQuery(query, submit_count)); | 97 EXPECT_TRUE(manager_->EndQuery(query, submit_count)); |
| 98 } | 98 } |
| 99 | 99 |
| 100 scoped_ptr<MockGLES2Decoder> decoder_; | 100 std::unique_ptr<MockGLES2Decoder> decoder_; |
| 101 scoped_ptr<QueryManager> manager_; | 101 std::unique_ptr<QueryManager> manager_; |
| 102 | 102 |
| 103 private: | 103 private: |
| 104 class MockCommandBufferEngine : public CommandBufferEngine { | 104 class MockCommandBufferEngine : public CommandBufferEngine { |
| 105 public: | 105 public: |
| 106 MockCommandBufferEngine() { | 106 MockCommandBufferEngine() { |
| 107 scoped_ptr<base::SharedMemory> shared_memory(new base::SharedMemory()); | 107 std::unique_ptr<base::SharedMemory> shared_memory( |
| 108 new base::SharedMemory()); | |
| 108 shared_memory->CreateAndMapAnonymous(kSharedBufferSize); | 109 shared_memory->CreateAndMapAnonymous(kSharedBufferSize); |
| 109 valid_buffer_ = MakeBufferFromSharedMemory(std::move(shared_memory), | 110 valid_buffer_ = MakeBufferFromSharedMemory(std::move(shared_memory), |
| 110 kSharedBufferSize); | 111 kSharedBufferSize); |
| 111 | 112 |
| 112 scoped_ptr<base::SharedMemory> shared_memory2(new base::SharedMemory()); | 113 std::unique_ptr<base::SharedMemory> shared_memory2( |
| 114 new base::SharedMemory()); | |
| 113 shared_memory2->CreateAndMapAnonymous(kSharedBufferSize); | 115 shared_memory2->CreateAndMapAnonymous(kSharedBufferSize); |
| 114 valid_buffer2_ = MakeBufferFromSharedMemory(std::move(shared_memory2), | 116 valid_buffer2_ = MakeBufferFromSharedMemory(std::move(shared_memory2), |
| 115 kSharedBufferSize); | 117 kSharedBufferSize); |
| 116 | 118 |
| 117 ClearSharedMemory(); | 119 ClearSharedMemory(); |
| 118 } | 120 } |
| 119 | 121 |
| 120 ~MockCommandBufferEngine() override {} | 122 ~MockCommandBufferEngine() override {} |
| 121 | 123 |
| 122 scoped_refptr<gpu::Buffer> GetSharedMemoryBuffer(int32_t shm_id) override { | 124 scoped_refptr<gpu::Buffer> GetSharedMemoryBuffer(int32_t shm_id) override { |
| (...skipping 27 matching lines...) Expand all Loading... | |
| 150 DCHECK(false); | 152 DCHECK(false); |
| 151 return 0; | 153 return 0; |
| 152 } | 154 } |
| 153 | 155 |
| 154 private: | 156 private: |
| 155 scoped_refptr<gpu::Buffer> valid_buffer_; | 157 scoped_refptr<gpu::Buffer> valid_buffer_; |
| 156 scoped_refptr<gpu::Buffer> valid_buffer2_; | 158 scoped_refptr<gpu::Buffer> valid_buffer2_; |
| 157 scoped_refptr<gpu::Buffer> invalid_buffer_; | 159 scoped_refptr<gpu::Buffer> invalid_buffer_; |
| 158 }; | 160 }; |
| 159 | 161 |
| 160 scoped_ptr<MockCommandBufferEngine> engine_; | 162 std::unique_ptr<MockCommandBufferEngine> engine_; |
| 161 }; | 163 }; |
| 162 | 164 |
| 163 class QueryManagerManualSetupTest : public QueryManagerTest { | 165 class QueryManagerManualSetupTest : public QueryManagerTest { |
| 164 protected: | 166 protected: |
| 165 void SetUp() override { | 167 void SetUp() override { |
| 166 // Let test setup manually. | 168 // Let test setup manually. |
| 167 } | 169 } |
| 168 }; | 170 }; |
| 169 | 171 |
| 170 // GCC requires these declarations, but MSVC requires they not be present | 172 // GCC requires these declarations, but MSVC requires they not be present |
| (...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 503 const GLuint kClient1Id = 1; | 505 const GLuint kClient1Id = 1; |
| 504 const GLuint kService1Id = 11; | 506 const GLuint kService1Id = 11; |
| 505 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT; | 507 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT; |
| 506 const base::subtle::Atomic32 kSubmitCount = 123; | 508 const base::subtle::Atomic32 kSubmitCount = 123; |
| 507 | 509 |
| 508 TestHelper::SetupFeatureInfoInitExpectations( | 510 TestHelper::SetupFeatureInfoInitExpectations( |
| 509 gl_.get(), | 511 gl_.get(), |
| 510 "GL_ARB_occlusion_query2"); | 512 "GL_ARB_occlusion_query2"); |
| 511 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); | 513 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); |
| 512 feature_info->InitializeForTesting(); | 514 feature_info->InitializeForTesting(); |
| 513 scoped_ptr<QueryManager> manager( | 515 std::unique_ptr<QueryManager> manager( |
| 514 new QueryManager(decoder_.get(), feature_info.get())); | 516 new QueryManager(decoder_.get(), feature_info.get())); |
| 515 | 517 |
| 516 EXPECT_CALL(*gl_, GenQueries(1, _)) | 518 EXPECT_CALL(*gl_, GenQueries(1, _)) |
| 517 .WillOnce(SetArgumentPointee<1>(kService1Id)) | 519 .WillOnce(SetArgumentPointee<1>(kService1Id)) |
| 518 .RetiresOnSaturation(); | 520 .RetiresOnSaturation(); |
| 519 QueryManager::Query* query = manager->CreateQuery( | 521 QueryManager::Query* query = manager->CreateQuery( |
| 520 kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset); | 522 kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset); |
| 521 ASSERT_TRUE(query != NULL); | 523 ASSERT_TRUE(query != NULL); |
| 522 | 524 |
| 523 EXPECT_CALL(*gl_, BeginQuery(GL_ANY_SAMPLES_PASSED_EXT, kService1Id)) | 525 EXPECT_CALL(*gl_, BeginQuery(GL_ANY_SAMPLES_PASSED_EXT, kService1Id)) |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 537 const GLuint kClient1Id = 1; | 539 const GLuint kClient1Id = 1; |
| 538 const GLuint kService1Id = 11; | 540 const GLuint kService1Id = 11; |
| 539 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_EXT; | 541 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_EXT; |
| 540 const base::subtle::Atomic32 kSubmitCount = 123; | 542 const base::subtle::Atomic32 kSubmitCount = 123; |
| 541 | 543 |
| 542 TestHelper::SetupFeatureInfoInitExpectations( | 544 TestHelper::SetupFeatureInfoInitExpectations( |
| 543 gl_.get(), | 545 gl_.get(), |
| 544 "GL_ARB_occlusion_query"); | 546 "GL_ARB_occlusion_query"); |
| 545 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); | 547 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); |
| 546 feature_info->InitializeForTesting(); | 548 feature_info->InitializeForTesting(); |
| 547 scoped_ptr<QueryManager> manager( | 549 std::unique_ptr<QueryManager> manager( |
| 548 new QueryManager(decoder_.get(), feature_info.get())); | 550 new QueryManager(decoder_.get(), feature_info.get())); |
| 549 | 551 |
| 550 EXPECT_CALL(*gl_, GenQueries(1, _)) | 552 EXPECT_CALL(*gl_, GenQueries(1, _)) |
| 551 .WillOnce(SetArgumentPointee<1>(kService1Id)) | 553 .WillOnce(SetArgumentPointee<1>(kService1Id)) |
| 552 .RetiresOnSaturation(); | 554 .RetiresOnSaturation(); |
| 553 QueryManager::Query* query = manager->CreateQuery( | 555 QueryManager::Query* query = manager->CreateQuery( |
| 554 kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset); | 556 kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset); |
| 555 ASSERT_TRUE(query != NULL); | 557 ASSERT_TRUE(query != NULL); |
| 556 | 558 |
| 557 EXPECT_CALL(*gl_, BeginQuery(GL_SAMPLES_PASSED_ARB, kService1Id)) | 559 EXPECT_CALL(*gl_, BeginQuery(GL_SAMPLES_PASSED_ARB, kService1Id)) |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 570 const GLuint kService1Id = 11; | 572 const GLuint kService1Id = 11; |
| 571 const GLuint kService2Id = 12; | 573 const GLuint kService2Id = 12; |
| 572 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_EXT; | 574 const GLenum kTarget = GL_ANY_SAMPLES_PASSED_EXT; |
| 573 const base::subtle::Atomic32 kSubmitCount = 123; | 575 const base::subtle::Atomic32 kSubmitCount = 123; |
| 574 | 576 |
| 575 TestHelper::SetupFeatureInfoInitExpectations( | 577 TestHelper::SetupFeatureInfoInitExpectations( |
| 576 gl_.get(), | 578 gl_.get(), |
| 577 "GL_ARB_occlusion_query"); | 579 "GL_ARB_occlusion_query"); |
| 578 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); | 580 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); |
| 579 feature_info->InitializeForTesting(); | 581 feature_info->InitializeForTesting(); |
| 580 scoped_ptr<QueryManager> manager( | 582 std::unique_ptr<QueryManager> manager( |
| 581 new QueryManager(decoder_.get(), feature_info.get())); | 583 new QueryManager(decoder_.get(), feature_info.get())); |
| 582 | 584 |
| 583 EXPECT_CALL(*gl_, GenQueries(1, _)) | 585 EXPECT_CALL(*gl_, GenQueries(1, _)) |
| 584 .WillOnce(SetArgumentPointee<1>(kService1Id)) | 586 .WillOnce(SetArgumentPointee<1>(kService1Id)) |
| 585 .RetiresOnSaturation(); | 587 .RetiresOnSaturation(); |
| 586 QueryManager::Query* query = manager->CreateQuery( | 588 QueryManager::Query* query = manager->CreateQuery( |
| 587 kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset); | 589 kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset); |
| 588 ASSERT_TRUE(query != NULL); | 590 ASSERT_TRUE(query != NULL); |
| 589 | 591 |
| 590 EXPECT_CALL(*gl_, BeginQuery(GL_SAMPLES_PASSED_ARB, kService1Id)) | 592 EXPECT_CALL(*gl_, BeginQuery(GL_SAMPLES_PASSED_ARB, kService1Id)) |
| (...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 913 } | 915 } |
| 914 | 916 |
| 915 TEST_F(QueryManagerTest, GetErrorQuery) { | 917 TEST_F(QueryManagerTest, GetErrorQuery) { |
| 916 const GLuint kClient1Id = 1; | 918 const GLuint kClient1Id = 1; |
| 917 const GLenum kTarget = GL_GET_ERROR_QUERY_CHROMIUM; | 919 const GLenum kTarget = GL_GET_ERROR_QUERY_CHROMIUM; |
| 918 const base::subtle::Atomic32 kSubmitCount = 123; | 920 const base::subtle::Atomic32 kSubmitCount = 123; |
| 919 | 921 |
| 920 TestHelper::SetupFeatureInfoInitExpectations(gl_.get(), ""); | 922 TestHelper::SetupFeatureInfoInitExpectations(gl_.get(), ""); |
| 921 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); | 923 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); |
| 922 feature_info->InitializeForTesting(); | 924 feature_info->InitializeForTesting(); |
| 923 scoped_ptr<QueryManager> manager( | 925 std::unique_ptr<QueryManager> manager( |
| 924 new QueryManager(decoder_.get(), feature_info.get())); | 926 new QueryManager(decoder_.get(), feature_info.get())); |
| 925 | 927 |
| 926 QueryManager::Query* query = manager->CreateQuery( | 928 QueryManager::Query* query = manager->CreateQuery( |
| 927 kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset); | 929 kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset); |
| 928 ASSERT_TRUE(query != NULL); | 930 ASSERT_TRUE(query != NULL); |
| 929 | 931 |
| 930 // Setup shared memory like client would. | 932 // Setup shared memory like client would. |
| 931 QuerySync* sync = decoder_->GetSharedMemoryAs<QuerySync*>( | 933 QuerySync* sync = decoder_->GetSharedMemoryAs<QuerySync*>( |
| 932 kSharedMemoryId, kSharedMemoryOffset, sizeof(*sync)); | 934 kSharedMemoryId, kSharedMemoryOffset, sizeof(*sync)); |
| 933 ASSERT_TRUE(sync != NULL); | 935 ASSERT_TRUE(sync != NULL); |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 947 | 949 |
| 948 EXPECT_EQ(static_cast<GLuint>(GL_INVALID_ENUM), sync->result); | 950 EXPECT_EQ(static_cast<GLuint>(GL_INVALID_ENUM), sync->result); |
| 949 | 951 |
| 950 manager->Destroy(false); | 952 manager->Destroy(false); |
| 951 } | 953 } |
| 952 | 954 |
| 953 } // namespace gles2 | 955 } // namespace gles2 |
| 954 } // namespace gpu | 956 } // namespace gpu |
| 955 | 957 |
| 956 | 958 |
| OLD | NEW |