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

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

Issue 9309047: Swizzle Uniform Locations (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove unsigned math Created 8 years, 10 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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.h" 5 #include "gpu/command_buffer/service/gles2_cmd_decoder.h"
6 6
7 #include "base/atomicops.h" 7 #include "base/atomicops.h"
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/common/gles2_cmd_utils.h" 9 #include "gpu/command_buffer/common/gles2_cmd_utils.h"
10 #include "gpu/command_buffer/common/gl_mock.h" 10 #include "gpu/command_buffer/common/gl_mock.h"
(...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after
533 cmd.Init(kIndexToTest, GL_VERTEX_ATTRIB_ARRAY_POINTER, 533 cmd.Init(kIndexToTest, GL_VERTEX_ATTRIB_ARRAY_POINTER,
534 shared_memory_id_, kInvalidSharedMemoryOffset); 534 shared_memory_id_, kInvalidSharedMemoryOffset);
535 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 535 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
536 } 536 }
537 537
538 TEST_F(GLES2DecoderWithShaderTest, GetUniformivSucceeds) { 538 TEST_F(GLES2DecoderWithShaderTest, GetUniformivSucceeds) {
539 GetUniformiv::Result* result = 539 GetUniformiv::Result* result =
540 static_cast<GetUniformiv::Result*>(shared_memory_address_); 540 static_cast<GetUniformiv::Result*>(shared_memory_address_);
541 result->size = 0; 541 result->size = 0;
542 GetUniformiv cmd; 542 GetUniformiv cmd;
543 cmd.Init(client_program_id_, kUniform2Location, 543 cmd.Init(client_program_id_,
544 program_manager()->SwizzleLocation(kUniform2Location),
544 kSharedMemoryId, kSharedMemoryOffset); 545 kSharedMemoryId, kSharedMemoryOffset);
545 EXPECT_CALL(*gl_, GetUniformiv(kServiceProgramId, kUniform2Location, _)) 546 EXPECT_CALL(*gl_, GetUniformiv(kServiceProgramId, kUniform2Location, _))
546 .Times(1); 547 .Times(1);
547 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 548 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
548 EXPECT_EQ(GLES2Util::GetGLDataTypeSizeForUniforms(kUniform2Type), 549 EXPECT_EQ(GLES2Util::GetGLDataTypeSizeForUniforms(kUniform2Type),
549 result->size); 550 result->size);
550 } 551 }
551 552
552 TEST_F(GLES2DecoderWithShaderTest, GetUniformivArrayElementSucceeds) { 553 TEST_F(GLES2DecoderWithShaderTest, GetUniformivArrayElementSucceeds) {
553 GetUniformiv::Result* result = 554 GetUniformiv::Result* result =
554 static_cast<GetUniformiv::Result*>(shared_memory_address_); 555 static_cast<GetUniformiv::Result*>(shared_memory_address_);
555 result->size = 0; 556 result->size = 0;
556 GetUniformiv cmd; 557 GetUniformiv cmd;
557 cmd.Init(client_program_id_, kUniform2ElementLocation, 558 cmd.Init(client_program_id_,
559 program_manager()->SwizzleLocation(kUniform2ElementLocation),
558 kSharedMemoryId, kSharedMemoryOffset); 560 kSharedMemoryId, kSharedMemoryOffset);
559 EXPECT_CALL(*gl_, 561 EXPECT_CALL(*gl_,
560 GetUniformiv(kServiceProgramId, kUniform2ElementLocation, _)) 562 GetUniformiv(kServiceProgramId, kUniform2ElementLocation, _))
561 .Times(1); 563 .Times(1);
562 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 564 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
563 EXPECT_EQ(GLES2Util::GetGLDataTypeSizeForUniforms(kUniform2Type), 565 EXPECT_EQ(GLES2Util::GetGLDataTypeSizeForUniforms(kUniform2Type),
564 result->size); 566 result->size);
565 } 567 }
566 568
567 TEST_F(GLES2DecoderWithShaderTest, GetUniformivBadProgramFails) { 569 TEST_F(GLES2DecoderWithShaderTest, GetUniformivBadProgramFails) {
568 GetUniformiv::Result* result = 570 GetUniformiv::Result* result =
569 static_cast<GetUniformiv::Result*>(shared_memory_address_); 571 static_cast<GetUniformiv::Result*>(shared_memory_address_);
570 result->size = 0; 572 result->size = 0;
571 GetUniformiv cmd; 573 GetUniformiv cmd;
572 // non-existant program 574 // non-existant program
573 cmd.Init(kInvalidClientId, kUniform2Location, 575 cmd.Init(kInvalidClientId,
576 program_manager()->SwizzleLocation(kUniform2Location),
574 kSharedMemoryId, kSharedMemoryOffset); 577 kSharedMemoryId, kSharedMemoryOffset);
575 EXPECT_CALL(*gl_, GetUniformiv(_, _, _)) 578 EXPECT_CALL(*gl_, GetUniformiv(_, _, _))
576 .Times(0); 579 .Times(0);
577 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 580 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
578 EXPECT_EQ(0U, result->size); 581 EXPECT_EQ(0U, result->size);
579 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 582 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
580 // Valid id that is not a program. The GL spec requires a different error for 583 // Valid id that is not a program. The GL spec requires a different error for
581 // this case. 584 // this case.
582 #if GLES2_TEST_SHADER_VS_PROGRAM_IDS 585 #if GLES2_TEST_SHADER_VS_PROGRAM_IDS
583 result->size = kInitialResult; 586 result->size = kInitialResult;
584 cmd.Init(client_shader_id_, kUniform2Location, 587 cmd.Init(client_shader_id_,
588 program_manager()->SwizzleLocation(kUniform2Location),
585 kSharedMemoryId, kSharedMemoryOffset); 589 kSharedMemoryId, kSharedMemoryOffset);
586 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 590 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
587 EXPECT_EQ(0U, result->size); 591 EXPECT_EQ(0U, result->size);
588 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); 592 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
589 #endif // GLES2_TEST_SHADER_VS_PROGRAM_IDS 593 #endif // GLES2_TEST_SHADER_VS_PROGRAM_IDS
590 // Unlinked program 594 // Unlinked program
591 EXPECT_CALL(*gl_, CreateProgram()) 595 EXPECT_CALL(*gl_, CreateProgram())
592 .Times(1) 596 .Times(1)
593 .WillOnce(Return(kNewServiceId)) 597 .WillOnce(Return(kNewServiceId))
594 .RetiresOnSaturation(); 598 .RetiresOnSaturation();
595 CreateProgram cmd2; 599 CreateProgram cmd2;
596 cmd2.Init(kNewClientId); 600 cmd2.Init(kNewClientId);
597 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); 601 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2));
598 result->size = kInitialResult; 602 result->size = kInitialResult;
599 cmd.Init(kNewClientId, kUniform2Location, 603 cmd.Init(kNewClientId,
604 program_manager()->SwizzleLocation(kUniform2Location),
600 kSharedMemoryId, kSharedMemoryOffset); 605 kSharedMemoryId, kSharedMemoryOffset);
601 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 606 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
602 EXPECT_EQ(0U, result->size); 607 EXPECT_EQ(0U, result->size);
603 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); 608 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
604 } 609 }
605 610
606 TEST_F(GLES2DecoderWithShaderTest, GetUniformivBadLocationFails) { 611 TEST_F(GLES2DecoderWithShaderTest, GetUniformivBadLocationFails) {
607 GetUniformiv::Result* result = 612 GetUniformiv::Result* result =
608 static_cast<GetUniformiv::Result*>(shared_memory_address_); 613 static_cast<GetUniformiv::Result*>(shared_memory_address_);
609 result->size = 0; 614 result->size = 0;
610 GetUniformiv cmd; 615 GetUniformiv cmd;
611 // invalid location 616 // invalid location
612 cmd.Init(client_program_id_, kInvalidUniformLocation, 617 cmd.Init(client_program_id_, kInvalidUniformLocation,
613 kSharedMemoryId, kSharedMemoryOffset); 618 kSharedMemoryId, kSharedMemoryOffset);
614 EXPECT_CALL(*gl_, GetUniformiv(_, _, _)) 619 EXPECT_CALL(*gl_, GetUniformiv(_, _, _))
615 .Times(0); 620 .Times(0);
616 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 621 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
617 EXPECT_EQ(0U, result->size); 622 EXPECT_EQ(0U, result->size);
618 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); 623 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
619 } 624 }
620 625
621 TEST_F(GLES2DecoderWithShaderTest, GetUniformivBadSharedMemoryFails) { 626 TEST_F(GLES2DecoderWithShaderTest, GetUniformivBadSharedMemoryFails) {
622 GetUniformiv cmd; 627 GetUniformiv cmd;
623 cmd.Init(client_program_id_, kUniform2Location, 628 cmd.Init(client_program_id_,
629 program_manager()->SwizzleLocation(kUniform2Location),
624 kInvalidSharedMemoryId, kSharedMemoryOffset); 630 kInvalidSharedMemoryId, kSharedMemoryOffset);
625 EXPECT_CALL(*gl_, GetUniformiv(_, _, _)) 631 EXPECT_CALL(*gl_, GetUniformiv(_, _, _))
626 .Times(0); 632 .Times(0);
627 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 633 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
628 cmd.Init(client_program_id_, kUniform2Location, 634 cmd.Init(client_program_id_, kUniform2Location,
629 kSharedMemoryId, kInvalidSharedMemoryOffset); 635 kSharedMemoryId, kInvalidSharedMemoryOffset);
630 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 636 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
631 }; 637 };
632 638
633 TEST_F(GLES2DecoderWithShaderTest, GetUniformfvSucceeds) { 639 TEST_F(GLES2DecoderWithShaderTest, GetUniformfvSucceeds) {
634 GetUniformfv::Result* result = 640 GetUniformfv::Result* result =
635 static_cast<GetUniformfv::Result*>(shared_memory_address_); 641 static_cast<GetUniformfv::Result*>(shared_memory_address_);
636 result->size = 0; 642 result->size = 0;
637 GetUniformfv cmd; 643 GetUniformfv cmd;
638 cmd.Init(client_program_id_, kUniform2Location, 644 cmd.Init(client_program_id_,
645 program_manager()->SwizzleLocation(kUniform2Location),
639 kSharedMemoryId, kSharedMemoryOffset); 646 kSharedMemoryId, kSharedMemoryOffset);
640 EXPECT_CALL(*gl_, GetUniformfv(kServiceProgramId, kUniform2Location, _)) 647 EXPECT_CALL(*gl_, GetUniformfv(kServiceProgramId, kUniform2Location, _))
641 .Times(1); 648 .Times(1);
642 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 649 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
643 EXPECT_EQ(GLES2Util::GetGLDataTypeSizeForUniforms(kUniform2Type), 650 EXPECT_EQ(GLES2Util::GetGLDataTypeSizeForUniforms(kUniform2Type),
644 result->size); 651 result->size);
645 } 652 }
646 653
647 TEST_F(GLES2DecoderWithShaderTest, GetUniformfvArrayElementSucceeds) { 654 TEST_F(GLES2DecoderWithShaderTest, GetUniformfvArrayElementSucceeds) {
648 GetUniformfv::Result* result = 655 GetUniformfv::Result* result =
649 static_cast<GetUniformfv::Result*>(shared_memory_address_); 656 static_cast<GetUniformfv::Result*>(shared_memory_address_);
650 result->size = 0; 657 result->size = 0;
651 GetUniformfv cmd; 658 GetUniformfv cmd;
652 cmd.Init(client_program_id_, kUniform2ElementLocation, 659 cmd.Init(client_program_id_,
660 program_manager()->SwizzleLocation(kUniform2ElementLocation),
653 kSharedMemoryId, kSharedMemoryOffset); 661 kSharedMemoryId, kSharedMemoryOffset);
654 EXPECT_CALL(*gl_, 662 EXPECT_CALL(*gl_,
655 GetUniformfv(kServiceProgramId, kUniform2ElementLocation, _)) 663 GetUniformfv(kServiceProgramId, kUniform2ElementLocation, _))
656 .Times(1); 664 .Times(1);
657 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 665 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
658 EXPECT_EQ(GLES2Util::GetGLDataTypeSizeForUniforms(kUniform2Type), 666 EXPECT_EQ(GLES2Util::GetGLDataTypeSizeForUniforms(kUniform2Type),
659 result->size); 667 result->size);
660 } 668 }
661 669
662 TEST_F(GLES2DecoderWithShaderTest, GetUniformfvBadProgramFails) { 670 TEST_F(GLES2DecoderWithShaderTest, GetUniformfvBadProgramFails) {
663 GetUniformfv::Result* result = 671 GetUniformfv::Result* result =
664 static_cast<GetUniformfv::Result*>(shared_memory_address_); 672 static_cast<GetUniformfv::Result*>(shared_memory_address_);
665 result->size = 0; 673 result->size = 0;
666 GetUniformfv cmd; 674 GetUniformfv cmd;
667 // non-existant program 675 // non-existant program
668 cmd.Init(kInvalidClientId, kUniform2Location, 676 cmd.Init(kInvalidClientId,
677 program_manager()->SwizzleLocation(kUniform2Location),
669 kSharedMemoryId, kSharedMemoryOffset); 678 kSharedMemoryId, kSharedMemoryOffset);
670 EXPECT_CALL(*gl_, GetUniformfv(_, _, _)) 679 EXPECT_CALL(*gl_, GetUniformfv(_, _, _))
671 .Times(0); 680 .Times(0);
672 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 681 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
673 EXPECT_EQ(0U, result->size); 682 EXPECT_EQ(0U, result->size);
674 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 683 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
675 // Valid id that is not a program. The GL spec requires a different error for 684 // Valid id that is not a program. The GL spec requires a different error for
676 // this case. 685 // this case.
677 #if GLES2_TEST_SHADER_VS_PROGRAM_IDS 686 #if GLES2_TEST_SHADER_VS_PROGRAM_IDS
678 result->size = kInitialResult; 687 result->size = kInitialResult;
679 cmd.Init(client_shader_id_, kUniform2Location, 688 cmd.Init(client_shader_id_,
689 program_manager()->SwizzleLocation(kUniform2Location),
680 kSharedMemoryId, kSharedMemoryOffset); 690 kSharedMemoryId, kSharedMemoryOffset);
681 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 691 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
682 EXPECT_EQ(0U, result->size); 692 EXPECT_EQ(0U, result->size);
683 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); 693 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
684 #endif // GLES2_TEST_SHADER_VS_PROGRAM_IDS 694 #endif // GLES2_TEST_SHADER_VS_PROGRAM_IDS
685 // Unlinked program 695 // Unlinked program
686 EXPECT_CALL(*gl_, CreateProgram()) 696 EXPECT_CALL(*gl_, CreateProgram())
687 .Times(1) 697 .Times(1)
688 .WillOnce(Return(kNewServiceId)) 698 .WillOnce(Return(kNewServiceId))
689 .RetiresOnSaturation(); 699 .RetiresOnSaturation();
690 CreateProgram cmd2; 700 CreateProgram cmd2;
691 cmd2.Init(kNewClientId); 701 cmd2.Init(kNewClientId);
692 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); 702 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2));
693 result->size = kInitialResult; 703 result->size = kInitialResult;
694 cmd.Init(kNewClientId, kUniform2Location, 704 cmd.Init(kNewClientId, program_manager()->SwizzleLocation(kUniform2Location),
695 kSharedMemoryId, kSharedMemoryOffset); 705 kSharedMemoryId, kSharedMemoryOffset);
696 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 706 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
697 EXPECT_EQ(0U, result->size); 707 EXPECT_EQ(0U, result->size);
698 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); 708 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
699 } 709 }
700 710
701 TEST_F(GLES2DecoderWithShaderTest, GetUniformfvBadLocationFails) { 711 TEST_F(GLES2DecoderWithShaderTest, GetUniformfvBadLocationFails) {
702 GetUniformfv::Result* result = 712 GetUniformfv::Result* result =
703 static_cast<GetUniformfv::Result*>(shared_memory_address_); 713 static_cast<GetUniformfv::Result*>(shared_memory_address_);
704 result->size = 0; 714 result->size = 0;
705 GetUniformfv cmd; 715 GetUniformfv cmd;
706 // invalid location 716 // invalid location
707 cmd.Init(client_program_id_, kInvalidUniformLocation, 717 cmd.Init(client_program_id_, kInvalidUniformLocation,
708 kSharedMemoryId, kSharedMemoryOffset); 718 kSharedMemoryId, kSharedMemoryOffset);
709 EXPECT_CALL(*gl_, GetUniformfv(_, _, _)) 719 EXPECT_CALL(*gl_, GetUniformfv(_, _, _))
710 .Times(0); 720 .Times(0);
711 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 721 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
712 EXPECT_EQ(0U, result->size); 722 EXPECT_EQ(0U, result->size);
713 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); 723 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
714 } 724 }
715 725
716 TEST_F(GLES2DecoderWithShaderTest, GetUniformfvBadSharedMemoryFails) { 726 TEST_F(GLES2DecoderWithShaderTest, GetUniformfvBadSharedMemoryFails) {
717 GetUniformfv cmd; 727 GetUniformfv cmd;
718 cmd.Init(client_program_id_, kUniform2Location, 728 cmd.Init(client_program_id_,
729 program_manager()->SwizzleLocation(kUniform2Location),
719 kInvalidSharedMemoryId, kSharedMemoryOffset); 730 kInvalidSharedMemoryId, kSharedMemoryOffset);
720 EXPECT_CALL(*gl_, GetUniformfv(_, _, _)) 731 EXPECT_CALL(*gl_, GetUniformfv(_, _, _))
721 .Times(0); 732 .Times(0);
722 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 733 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
723 cmd.Init(client_program_id_, kUniform2Location, 734 cmd.Init(client_program_id_, kUniform2Location,
724 kSharedMemoryId, kInvalidSharedMemoryOffset); 735 kSharedMemoryId, kInvalidSharedMemoryOffset);
725 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 736 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
726 }; 737 };
727 738
728 TEST_F(GLES2DecoderWithShaderTest, GetAttachedShadersSucceeds) { 739 TEST_F(GLES2DecoderWithShaderTest, GetAttachedShadersSucceeds) {
(...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after
1224 0, 0); 1235 0, 0);
1225 GenerateMipmap cmd; 1236 GenerateMipmap cmd;
1226 cmd.Init(GL_TEXTURE_2D); 1237 cmd.Init(GL_TEXTURE_2D);
1227 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1238 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1228 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); 1239 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
1229 } 1240 }
1230 1241
1231 TEST_F(GLES2DecoderWithShaderTest, Uniform1iValidArgs) { 1242 TEST_F(GLES2DecoderWithShaderTest, Uniform1iValidArgs) {
1232 EXPECT_CALL(*gl_, Uniform1i(kUniform1Location, 2)); 1243 EXPECT_CALL(*gl_, Uniform1i(kUniform1Location, 2));
1233 Uniform1i cmd; 1244 Uniform1i cmd;
1234 cmd.Init(kUniform1Location, 2); 1245 cmd.Init(program_manager()->SwizzleLocation(kUniform1Location), 2);
1235 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1246 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1236 } 1247 }
1237 1248
1238 TEST_F(GLES2DecoderWithShaderTest, Uniform1ivValidArgs) { 1249 TEST_F(GLES2DecoderWithShaderTest, Uniform1ivValidArgs) {
1239 EXPECT_CALL( 1250 EXPECT_CALL(
1240 *gl_, Uniform1iv( 1251 *gl_, Uniform1iv(kUniform1Location, 1,
1241 kUniform1Location, 1,
1242 reinterpret_cast<const GLint*>(shared_memory_address_))); 1252 reinterpret_cast<const GLint*>(shared_memory_address_)));
1243 Uniform1iv cmd; 1253 Uniform1iv cmd;
1244 cmd.Init(kUniform1Location, 1, shared_memory_id_, shared_memory_offset_); 1254 cmd.Init(program_manager()->SwizzleLocation(kUniform1Location),
1255 1, shared_memory_id_, shared_memory_offset_);
1245 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1256 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1246 } 1257 }
1247 1258
1248 TEST_F(GLES2DecoderWithShaderTest, Uniform1ivInvalidArgs2_0) { 1259 TEST_F(GLES2DecoderWithShaderTest, Uniform1ivInvalidArgs2_0) {
1249 EXPECT_CALL(*gl_, Uniform1iv(_, _, _)).Times(0); 1260 EXPECT_CALL(*gl_, Uniform1iv(_, _, _)).Times(0);
1250 Uniform1iv cmd; 1261 Uniform1iv cmd;
1251 cmd.Init(kUniform1Location, 1, kInvalidSharedMemoryId, 0); 1262 cmd.Init(program_manager()->SwizzleLocation(kUniform1Location),
1263 1, kInvalidSharedMemoryId, 0);
1252 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1264 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1253 } 1265 }
1254 1266
1255 TEST_F(GLES2DecoderWithShaderTest, Uniform1ivInvalidArgs2_1) { 1267 TEST_F(GLES2DecoderWithShaderTest, Uniform1ivInvalidArgs2_1) {
1256 EXPECT_CALL(*gl_, Uniform1iv(_, _, _)).Times(0); 1268 EXPECT_CALL(*gl_, Uniform1iv(_, _, _)).Times(0);
1257 Uniform1iv cmd; 1269 Uniform1iv cmd;
1258 cmd.Init(kUniform1Location, 1, shared_memory_id_, kInvalidSharedMemoryOffset); 1270 cmd.Init(program_manager()->SwizzleLocation(kUniform1Location),
1271 1, shared_memory_id_, kInvalidSharedMemoryOffset);
1259 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1272 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1260 } 1273 }
1261 1274
1262 TEST_F(GLES2DecoderWithShaderTest, Uniform1ivImmediateValidArgs) { 1275 TEST_F(GLES2DecoderWithShaderTest, Uniform1ivImmediateValidArgs) {
1263 Uniform1ivImmediate& cmd = *GetImmediateAs<Uniform1ivImmediate>(); 1276 Uniform1ivImmediate& cmd = *GetImmediateAs<Uniform1ivImmediate>();
1264 EXPECT_CALL( 1277 EXPECT_CALL(
1265 *gl_, 1278 *gl_,
1266 Uniform1iv(kUniform1Location, 1, 1279 Uniform1iv(kUniform1Location, 1,
1267 reinterpret_cast<GLint*>(ImmediateDataAddress(&cmd)))); 1280 reinterpret_cast<GLint*>(ImmediateDataAddress(&cmd))));
1268 GLint temp[1 * 2] = { 0, }; 1281 GLint temp[1 * 2] = { 0, };
1269 cmd.Init(kUniform1Location, 1, &temp[0]); 1282 cmd.Init(program_manager()->SwizzleLocation(kUniform1Location), 1, &temp[0]);
1270 EXPECT_EQ(error::kNoError, 1283 EXPECT_EQ(error::kNoError,
1271 ExecuteImmediateCmd(cmd, sizeof(temp))); 1284 ExecuteImmediateCmd(cmd, sizeof(temp)));
1272 } 1285 }
1273 1286
1274 TEST_F(GLES2DecoderWithShaderTest, Uniform1ivInvalidValidArgs) { 1287 TEST_F(GLES2DecoderWithShaderTest, Uniform1ivInvalidValidArgs) {
1275 EXPECT_CALL(*gl_, Uniform1iv(_, _, _)).Times(0); 1288 EXPECT_CALL(*gl_, Uniform1iv(_, _, _)).Times(0);
1276 Uniform1iv cmd; 1289 Uniform1iv cmd;
1277 cmd.Init(kUniform1Location, 2, shared_memory_id_, shared_memory_offset_); 1290 cmd.Init(program_manager()->SwizzleLocation(kUniform1Location),
1291 2, shared_memory_id_, shared_memory_offset_);
1278 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1292 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1279 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); 1293 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
1280 } 1294 }
1281 1295
1282 TEST_F(GLES2DecoderWithShaderTest, Uniform1ivZeroCount) { 1296 TEST_F(GLES2DecoderWithShaderTest, Uniform1ivZeroCount) {
1283 EXPECT_CALL(*gl_, Uniform1iv(_, _, _)).Times(0); 1297 EXPECT_CALL(*gl_, Uniform1iv(_, _, _)).Times(0);
1284 Uniform1iv cmd; 1298 Uniform1iv cmd;
1285 cmd.Init(kUniform1Location, 0, shared_memory_id_, shared_memory_offset_); 1299 cmd.Init(program_manager()->SwizzleLocation(kUniform1Location),
1300 0, shared_memory_id_, shared_memory_offset_);
1286 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1301 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1287 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1302 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1288 } 1303 }
1289 1304
1290 1305
1291 TEST_F(GLES2DecoderWithShaderTest, BindBufferToDifferentTargetFails) { 1306 TEST_F(GLES2DecoderWithShaderTest, BindBufferToDifferentTargetFails) {
1292 // Bind the buffer to GL_ARRAY_BUFFER 1307 // Bind the buffer to GL_ARRAY_BUFFER
1293 DoBindBuffer(GL_ARRAY_BUFFER, client_buffer_id_, kServiceBufferId); 1308 DoBindBuffer(GL_ARRAY_BUFFER, client_buffer_id_, kServiceBufferId);
1294 // Attempt to rebind to GL_ELEMENT_ARRAY_BUFFER 1309 // Attempt to rebind to GL_ELEMENT_ARRAY_BUFFER
1295 // NOTE: Real GLES2 does not have this restriction but WebGL and we do. 1310 // NOTE: Real GLES2 does not have this restriction but WebGL and we do.
(...skipping 843 matching lines...) Expand 10 before | Expand all | Expand 10 after
2139 *result = -1; 2154 *result = -1;
2140 char* name = GetSharedMemoryAsWithOffset<char*>(sizeof(*result)); 2155 char* name = GetSharedMemoryAsWithOffset<char*>(sizeof(*result));
2141 const uint32 kNameOffset = kSharedMemoryOffset + sizeof(*result); 2156 const uint32 kNameOffset = kSharedMemoryOffset + sizeof(*result);
2142 memcpy(name, kUniform2Name, kNameSize); 2157 memcpy(name, kUniform2Name, kNameSize);
2143 GetUniformLocation cmd; 2158 GetUniformLocation cmd;
2144 cmd.Init(client_program_id_, 2159 cmd.Init(client_program_id_,
2145 kSharedMemoryId, kNameOffset, 2160 kSharedMemoryId, kNameOffset,
2146 kSharedMemoryId, kSharedMemoryOffset, 2161 kSharedMemoryId, kSharedMemoryOffset,
2147 kNameSize); 2162 kNameSize);
2148 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 2163 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
2149 EXPECT_EQ(kUniform2Location, *result); 2164 EXPECT_EQ(program_manager()->SwizzleLocation(kUniform2Location), *result);
2150 memcpy(name, kNonExistentName, kNonExistentNameSize); 2165 memcpy(name, kNonExistentName, kNonExistentNameSize);
2151 *result = -1; 2166 *result = -1;
2152 cmd.Init(client_program_id_, 2167 cmd.Init(client_program_id_,
2153 kSharedMemoryId, kNameOffset, 2168 kSharedMemoryId, kNameOffset,
2154 kSharedMemoryId, kSharedMemoryOffset, 2169 kSharedMemoryId, kSharedMemoryOffset,
2155 kNonExistentNameSize); 2170 kNonExistentNameSize);
2156 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 2171 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
2157 EXPECT_EQ(-1, *result); 2172 EXPECT_EQ(-1, *result);
2158 } 2173 }
2159 2174
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
2220 const char* kNonExistentName = "foobar"; 2235 const char* kNonExistentName = "foobar";
2221 const uint32 kNonExistentNameSize = strlen(kNonExistentName); 2236 const uint32 kNonExistentNameSize = strlen(kNonExistentName);
2222 typedef GetUniformLocationImmediate::Result Result; 2237 typedef GetUniformLocationImmediate::Result Result;
2223 Result* result = GetSharedMemoryAs<Result*>(); 2238 Result* result = GetSharedMemoryAs<Result*>();
2224 *result = -1; 2239 *result = -1;
2225 GetUniformLocationImmediate& cmd = 2240 GetUniformLocationImmediate& cmd =
2226 *GetImmediateAs<GetUniformLocationImmediate>(); 2241 *GetImmediateAs<GetUniformLocationImmediate>();
2227 cmd.Init(client_program_id_, kUniform2Name, 2242 cmd.Init(client_program_id_, kUniform2Name,
2228 kSharedMemoryId, kSharedMemoryOffset); 2243 kSharedMemoryId, kSharedMemoryOffset);
2229 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, kNameSize)); 2244 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, kNameSize));
2230 EXPECT_EQ(kUniform2Location, *result); 2245 EXPECT_EQ(program_manager()->SwizzleLocation(kUniform2Location), *result);
2231 *result = -1; 2246 *result = -1;
2232 cmd.Init(client_program_id_, kNonExistentName, 2247 cmd.Init(client_program_id_, kNonExistentName,
2233 kSharedMemoryId, kSharedMemoryOffset); 2248 kSharedMemoryId, kSharedMemoryOffset);
2234 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, kNonExistentNameSize)); 2249 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, kNonExistentNameSize));
2235 EXPECT_EQ(-1, *result); 2250 EXPECT_EQ(-1, *result);
2236 } 2251 }
2237 2252
2238 TEST_F(GLES2DecoderWithShaderTest, GetUniformLocationImmediateInvalidArgs) { 2253 TEST_F(GLES2DecoderWithShaderTest, GetUniformLocationImmediateInvalidArgs) {
2239 const uint32 kNameSize = strlen(kUniform2Name); 2254 const uint32 kNameSize = strlen(kUniform2Name);
2240 typedef GetUniformLocationImmediate::Result Result; 2255 typedef GetUniformLocationImmediate::Result Result;
(...skipping 21 matching lines...) Expand all
2262 const uint32 kBucketId = 123; 2277 const uint32 kBucketId = 123;
2263 const char* kNonExistentName = "foobar"; 2278 const char* kNonExistentName = "foobar";
2264 typedef GetUniformLocationBucket::Result Result; 2279 typedef GetUniformLocationBucket::Result Result;
2265 Result* result = GetSharedMemoryAs<Result*>(); 2280 Result* result = GetSharedMemoryAs<Result*>();
2266 SetBucketAsCString(kBucketId, kUniform2Name); 2281 SetBucketAsCString(kBucketId, kUniform2Name);
2267 *result = -1; 2282 *result = -1;
2268 GetUniformLocationBucket cmd; 2283 GetUniformLocationBucket cmd;
2269 cmd.Init(client_program_id_, kBucketId, 2284 cmd.Init(client_program_id_, kBucketId,
2270 kSharedMemoryId, kSharedMemoryOffset); 2285 kSharedMemoryId, kSharedMemoryOffset);
2271 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 2286 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
2272 EXPECT_EQ(kUniform2Location, *result); 2287 EXPECT_EQ(program_manager()->SwizzleLocation(kUniform2Location), *result);
2273 SetBucketAsCString(kBucketId, kNonExistentName); 2288 SetBucketAsCString(kBucketId, kNonExistentName);
2274 *result = -1; 2289 *result = -1;
2275 cmd.Init(client_program_id_, kBucketId, 2290 cmd.Init(client_program_id_, kBucketId,
2276 kSharedMemoryId, kSharedMemoryOffset); 2291 kSharedMemoryId, kSharedMemoryOffset);
2277 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 2292 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
2278 EXPECT_EQ(-1, *result); 2293 EXPECT_EQ(-1, *result);
2279 } 2294 }
2280 2295
2281 TEST_F(GLES2DecoderWithShaderTest, GetUniformLocationBucketInvalidArgs) { 2296 TEST_F(GLES2DecoderWithShaderTest, GetUniformLocationBucketInvalidArgs) {
2282 const uint32 kBucketId = 123; 2297 const uint32 kBucketId = 123;
(...skipping 3680 matching lines...) Expand 10 before | Expand all | Expand 10 after
5963 // TODO(gman): TexImage2DImmediate 5978 // TODO(gman): TexImage2DImmediate
5964 5979
5965 // TODO(gman): TexSubImage2DImmediate 5980 // TODO(gman): TexSubImage2DImmediate
5966 5981
5967 // TODO(gman): UseProgram 5982 // TODO(gman): UseProgram
5968 5983
5969 // TODO(gman): SwapBuffers 5984 // TODO(gman): SwapBuffers
5970 5985
5971 } // namespace gles2 5986 } // namespace gles2
5972 } // namespace gpu 5987 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698