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

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

Issue 1222563003: Revert of Added support for Time Elapsed queries through the command buffer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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
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/gles2_cmd_decoder_unittest.h" 5 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/strings/string_number_conversions.h" 8 #include "base/strings/string_number_conversions.h"
9 #include "gpu/command_buffer/common/gles2_cmd_format.h" 9 #include "gpu/command_buffer/common/gles2_cmd_format.h"
10 #include "gpu/command_buffer/common/gles2_cmd_utils.h" 10 #include "gpu/command_buffer/common/gles2_cmd_utils.h"
(...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after
566 }; 566 };
567 567
568 const QueryType kQueryTypes[] = { 568 const QueryType kQueryTypes[] = {
569 {GL_COMMANDS_ISSUED_CHROMIUM, false}, 569 {GL_COMMANDS_ISSUED_CHROMIUM, false},
570 {GL_LATENCY_QUERY_CHROMIUM, false}, 570 {GL_LATENCY_QUERY_CHROMIUM, false},
571 {GL_ASYNC_PIXEL_UNPACK_COMPLETED_CHROMIUM, false}, 571 {GL_ASYNC_PIXEL_UNPACK_COMPLETED_CHROMIUM, false},
572 {GL_ASYNC_PIXEL_PACK_COMPLETED_CHROMIUM, false}, 572 {GL_ASYNC_PIXEL_PACK_COMPLETED_CHROMIUM, false},
573 {GL_GET_ERROR_QUERY_CHROMIUM, false}, 573 {GL_GET_ERROR_QUERY_CHROMIUM, false},
574 {GL_COMMANDS_COMPLETED_CHROMIUM, false}, 574 {GL_COMMANDS_COMPLETED_CHROMIUM, false},
575 {GL_ANY_SAMPLES_PASSED_EXT, true}, 575 {GL_ANY_SAMPLES_PASSED_EXT, true},
576 {GL_TIME_ELAPSED, true},
577 }; 576 };
578 577
579 static void CheckBeginEndQueryBadMemoryFails(GLES2DecoderTestBase* test, 578 static void CheckBeginEndQueryBadMemoryFails(GLES2DecoderTestBase* test,
580 GLuint client_id, 579 GLuint client_id,
581 GLuint service_id, 580 GLuint service_id,
582 const QueryType& query_type, 581 const QueryType& query_type,
583 int32 shm_id, 582 int32 shm_id,
584 uint32 shm_offset) { 583 uint32 shm_offset) {
585 // We need to reset the decoder on each iteration, because we lose the 584 // We need to reset the decoder on each iteration, because we lose the
586 // context every time. 585 // context every time.
587 GLES2DecoderTestBase::InitState init; 586 GLES2DecoderTestBase::InitState init;
588 init.extensions = "GL_EXT_occlusion_query_boolean" 587 init.extensions = "GL_EXT_occlusion_query_boolean GL_ARB_sync";
589 " GL_ARB_sync"
590 " GL_ARB_timer_query";
591 init.gl_version = "opengl es 2.0"; 588 init.gl_version = "opengl es 2.0";
592 init.has_alpha = true; 589 init.has_alpha = true;
593 init.request_alpha = true; 590 init.request_alpha = true;
594 init.bind_generates_resource = true; 591 init.bind_generates_resource = true;
595 test->InitDecoder(init); 592 test->InitDecoder(init);
596 ::testing::StrictMock< ::gfx::MockGLInterface>* gl = test->GetGLMock(); 593 ::testing::StrictMock< ::gfx::MockGLInterface>* gl = test->GetGLMock();
597 594
598 BeginQueryEXT begin_cmd; 595 BeginQueryEXT begin_cmd;
599 596
600 test->GenHelper<GenQueriesEXTImmediate>(client_id); 597 test->GenHelper<GenQueriesEXTImmediate>(client_id);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
637 634
638 EndQueryEXT end_cmd; 635 EndQueryEXT end_cmd;
639 end_cmd.Init(query_type.type, 1); 636 end_cmd.Init(query_type.type, 1);
640 error::Error error2 = test->ExecuteCmd(end_cmd); 637 error::Error error2 = test->ExecuteCmd(end_cmd);
641 638
642 if (query_type.is_gl) { 639 if (query_type.is_gl) {
643 EXPECT_CALL( 640 EXPECT_CALL(
644 *gl, GetQueryObjectuiv(service_id, GL_QUERY_RESULT_AVAILABLE_EXT, _)) 641 *gl, GetQueryObjectuiv(service_id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
645 .WillOnce(SetArgPointee<2>(1)) 642 .WillOnce(SetArgPointee<2>(1))
646 .RetiresOnSaturation(); 643 .RetiresOnSaturation();
647 if (query_type.type == GL_TIME_ELAPSED) { 644 EXPECT_CALL(*gl, GetQueryObjectuiv(service_id, GL_QUERY_RESULT_EXT, _))
648 EXPECT_CALL(*gl, GetQueryObjectui64v(service_id, GL_QUERY_RESULT_EXT, _)) 645 .WillOnce(SetArgPointee<2>(1))
649 .WillOnce(SetArgPointee<2>(1)) 646 .RetiresOnSaturation();
650 .RetiresOnSaturation();
651 } else {
652 EXPECT_CALL(*gl, GetQueryObjectuiv(service_id, GL_QUERY_RESULT_EXT, _))
653 .WillOnce(SetArgPointee<2>(1))
654 .RetiresOnSaturation();
655 }
656 EXPECT_CALL(*gl, DeleteQueries(1, _)).Times(1).RetiresOnSaturation();
657 } 647 }
658 if (query_type.type == GL_COMMANDS_COMPLETED_CHROMIUM) { 648 if (query_type.type == GL_COMMANDS_COMPLETED_CHROMIUM) {
659 #if DCHECK_IS_ON() 649 #if DCHECK_IS_ON()
660 EXPECT_CALL(*gl, IsSync(kGlSync)) 650 EXPECT_CALL(*gl, IsSync(kGlSync))
661 .WillOnce(Return(GL_TRUE)) 651 .WillOnce(Return(GL_TRUE))
662 .RetiresOnSaturation(); 652 .RetiresOnSaturation();
663 #endif 653 #endif
664 EXPECT_CALL(*gl, ClientWaitSync(kGlSync, _, _)) 654 EXPECT_CALL(*gl, ClientWaitSync(kGlSync, _, _))
665 .WillOnce(Return(GL_ALREADY_SIGNALED)) 655 .WillOnce(Return(GL_ALREADY_SIGNALED))
666 .RetiresOnSaturation(); 656 .RetiresOnSaturation();
657 }
658
659 QueryManager* query_manager = test->GetDecoder()->GetQueryManager();
660 ASSERT_TRUE(query_manager != NULL);
661 bool process_success = query_manager->ProcessPendingQueries(false);
662
663 EXPECT_TRUE(error1 != error::kNoError || error2 != error::kNoError ||
664 !process_success);
665
666 if (query_type.is_gl) {
667 EXPECT_CALL(*gl, DeleteQueries(1, _)).Times(1).RetiresOnSaturation();
668 }
669 if (query_type.type == GL_COMMANDS_COMPLETED_CHROMIUM) {
667 #if DCHECK_IS_ON() 670 #if DCHECK_IS_ON()
668 EXPECT_CALL(*gl, IsSync(kGlSync)) 671 EXPECT_CALL(*gl, IsSync(kGlSync))
669 .WillOnce(Return(GL_TRUE)) 672 .WillOnce(Return(GL_TRUE))
670 .RetiresOnSaturation(); 673 .RetiresOnSaturation();
671 #endif 674 #endif
672 EXPECT_CALL(*gl, DeleteSync(kGlSync)).Times(1).RetiresOnSaturation(); 675 EXPECT_CALL(*gl, DeleteSync(kGlSync)).Times(1).RetiresOnSaturation();
673 } 676 }
674
675 QueryManager* query_manager = test->GetDecoder()->GetQueryManager();
676 ASSERT_TRUE(query_manager != NULL);
677 bool process_success = query_manager->ProcessPendingQueries(false);
678
679 EXPECT_TRUE(error1 != error::kNoError || error2 != error::kNoError ||
680 !process_success);
681 test->ResetDecoder(); 677 test->ResetDecoder();
682 } 678 }
683 679
684 TEST_P(GLES2DecoderManualInitTest, BeginEndQueryEXTBadMemoryIdFails) { 680 TEST_P(GLES2DecoderManualInitTest, BeginEndQueryEXTBadMemoryIdFails) {
685 for (size_t i = 0; i < arraysize(kQueryTypes); ++i) { 681 for (size_t i = 0; i < arraysize(kQueryTypes); ++i) {
686 CheckBeginEndQueryBadMemoryFails(this, 682 CheckBeginEndQueryBadMemoryFails(this,
687 kNewClientId, 683 kNewClientId,
688 kNewServiceId, 684 kNewServiceId,
689 kQueryTypes[i], 685 kQueryTypes[i],
690 kInvalidSharedMemoryId, 686 kInvalidSharedMemoryId,
(...skipping 648 matching lines...) Expand 10 before | Expand all | Expand 10 after
1339 INSTANTIATE_TEST_CASE_P(Service, 1335 INSTANTIATE_TEST_CASE_P(Service,
1340 GLES2DecoderRGBBackbufferTest, 1336 GLES2DecoderRGBBackbufferTest,
1341 ::testing::Bool()); 1337 ::testing::Bool());
1342 1338
1343 INSTANTIATE_TEST_CASE_P(Service, GLES2DecoderDoCommandsTest, ::testing::Bool()); 1339 INSTANTIATE_TEST_CASE_P(Service, GLES2DecoderDoCommandsTest, ::testing::Bool());
1344 1340
1345 INSTANTIATE_TEST_CASE_P(Service, GLES3DecoderTest, ::testing::Bool()); 1341 INSTANTIATE_TEST_CASE_P(Service, GLES3DecoderTest, ::testing::Bool());
1346 1342
1347 } // namespace gles2 1343 } // namespace gles2
1348 } // namespace gpu 1344 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/gles2_cmd_decoder.cc ('k') | gpu/command_buffer/service/query_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698