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