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 1233233002: Added support for TimeStamp queries using QueryCounterEXT. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed GetQueryivEXT test with QueryCounter Created 5 years, 5 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
« no previous file with comments | « gpu/command_buffer/service/query_manager.cc ('k') | mojo/gpu/mojo_gles2_impl_autogen.h » ('j') | 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/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
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
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
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
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/query_manager.cc ('k') | mojo/gpu/mojo_gles2_impl_autogen.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698