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

Side by Side Diff: gpu/command_buffer/client/gles2_implementation_unittest.cc

Issue 12326146: Refactor/Rename a bunch of GPU stuff (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 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) 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 // Tests for GLES2Implementation. 5 // Tests for GLES2Implementation.
6 6
7 #include "gpu/command_buffer/client/gles2_implementation.h" 7 #include "gpu/command_buffer/client/gles2_implementation.h"
8 8
9 #include <GLES2/gl2ext.h> 9 #include <GLES2/gl2ext.h>
10 #include <GLES2/gl2extchromium.h> 10 #include <GLES2/gl2extchromium.h>
(...skipping 439 matching lines...) Expand 10 before | Expand all | Expand 10 after
450 } 450 }
451 451
452 // Sets the ProgramInfoManager. The manager will be owned 452 // Sets the ProgramInfoManager. The manager will be owned
453 // by the ShareGroup. 453 // by the ShareGroup.
454 void SetProgramInfoManager(ProgramInfoManager* manager) { 454 void SetProgramInfoManager(ProgramInfoManager* manager) {
455 gl_->share_group()->set_program_info_manager(manager); 455 gl_->share_group()->set_program_info_manager(manager);
456 } 456 }
457 457
458 int CheckError() { 458 int CheckError() {
459 ExpectedMemoryInfo result = 459 ExpectedMemoryInfo result =
460 GetExpectedResultMemory(sizeof(GetError::Result)); 460 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
461 EXPECT_CALL(*command_buffer(), OnFlush()) 461 EXPECT_CALL(*command_buffer(), OnFlush())
462 .WillOnce(SetMemory(result.ptr, GLuint(GL_NO_ERROR))) 462 .WillOnce(SetMemory(result.ptr, GLuint(GL_NO_ERROR)))
463 .RetiresOnSaturation(); 463 .RetiresOnSaturation();
464 return gl_->GetError(); 464 return gl_->GetError();
465 } 465 }
466 466
467 bool GetBucketContents(uint32 bucket_id, std::vector<int8>* data) { 467 bool GetBucketContents(uint32 bucket_id, std::vector<int8>* data) {
468 return gl_->GetBucketContents(bucket_id, data); 468 return gl_->GetBucketContents(bucket_id, data);
469 } 469 }
470 470
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
598 const size_t kPaddedString3Size = 598 const size_t kPaddedString3Size =
599 transfer_buffer_->RoundToAlignment(kString3Size); 599 transfer_buffer_->RoundToAlignment(kString3Size);
600 struct Cmds { 600 struct Cmds {
601 cmd::SetBucketSize set_bucket_size; 601 cmd::SetBucketSize set_bucket_size;
602 cmd::SetBucketData set_bucket_data1; 602 cmd::SetBucketData set_bucket_data1;
603 cmd::SetToken set_token1; 603 cmd::SetToken set_token1;
604 cmd::SetBucketData set_bucket_data2; 604 cmd::SetBucketData set_bucket_data2;
605 cmd::SetToken set_token2; 605 cmd::SetToken set_token2;
606 cmd::SetBucketData set_bucket_data3; 606 cmd::SetBucketData set_bucket_data3;
607 cmd::SetToken set_token3; 607 cmd::SetToken set_token3;
608 ShaderSourceBucket shader_source_bucket; 608 cmds::ShaderSourceBucket shader_source_bucket;
609 cmd::SetBucketSize clear_bucket_size; 609 cmd::SetBucketSize clear_bucket_size;
610 }; 610 };
611 611
612 ExpectedMemoryInfo mem1 = GetExpectedMemory(kPaddedString1Size); 612 ExpectedMemoryInfo mem1 = GetExpectedMemory(kPaddedString1Size);
613 ExpectedMemoryInfo mem2 = GetExpectedMemory(kPaddedString2Size); 613 ExpectedMemoryInfo mem2 = GetExpectedMemory(kPaddedString2Size);
614 ExpectedMemoryInfo mem3 = GetExpectedMemory(kPaddedString3Size); 614 ExpectedMemoryInfo mem3 = GetExpectedMemory(kPaddedString3Size);
615 615
616 Cmds expected; 616 Cmds expected;
617 expected.set_bucket_size.Init(kBucketId, kSourceSize); 617 expected.set_bucket_size.Init(kBucketId, kSourceSize);
618 expected.set_bucket_data1.Init( 618 expected.set_bucket_data1.Init(
(...skipping 16 matching lines...) Expand all
635 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 635 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
636 } 636 }
637 637
638 TEST_F(GLES2ImplementationTest, GetShaderSource) { 638 TEST_F(GLES2ImplementationTest, GetShaderSource) {
639 const uint32 kBucketId = GLES2Implementation::kResultBucketId; 639 const uint32 kBucketId = GLES2Implementation::kResultBucketId;
640 const GLuint kShaderId = 456; 640 const GLuint kShaderId = 456;
641 const Str7 kString = {"foobar"}; 641 const Str7 kString = {"foobar"};
642 const char kBad = 0x12; 642 const char kBad = 0x12;
643 struct Cmds { 643 struct Cmds {
644 cmd::SetBucketSize set_bucket_size1; 644 cmd::SetBucketSize set_bucket_size1;
645 GetShaderSource get_shader_source; 645 cmds::GetShaderSource get_shader_source;
646 cmd::GetBucketStart get_bucket_start; 646 cmd::GetBucketStart get_bucket_start;
647 cmd::SetToken set_token1; 647 cmd::SetToken set_token1;
648 cmd::SetBucketSize set_bucket_size2; 648 cmd::SetBucketSize set_bucket_size2;
649 }; 649 };
650 650
651 ExpectedMemoryInfo mem1 = GetExpectedMemory(MaxTransferBufferSize()); 651 ExpectedMemoryInfo mem1 = GetExpectedMemory(MaxTransferBufferSize());
652 ExpectedMemoryInfo result1 = GetExpectedResultMemory(sizeof(uint32)); 652 ExpectedMemoryInfo result1 = GetExpectedResultMemory(sizeof(uint32));
653 653
654 Cmds expected; 654 Cmds expected;
655 expected.set_bucket_size1.Init(kBucketId, 0); 655 expected.set_bucket_size1.Init(kBucketId, 0);
(...skipping 21 matching lines...) Expand all
677 677
678 #if defined(GLES2_SUPPORT_CLIENT_SIDE_ARRAYS) 678 #if defined(GLES2_SUPPORT_CLIENT_SIDE_ARRAYS)
679 679
680 TEST_F(GLES2ImplementationTest, DrawArraysClientSideBuffers) { 680 TEST_F(GLES2ImplementationTest, DrawArraysClientSideBuffers) {
681 static const float verts[][4] = { 681 static const float verts[][4] = {
682 { 12.0f, 23.0f, 34.0f, 45.0f, }, 682 { 12.0f, 23.0f, 34.0f, 45.0f, },
683 { 56.0f, 67.0f, 78.0f, 89.0f, }, 683 { 56.0f, 67.0f, 78.0f, 89.0f, },
684 { 13.0f, 24.0f, 35.0f, 46.0f, }, 684 { 13.0f, 24.0f, 35.0f, 46.0f, },
685 }; 685 };
686 struct Cmds { 686 struct Cmds {
687 EnableVertexAttribArray enable1; 687 cmds::EnableVertexAttribArray enable1;
688 EnableVertexAttribArray enable2; 688 cmds::EnableVertexAttribArray enable2;
689 BindBuffer bind_to_emu; 689 cmds::BindBuffer bind_to_emu;
690 BufferData set_size; 690 cmds::BufferData set_size;
691 BufferSubData copy_data1; 691 cmds::BufferSubData copy_data1;
692 cmd::SetToken set_token1; 692 cmd::SetToken set_token1;
693 VertexAttribPointer set_pointer1; 693 cmds::VertexAttribPointer set_pointer1;
694 BufferSubData copy_data2; 694 cmds::BufferSubData copy_data2;
695 cmd::SetToken set_token2; 695 cmd::SetToken set_token2;
696 VertexAttribPointer set_pointer2; 696 cmds::VertexAttribPointer set_pointer2;
697 DrawArrays draw; 697 cmds::DrawArrays draw;
698 BindBuffer restore; 698 cmds::BindBuffer restore;
699 }; 699 };
700 const GLuint kEmuBufferId = GLES2Implementation::kClientSideArrayId; 700 const GLuint kEmuBufferId = GLES2Implementation::kClientSideArrayId;
701 const GLuint kAttribIndex1 = 1; 701 const GLuint kAttribIndex1 = 1;
702 const GLuint kAttribIndex2 = 3; 702 const GLuint kAttribIndex2 = 3;
703 const GLint kNumComponents1 = 3; 703 const GLint kNumComponents1 = 3;
704 const GLint kNumComponents2 = 2; 704 const GLint kNumComponents2 = 2;
705 const GLsizei kClientStride = sizeof(verts[0]); 705 const GLsizei kClientStride = sizeof(verts[0]);
706 const GLint kFirst = 1; 706 const GLint kFirst = 1;
707 const GLsizei kCount = 2; 707 const GLsizei kCount = 2;
708 const GLsizei kSize1 = 708 const GLsizei kSize1 =
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
743 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 743 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
744 } 744 }
745 745
746 TEST_F(GLES2ImplementationTest, DrawArraysInstancedANGLEClientSideBuffers) { 746 TEST_F(GLES2ImplementationTest, DrawArraysInstancedANGLEClientSideBuffers) {
747 static const float verts[][4] = { 747 static const float verts[][4] = {
748 { 12.0f, 23.0f, 34.0f, 45.0f, }, 748 { 12.0f, 23.0f, 34.0f, 45.0f, },
749 { 56.0f, 67.0f, 78.0f, 89.0f, }, 749 { 56.0f, 67.0f, 78.0f, 89.0f, },
750 { 13.0f, 24.0f, 35.0f, 46.0f, }, 750 { 13.0f, 24.0f, 35.0f, 46.0f, },
751 }; 751 };
752 struct Cmds { 752 struct Cmds {
753 EnableVertexAttribArray enable1; 753 cmds::EnableVertexAttribArray enable1;
754 EnableVertexAttribArray enable2; 754 cmds::EnableVertexAttribArray enable2;
755 VertexAttribDivisorANGLE divisor; 755 cmds::VertexAttribDivisorANGLE divisor;
756 BindBuffer bind_to_emu; 756 cmds::BindBuffer bind_to_emu;
757 BufferData set_size; 757 cmds::BufferData set_size;
758 BufferSubData copy_data1; 758 cmds::BufferSubData copy_data1;
759 cmd::SetToken set_token1; 759 cmd::SetToken set_token1;
760 VertexAttribPointer set_pointer1; 760 cmds::VertexAttribPointer set_pointer1;
761 BufferSubData copy_data2; 761 cmds::BufferSubData copy_data2;
762 cmd::SetToken set_token2; 762 cmd::SetToken set_token2;
763 VertexAttribPointer set_pointer2; 763 cmds::VertexAttribPointer set_pointer2;
764 DrawArraysInstancedANGLE draw; 764 cmds::DrawArraysInstancedANGLE draw;
765 BindBuffer restore; 765 cmds::BindBuffer restore;
766 }; 766 };
767 const GLuint kEmuBufferId = GLES2Implementation::kClientSideArrayId; 767 const GLuint kEmuBufferId = GLES2Implementation::kClientSideArrayId;
768 const GLuint kAttribIndex1 = 1; 768 const GLuint kAttribIndex1 = 1;
769 const GLuint kAttribIndex2 = 3; 769 const GLuint kAttribIndex2 = 3;
770 const GLint kNumComponents1 = 3; 770 const GLint kNumComponents1 = 3;
771 const GLint kNumComponents2 = 2; 771 const GLint kNumComponents2 = 2;
772 const GLsizei kClientStride = sizeof(verts[0]); 772 const GLsizei kClientStride = sizeof(verts[0]);
773 const GLint kFirst = 1; 773 const GLint kFirst = 1;
774 const GLsizei kCount = 2; 774 const GLsizei kCount = 2;
775 const GLuint kDivisor = 1; 775 const GLuint kDivisor = 1;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
816 TEST_F(GLES2ImplementationTest, DrawElementsClientSideBuffers) { 816 TEST_F(GLES2ImplementationTest, DrawElementsClientSideBuffers) {
817 static const float verts[][4] = { 817 static const float verts[][4] = {
818 { 12.0f, 23.0f, 34.0f, 45.0f, }, 818 { 12.0f, 23.0f, 34.0f, 45.0f, },
819 { 56.0f, 67.0f, 78.0f, 89.0f, }, 819 { 56.0f, 67.0f, 78.0f, 89.0f, },
820 { 13.0f, 24.0f, 35.0f, 46.0f, }, 820 { 13.0f, 24.0f, 35.0f, 46.0f, },
821 }; 821 };
822 static const uint16 indices[] = { 822 static const uint16 indices[] = {
823 1, 2, 823 1, 2,
824 }; 824 };
825 struct Cmds { 825 struct Cmds {
826 EnableVertexAttribArray enable1; 826 cmds::EnableVertexAttribArray enable1;
827 EnableVertexAttribArray enable2; 827 cmds::EnableVertexAttribArray enable2;
828 BindBuffer bind_to_index_emu; 828 cmds::BindBuffer bind_to_index_emu;
829 BufferData set_index_size; 829 cmds::BufferData set_index_size;
830 BufferSubData copy_data0; 830 cmds::BufferSubData copy_data0;
831 cmd::SetToken set_token0; 831 cmd::SetToken set_token0;
832 BindBuffer bind_to_emu; 832 cmds::BindBuffer bind_to_emu;
833 BufferData set_size; 833 cmds::BufferData set_size;
834 BufferSubData copy_data1; 834 cmds::BufferSubData copy_data1;
835 cmd::SetToken set_token1; 835 cmd::SetToken set_token1;
836 VertexAttribPointer set_pointer1; 836 cmds::VertexAttribPointer set_pointer1;
837 BufferSubData copy_data2; 837 cmds::BufferSubData copy_data2;
838 cmd::SetToken set_token2; 838 cmd::SetToken set_token2;
839 VertexAttribPointer set_pointer2; 839 cmds::VertexAttribPointer set_pointer2;
840 DrawElements draw; 840 cmds::DrawElements draw;
841 BindBuffer restore; 841 cmds::BindBuffer restore;
842 BindBuffer restore_element; 842 cmds::BindBuffer restore_element;
843 }; 843 };
844 const GLsizei kIndexSize = sizeof(indices); 844 const GLsizei kIndexSize = sizeof(indices);
845 const GLuint kEmuBufferId = GLES2Implementation::kClientSideArrayId; 845 const GLuint kEmuBufferId = GLES2Implementation::kClientSideArrayId;
846 const GLuint kEmuIndexBufferId = 846 const GLuint kEmuIndexBufferId =
847 GLES2Implementation::kClientSideElementArrayId; 847 GLES2Implementation::kClientSideElementArrayId;
848 const GLuint kAttribIndex1 = 1; 848 const GLuint kAttribIndex1 = 1;
849 const GLuint kAttribIndex2 = 3; 849 const GLuint kAttribIndex2 = 3;
850 const GLint kNumComponents1 = 3; 850 const GLint kNumComponents1 = 3;
851 const GLint kNumComponents2 = 2; 851 const GLint kNumComponents2 = 2;
852 const GLsizei kClientStride = sizeof(verts[0]); 852 const GLsizei kClientStride = sizeof(verts[0]);
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
900 TEST_F(GLES2ImplementationTest, DrawElementsClientSideBuffersIndexUint) { 900 TEST_F(GLES2ImplementationTest, DrawElementsClientSideBuffersIndexUint) {
901 static const float verts[][4] = { 901 static const float verts[][4] = {
902 { 12.0f, 23.0f, 34.0f, 45.0f, }, 902 { 12.0f, 23.0f, 34.0f, 45.0f, },
903 { 56.0f, 67.0f, 78.0f, 89.0f, }, 903 { 56.0f, 67.0f, 78.0f, 89.0f, },
904 { 13.0f, 24.0f, 35.0f, 46.0f, }, 904 { 13.0f, 24.0f, 35.0f, 46.0f, },
905 }; 905 };
906 static const uint32 indices[] = { 906 static const uint32 indices[] = {
907 1, 2, 907 1, 2,
908 }; 908 };
909 struct Cmds { 909 struct Cmds {
910 EnableVertexAttribArray enable1; 910 cmds::EnableVertexAttribArray enable1;
911 EnableVertexAttribArray enable2; 911 cmds::EnableVertexAttribArray enable2;
912 BindBuffer bind_to_index_emu; 912 cmds::BindBuffer bind_to_index_emu;
913 BufferData set_index_size; 913 cmds::BufferData set_index_size;
914 BufferSubData copy_data0; 914 cmds::BufferSubData copy_data0;
915 cmd::SetToken set_token0; 915 cmd::SetToken set_token0;
916 BindBuffer bind_to_emu; 916 cmds::BindBuffer bind_to_emu;
917 BufferData set_size; 917 cmds::BufferData set_size;
918 BufferSubData copy_data1; 918 cmds::BufferSubData copy_data1;
919 cmd::SetToken set_token1; 919 cmd::SetToken set_token1;
920 VertexAttribPointer set_pointer1; 920 cmds::VertexAttribPointer set_pointer1;
921 BufferSubData copy_data2; 921 cmds::BufferSubData copy_data2;
922 cmd::SetToken set_token2; 922 cmd::SetToken set_token2;
923 VertexAttribPointer set_pointer2; 923 cmds::VertexAttribPointer set_pointer2;
924 DrawElements draw; 924 cmds::DrawElements draw;
925 BindBuffer restore; 925 cmds::BindBuffer restore;
926 BindBuffer restore_element; 926 cmds::BindBuffer restore_element;
927 }; 927 };
928 const GLsizei kIndexSize = sizeof(indices); 928 const GLsizei kIndexSize = sizeof(indices);
929 const GLuint kEmuBufferId = GLES2Implementation::kClientSideArrayId; 929 const GLuint kEmuBufferId = GLES2Implementation::kClientSideArrayId;
930 const GLuint kEmuIndexBufferId = 930 const GLuint kEmuIndexBufferId =
931 GLES2Implementation::kClientSideElementArrayId; 931 GLES2Implementation::kClientSideElementArrayId;
932 const GLuint kAttribIndex1 = 1; 932 const GLuint kAttribIndex1 = 1;
933 const GLuint kAttribIndex2 = 3; 933 const GLuint kAttribIndex2 = 3;
934 const GLint kNumComponents1 = 3; 934 const GLint kNumComponents1 = 3;
935 const GLint kNumComponents2 = 2; 935 const GLint kNumComponents2 = 2;
936 const GLsizei kClientStride = sizeof(verts[0]); 936 const GLsizei kClientStride = sizeof(verts[0]);
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
1014 } 1014 }
1015 1015
1016 TEST_F(GLES2ImplementationTest, 1016 TEST_F(GLES2ImplementationTest,
1017 DrawElementsClientSideBuffersServiceSideIndices) { 1017 DrawElementsClientSideBuffersServiceSideIndices) {
1018 static const float verts[][4] = { 1018 static const float verts[][4] = {
1019 { 12.0f, 23.0f, 34.0f, 45.0f, }, 1019 { 12.0f, 23.0f, 34.0f, 45.0f, },
1020 { 56.0f, 67.0f, 78.0f, 89.0f, }, 1020 { 56.0f, 67.0f, 78.0f, 89.0f, },
1021 { 13.0f, 24.0f, 35.0f, 46.0f, }, 1021 { 13.0f, 24.0f, 35.0f, 46.0f, },
1022 }; 1022 };
1023 struct Cmds { 1023 struct Cmds {
1024 EnableVertexAttribArray enable1; 1024 cmds::EnableVertexAttribArray enable1;
1025 EnableVertexAttribArray enable2; 1025 cmds::EnableVertexAttribArray enable2;
1026 BindBuffer bind_to_index; 1026 cmds::BindBuffer bind_to_index;
1027 GetMaxValueInBufferCHROMIUM get_max; 1027 cmds::GetMaxValueInBufferCHROMIUM get_max;
1028 BindBuffer bind_to_emu; 1028 cmds::BindBuffer bind_to_emu;
1029 BufferData set_size; 1029 cmds::BufferData set_size;
1030 BufferSubData copy_data1; 1030 cmds::BufferSubData copy_data1;
1031 cmd::SetToken set_token1; 1031 cmd::SetToken set_token1;
1032 VertexAttribPointer set_pointer1; 1032 cmds::VertexAttribPointer set_pointer1;
1033 BufferSubData copy_data2; 1033 cmds::BufferSubData copy_data2;
1034 cmd::SetToken set_token2; 1034 cmd::SetToken set_token2;
1035 VertexAttribPointer set_pointer2; 1035 cmds::VertexAttribPointer set_pointer2;
1036 DrawElements draw; 1036 cmds::DrawElements draw;
1037 BindBuffer restore; 1037 cmds::BindBuffer restore;
1038 }; 1038 };
1039 const GLuint kEmuBufferId = GLES2Implementation::kClientSideArrayId; 1039 const GLuint kEmuBufferId = GLES2Implementation::kClientSideArrayId;
1040 const GLuint kClientIndexBufferId = 0x789; 1040 const GLuint kClientIndexBufferId = 0x789;
1041 const GLuint kIndexOffset = 0x40; 1041 const GLuint kIndexOffset = 0x40;
1042 const GLuint kMaxIndex = 2; 1042 const GLuint kMaxIndex = 2;
1043 const GLuint kAttribIndex1 = 1; 1043 const GLuint kAttribIndex1 = 1;
1044 const GLuint kAttribIndex2 = 3; 1044 const GLuint kAttribIndex2 = 3;
1045 const GLint kNumComponents1 = 3; 1045 const GLint kNumComponents1 = 3;
1046 const GLint kNumComponents2 = 2; 1046 const GLint kNumComponents2 = 2;
1047 const GLsizei kClientStride = sizeof(verts[0]); 1047 const GLsizei kClientStride = sizeof(verts[0]);
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
1099 TEST_F(GLES2ImplementationTest, DrawElementsInstancedANGLEClientSideBuffers) { 1099 TEST_F(GLES2ImplementationTest, DrawElementsInstancedANGLEClientSideBuffers) {
1100 static const float verts[][4] = { 1100 static const float verts[][4] = {
1101 { 12.0f, 23.0f, 34.0f, 45.0f, }, 1101 { 12.0f, 23.0f, 34.0f, 45.0f, },
1102 { 56.0f, 67.0f, 78.0f, 89.0f, }, 1102 { 56.0f, 67.0f, 78.0f, 89.0f, },
1103 { 13.0f, 24.0f, 35.0f, 46.0f, }, 1103 { 13.0f, 24.0f, 35.0f, 46.0f, },
1104 }; 1104 };
1105 static const uint16 indices[] = { 1105 static const uint16 indices[] = {
1106 1, 2, 1106 1, 2,
1107 }; 1107 };
1108 struct Cmds { 1108 struct Cmds {
1109 EnableVertexAttribArray enable1; 1109 cmds::EnableVertexAttribArray enable1;
1110 EnableVertexAttribArray enable2; 1110 cmds::EnableVertexAttribArray enable2;
1111 VertexAttribDivisorANGLE divisor; 1111 cmds::VertexAttribDivisorANGLE divisor;
1112 BindBuffer bind_to_index_emu; 1112 cmds::BindBuffer bind_to_index_emu;
1113 BufferData set_index_size; 1113 cmds::BufferData set_index_size;
1114 BufferSubData copy_data0; 1114 cmds::BufferSubData copy_data0;
1115 cmd::SetToken set_token0; 1115 cmd::SetToken set_token0;
1116 BindBuffer bind_to_emu; 1116 cmds::BindBuffer bind_to_emu;
1117 BufferData set_size; 1117 cmds::BufferData set_size;
1118 BufferSubData copy_data1; 1118 cmds::BufferSubData copy_data1;
1119 cmd::SetToken set_token1; 1119 cmd::SetToken set_token1;
1120 VertexAttribPointer set_pointer1; 1120 cmds::VertexAttribPointer set_pointer1;
1121 BufferSubData copy_data2; 1121 cmds::BufferSubData copy_data2;
1122 cmd::SetToken set_token2; 1122 cmd::SetToken set_token2;
1123 VertexAttribPointer set_pointer2; 1123 cmds::VertexAttribPointer set_pointer2;
1124 DrawElementsInstancedANGLE draw; 1124 cmds::DrawElementsInstancedANGLE draw;
1125 BindBuffer restore; 1125 cmds::BindBuffer restore;
1126 BindBuffer restore_element; 1126 cmds::BindBuffer restore_element;
1127 }; 1127 };
1128 const GLsizei kIndexSize = sizeof(indices); 1128 const GLsizei kIndexSize = sizeof(indices);
1129 const GLuint kEmuBufferId = GLES2Implementation::kClientSideArrayId; 1129 const GLuint kEmuBufferId = GLES2Implementation::kClientSideArrayId;
1130 const GLuint kEmuIndexBufferId = 1130 const GLuint kEmuIndexBufferId =
1131 GLES2Implementation::kClientSideElementArrayId; 1131 GLES2Implementation::kClientSideElementArrayId;
1132 const GLuint kAttribIndex1 = 1; 1132 const GLuint kAttribIndex1 = 1;
1133 const GLuint kAttribIndex2 = 3; 1133 const GLuint kAttribIndex2 = 3;
1134 const GLint kNumComponents1 = 3; 1134 const GLint kNumComponents1 = 3;
1135 const GLint kNumComponents2 = 2; 1135 const GLint kNumComponents2 = 2;
1136 const GLsizei kClientStride = sizeof(verts[0]); 1136 const GLsizei kClientStride = sizeof(verts[0]);
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
1191 const GLuint kAttribIndex2 = 3; 1191 const GLuint kAttribIndex2 = 3;
1192 const GLint kNumComponents1 = 3; 1192 const GLint kNumComponents1 = 3;
1193 const GLint kNumComponents2 = 2; 1193 const GLint kNumComponents2 = 2;
1194 const GLsizei kStride1 = 12; 1194 const GLsizei kStride1 = 12;
1195 const GLsizei kStride2 = 0; 1195 const GLsizei kStride2 = 0;
1196 const GLuint kBufferId = 0x123; 1196 const GLuint kBufferId = 0x123;
1197 const GLint kOffset2 = 0x456; 1197 const GLint kOffset2 = 0x456;
1198 1198
1199 // It's all cached on the client side so no get commands are issued. 1199 // It's all cached on the client side so no get commands are issued.
1200 struct Cmds { 1200 struct Cmds {
1201 BindBuffer bind; 1201 cmds::BindBuffer bind;
1202 VertexAttribPointer set_pointer; 1202 cmds::VertexAttribPointer set_pointer;
1203 }; 1203 };
1204 1204
1205 Cmds expected; 1205 Cmds expected;
1206 expected.bind.Init(GL_ARRAY_BUFFER, kBufferId); 1206 expected.bind.Init(GL_ARRAY_BUFFER, kBufferId);
1207 expected.set_pointer.Init(kAttribIndex2, kNumComponents2, GL_FLOAT, GL_FALSE, 1207 expected.set_pointer.Init(kAttribIndex2, kNumComponents2, GL_FLOAT, GL_FALSE,
1208 kStride2, kOffset2); 1208 kStride2, kOffset2);
1209 1209
1210 // Set one client side buffer. 1210 // Set one client side buffer.
1211 gl_->VertexAttribPointer(kAttribIndex1, kNumComponents1, 1211 gl_->VertexAttribPointer(kAttribIndex1, kNumComponents1,
1212 GL_FLOAT, GL_FALSE, kStride1, verts); 1212 GL_FLOAT, GL_FALSE, kStride1, verts);
(...skipping 23 matching lines...) Expand all
1236 const GLint kNumComponents1 = 3; 1236 const GLint kNumComponents1 = 3;
1237 const GLint kNumComponents2 = 2; 1237 const GLint kNumComponents2 = 2;
1238 const GLsizei kStride1 = 12; 1238 const GLsizei kStride1 = 12;
1239 const GLsizei kStride2 = 0; 1239 const GLsizei kStride2 = 0;
1240 const GLuint kBufferId = 0x123; 1240 const GLuint kBufferId = 0x123;
1241 const GLint kOffset2 = 0x456; 1241 const GLint kOffset2 = 0x456;
1242 1242
1243 // Only one set and one get because the client side buffer's info is stored 1243 // Only one set and one get because the client side buffer's info is stored
1244 // on the client side. 1244 // on the client side.
1245 struct Cmds { 1245 struct Cmds {
1246 EnableVertexAttribArray enable; 1246 cmds::EnableVertexAttribArray enable;
1247 BindBuffer bind; 1247 cmds::BindBuffer bind;
1248 VertexAttribPointer set_pointer; 1248 cmds::VertexAttribPointer set_pointer;
1249 GetVertexAttribfv get2; // for getting the value from attrib1 1249 cmds::GetVertexAttribfv get2; // for getting the value from attrib1
1250 }; 1250 };
1251 1251
1252 ExpectedMemoryInfo mem2 = GetExpectedResultMemory(16); 1252 ExpectedMemoryInfo mem2 = GetExpectedResultMemory(16);
1253 1253
1254 Cmds expected; 1254 Cmds expected;
1255 expected.enable.Init(kAttribIndex1); 1255 expected.enable.Init(kAttribIndex1);
1256 expected.bind.Init(GL_ARRAY_BUFFER, kBufferId); 1256 expected.bind.Init(GL_ARRAY_BUFFER, kBufferId);
1257 expected.set_pointer.Init(kAttribIndex2, kNumComponents2, GL_FLOAT, GL_FALSE, 1257 expected.set_pointer.Init(kAttribIndex2, kNumComponents2, GL_FLOAT, GL_FALSE,
1258 kStride2, kOffset2); 1258 kStride2, kOffset2);
1259 expected.get2.Init(kAttribIndex1, 1259 expected.get2.Init(kAttribIndex1,
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
1312 EXPECT_EQ(GL_FLOAT, type); 1312 EXPECT_EQ(GL_FLOAT, type);
1313 EXPECT_EQ(GL_FALSE, normalized); 1313 EXPECT_EQ(GL_FALSE, normalized);
1314 EXPECT_EQ(0, memcmp(&current_attrib, &current, sizeof(current_attrib))); 1314 EXPECT_EQ(0, memcmp(&current_attrib, &current, sizeof(current_attrib)));
1315 1315
1316 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 1316 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
1317 } 1317 }
1318 1318
1319 TEST_F(GLES2ImplementationTest, ReservedIds) { 1319 TEST_F(GLES2ImplementationTest, ReservedIds) {
1320 // Only the get error command should be issued. 1320 // Only the get error command should be issued.
1321 struct Cmds { 1321 struct Cmds {
1322 GetError get; 1322 cmds::GetError get;
1323 }; 1323 };
1324 Cmds expected; 1324 Cmds expected;
1325 1325
1326 ExpectedMemoryInfo mem1 = GetExpectedResultMemory(sizeof(GetError::Result)); 1326 ExpectedMemoryInfo mem1 = GetExpectedResultMemory(
1327 sizeof(cmds::GetError::Result));
1327 1328
1328 expected.get.Init(mem1.id, mem1.offset); 1329 expected.get.Init(mem1.id, mem1.offset);
1329 1330
1330 // One call to flush to wait for GetError 1331 // One call to flush to wait for GetError
1331 EXPECT_CALL(*command_buffer(), OnFlush()) 1332 EXPECT_CALL(*command_buffer(), OnFlush())
1332 .WillOnce(SetMemory(mem1.ptr, GLuint(GL_NO_ERROR))) 1333 .WillOnce(SetMemory(mem1.ptr, GLuint(GL_NO_ERROR)))
1333 .RetiresOnSaturation(); 1334 .RetiresOnSaturation();
1334 1335
1335 gl_->BindBuffer( 1336 gl_->BindBuffer(
1336 GL_ARRAY_BUFFER, 1337 GL_ARRAY_BUFFER,
1337 GLES2Implementation::kClientSideArrayId); 1338 GLES2Implementation::kClientSideArrayId);
1338 gl_->BindBuffer( 1339 gl_->BindBuffer(
1339 GL_ARRAY_BUFFER, 1340 GL_ARRAY_BUFFER,
1340 GLES2Implementation::kClientSideElementArrayId); 1341 GLES2Implementation::kClientSideElementArrayId);
1341 GLenum err = gl_->GetError(); 1342 GLenum err = gl_->GetError();
1342 EXPECT_EQ(static_cast<GLenum>(GL_INVALID_OPERATION), err); 1343 EXPECT_EQ(static_cast<GLenum>(GL_INVALID_OPERATION), err);
1343 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 1344 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
1344 } 1345 }
1345 1346
1346 #endif // defined(GLES2_SUPPORT_CLIENT_SIDE_ARRAYS) 1347 #endif // defined(GLES2_SUPPORT_CLIENT_SIDE_ARRAYS)
1347 1348
1348 TEST_F(GLES2ImplementationTest, ReadPixels2Reads) { 1349 TEST_F(GLES2ImplementationTest, ReadPixels2Reads) {
1349 struct Cmds { 1350 struct Cmds {
1350 ReadPixels read1; 1351 cmds::ReadPixels read1;
1351 cmd::SetToken set_token1; 1352 cmd::SetToken set_token1;
1352 ReadPixels read2; 1353 cmds::ReadPixels read2;
1353 cmd::SetToken set_token2; 1354 cmd::SetToken set_token2;
1354 }; 1355 };
1355 const GLint kBytesPerPixel = 4; 1356 const GLint kBytesPerPixel = 4;
1356 const GLint kWidth = 1357 const GLint kWidth =
1357 (kTransferBufferSize - GLES2Implementation::kStartingOffset) / 1358 (kTransferBufferSize - GLES2Implementation::kStartingOffset) /
1358 kBytesPerPixel; 1359 kBytesPerPixel;
1359 const GLint kHeight = 2; 1360 const GLint kHeight = 2;
1360 const GLenum kFormat = GL_RGBA; 1361 const GLenum kFormat = GL_RGBA;
1361 const GLenum kType = GL_UNSIGNED_BYTE; 1362 const GLenum kType = GL_UNSIGNED_BYTE;
1362 1363
1363 ExpectedMemoryInfo mem1 = 1364 ExpectedMemoryInfo mem1 =
1364 GetExpectedMemory(kWidth * kHeight / 2 * kBytesPerPixel); 1365 GetExpectedMemory(kWidth * kHeight / 2 * kBytesPerPixel);
1365 ExpectedMemoryInfo result1 = 1366 ExpectedMemoryInfo result1 =
1366 GetExpectedResultMemory(sizeof(ReadPixels::Result)); 1367 GetExpectedResultMemory(sizeof(cmds::ReadPixels::Result));
1367 ExpectedMemoryInfo mem2 = 1368 ExpectedMemoryInfo mem2 =
1368 GetExpectedMemory(kWidth * kHeight / 2 * kBytesPerPixel); 1369 GetExpectedMemory(kWidth * kHeight / 2 * kBytesPerPixel);
1369 ExpectedMemoryInfo result2 = 1370 ExpectedMemoryInfo result2 =
1370 GetExpectedResultMemory(sizeof(ReadPixels::Result)); 1371 GetExpectedResultMemory(sizeof(cmds::ReadPixels::Result));
1371 1372
1372 Cmds expected; 1373 Cmds expected;
1373 expected.read1.Init( 1374 expected.read1.Init(
1374 0, 0, kWidth, kHeight / 2, kFormat, kType, 1375 0, 0, kWidth, kHeight / 2, kFormat, kType,
1375 mem1.id, mem1.offset, result1.id, result1.offset); 1376 mem1.id, mem1.offset, result1.id, result1.offset);
1376 expected.set_token1.Init(GetNextToken()); 1377 expected.set_token1.Init(GetNextToken());
1377 expected.read2.Init( 1378 expected.read2.Init(
1378 0, kHeight / 2, kWidth, kHeight / 2, kFormat, kType, 1379 0, kHeight / 2, kWidth, kHeight / 2, kFormat, kType,
1379 mem2.id, mem2.offset, result2.id, result2.offset); 1380 mem2.id, mem2.offset, result2.id, result2.offset);
1380 expected.set_token2.Init(GetNextToken()); 1381 expected.set_token2.Init(GetNextToken());
1381 scoped_array<int8> buffer(new int8[kWidth * kHeight * kBytesPerPixel]); 1382 scoped_array<int8> buffer(new int8[kWidth * kHeight * kBytesPerPixel]);
1382 1383
1383 EXPECT_CALL(*command_buffer(), OnFlush()) 1384 EXPECT_CALL(*command_buffer(), OnFlush())
1384 .WillOnce(SetMemory(result1.ptr, static_cast<uint32>(1))) 1385 .WillOnce(SetMemory(result1.ptr, static_cast<uint32>(1)))
1385 .WillOnce(SetMemory(result2.ptr, static_cast<uint32>(1))) 1386 .WillOnce(SetMemory(result2.ptr, static_cast<uint32>(1)))
1386 .RetiresOnSaturation(); 1387 .RetiresOnSaturation();
1387 1388
1388 gl_->ReadPixels(0, 0, kWidth, kHeight, kFormat, kType, buffer.get()); 1389 gl_->ReadPixels(0, 0, kWidth, kHeight, kFormat, kType, buffer.get());
1389 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 1390 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
1390 } 1391 }
1391 1392
1392 TEST_F(GLES2ImplementationTest, ReadPixelsBadFormatType) { 1393 TEST_F(GLES2ImplementationTest, ReadPixelsBadFormatType) {
1393 struct Cmds { 1394 struct Cmds {
1394 ReadPixels read; 1395 cmds::ReadPixels read;
1395 cmd::SetToken set_token; 1396 cmd::SetToken set_token;
1396 }; 1397 };
1397 const GLint kBytesPerPixel = 4; 1398 const GLint kBytesPerPixel = 4;
1398 const GLint kWidth = 2; 1399 const GLint kWidth = 2;
1399 const GLint kHeight = 2; 1400 const GLint kHeight = 2;
1400 const GLenum kFormat = 0; 1401 const GLenum kFormat = 0;
1401 const GLenum kType = 0; 1402 const GLenum kType = 0;
1402 1403
1403 ExpectedMemoryInfo mem1 = 1404 ExpectedMemoryInfo mem1 =
1404 GetExpectedMemory(kWidth * kHeight * kBytesPerPixel); 1405 GetExpectedMemory(kWidth * kHeight * kBytesPerPixel);
1405 ExpectedMemoryInfo result1 = 1406 ExpectedMemoryInfo result1 =
1406 GetExpectedResultMemory(sizeof(ReadPixels::Result)); 1407 GetExpectedResultMemory(sizeof(cmds::ReadPixels::Result));
1407 1408
1408 Cmds expected; 1409 Cmds expected;
1409 expected.read.Init( 1410 expected.read.Init(
1410 0, 0, kWidth, kHeight, kFormat, kType, 1411 0, 0, kWidth, kHeight, kFormat, kType,
1411 mem1.id, mem1.offset, result1.id, result1.offset); 1412 mem1.id, mem1.offset, result1.id, result1.offset);
1412 expected.set_token.Init(GetNextToken()); 1413 expected.set_token.Init(GetNextToken());
1413 scoped_array<int8> buffer(new int8[kWidth * kHeight * kBytesPerPixel]); 1414 scoped_array<int8> buffer(new int8[kWidth * kHeight * kBytesPerPixel]);
1414 1415
1415 EXPECT_CALL(*command_buffer(), OnFlush()) 1416 EXPECT_CALL(*command_buffer(), OnFlush())
1416 .Times(1) 1417 .Times(1)
1417 .RetiresOnSaturation(); 1418 .RetiresOnSaturation();
1418 1419
1419 gl_->ReadPixels(0, 0, kWidth, kHeight, kFormat, kType, buffer.get()); 1420 gl_->ReadPixels(0, 0, kWidth, kHeight, kFormat, kType, buffer.get());
1420 } 1421 }
1421 1422
1422 TEST_F(GLES2ImplementationTest, FreeUnusedSharedMemory) { 1423 TEST_F(GLES2ImplementationTest, FreeUnusedSharedMemory) {
1423 struct Cmds { 1424 struct Cmds {
1424 BufferSubData buf; 1425 cmds::BufferSubData buf;
1425 cmd::SetToken set_token; 1426 cmd::SetToken set_token;
1426 }; 1427 };
1427 const GLenum kTarget = GL_ELEMENT_ARRAY_BUFFER; 1428 const GLenum kTarget = GL_ELEMENT_ARRAY_BUFFER;
1428 const GLintptr kOffset = 15; 1429 const GLintptr kOffset = 15;
1429 const GLsizeiptr kSize = 16; 1430 const GLsizeiptr kSize = 16;
1430 1431
1431 ExpectedMemoryInfo mem1 = GetExpectedMemory(kSize); 1432 ExpectedMemoryInfo mem1 = GetExpectedMemory(kSize);
1432 1433
1433 Cmds expected; 1434 Cmds expected;
1434 expected.buf.Init( 1435 expected.buf.Init(
1435 kTarget, kOffset, kSize, mem1.id, mem1.offset); 1436 kTarget, kOffset, kSize, mem1.id, mem1.offset);
1436 expected.set_token.Init(GetNextToken()); 1437 expected.set_token.Init(GetNextToken());
1437 1438
1438 void* mem = gl_->MapBufferSubDataCHROMIUM( 1439 void* mem = gl_->MapBufferSubDataCHROMIUM(
1439 kTarget, kOffset, kSize, GL_WRITE_ONLY); 1440 kTarget, kOffset, kSize, GL_WRITE_ONLY);
1440 ASSERT_TRUE(mem != NULL); 1441 ASSERT_TRUE(mem != NULL);
1441 gl_->UnmapBufferSubDataCHROMIUM(mem); 1442 gl_->UnmapBufferSubDataCHROMIUM(mem);
1442 EXPECT_CALL(*command_buffer(), DestroyTransferBuffer(_)) 1443 EXPECT_CALL(*command_buffer(), DestroyTransferBuffer(_))
1443 .Times(1) 1444 .Times(1)
1444 .RetiresOnSaturation(); 1445 .RetiresOnSaturation();
1445 gl_->FreeUnusedSharedMemory(); 1446 gl_->FreeUnusedSharedMemory();
1446 } 1447 }
1447 1448
1448 TEST_F(GLES2ImplementationTest, MapUnmapBufferSubDataCHROMIUM) { 1449 TEST_F(GLES2ImplementationTest, MapUnmapBufferSubDataCHROMIUM) {
1449 struct Cmds { 1450 struct Cmds {
1450 BufferSubData buf; 1451 cmds::BufferSubData buf;
1451 cmd::SetToken set_token; 1452 cmd::SetToken set_token;
1452 }; 1453 };
1453 const GLenum kTarget = GL_ELEMENT_ARRAY_BUFFER; 1454 const GLenum kTarget = GL_ELEMENT_ARRAY_BUFFER;
1454 const GLintptr kOffset = 15; 1455 const GLintptr kOffset = 15;
1455 const GLsizeiptr kSize = 16; 1456 const GLsizeiptr kSize = 16;
1456 1457
1457 uint32 offset = 0; 1458 uint32 offset = 0;
1458 Cmds expected; 1459 Cmds expected;
1459 expected.buf.Init( 1460 expected.buf.Init(
1460 kTarget, kOffset, kSize, 1461 kTarget, kOffset, kSize,
1461 command_buffer()->GetNextFreeTransferBufferId(), offset); 1462 command_buffer()->GetNextFreeTransferBufferId(), offset);
1462 expected.set_token.Init(GetNextToken()); 1463 expected.set_token.Init(GetNextToken());
1463 1464
1464 void* mem = gl_->MapBufferSubDataCHROMIUM( 1465 void* mem = gl_->MapBufferSubDataCHROMIUM(
1465 kTarget, kOffset, kSize, GL_WRITE_ONLY); 1466 kTarget, kOffset, kSize, GL_WRITE_ONLY);
1466 ASSERT_TRUE(mem != NULL); 1467 ASSERT_TRUE(mem != NULL);
1467 gl_->UnmapBufferSubDataCHROMIUM(mem); 1468 gl_->UnmapBufferSubDataCHROMIUM(mem);
1468 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 1469 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
1469 } 1470 }
1470 1471
1471 TEST_F(GLES2ImplementationTest, MapUnmapBufferSubDataCHROMIUMBadArgs) { 1472 TEST_F(GLES2ImplementationTest, MapUnmapBufferSubDataCHROMIUMBadArgs) {
1472 const GLenum kTarget = GL_ELEMENT_ARRAY_BUFFER; 1473 const GLenum kTarget = GL_ELEMENT_ARRAY_BUFFER;
1473 const GLintptr kOffset = 15; 1474 const GLintptr kOffset = 15;
1474 const GLsizeiptr kSize = 16; 1475 const GLsizeiptr kSize = 16;
1475 1476
1476 ExpectedMemoryInfo result1 = 1477 ExpectedMemoryInfo result1 =
1477 GetExpectedResultMemory(sizeof(GetError::Result)); 1478 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
1478 ExpectedMemoryInfo result2 = 1479 ExpectedMemoryInfo result2 =
1479 GetExpectedResultMemory(sizeof(GetError::Result)); 1480 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
1480 ExpectedMemoryInfo result3 = 1481 ExpectedMemoryInfo result3 =
1481 GetExpectedResultMemory(sizeof(GetError::Result)); 1482 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
1482 ExpectedMemoryInfo result4 = 1483 ExpectedMemoryInfo result4 =
1483 GetExpectedResultMemory(sizeof(GetError::Result)); 1484 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
1484 1485
1485 // Calls to flush to wait for GetError 1486 // Calls to flush to wait for GetError
1486 EXPECT_CALL(*command_buffer(), OnFlush()) 1487 EXPECT_CALL(*command_buffer(), OnFlush())
1487 .WillOnce(SetMemory(result1.ptr, GLuint(GL_NO_ERROR))) 1488 .WillOnce(SetMemory(result1.ptr, GLuint(GL_NO_ERROR)))
1488 .WillOnce(SetMemory(result2.ptr, GLuint(GL_NO_ERROR))) 1489 .WillOnce(SetMemory(result2.ptr, GLuint(GL_NO_ERROR)))
1489 .WillOnce(SetMemory(result3.ptr, GLuint(GL_NO_ERROR))) 1490 .WillOnce(SetMemory(result3.ptr, GLuint(GL_NO_ERROR)))
1490 .WillOnce(SetMemory(result4.ptr, GLuint(GL_NO_ERROR))) 1491 .WillOnce(SetMemory(result4.ptr, GLuint(GL_NO_ERROR)))
1491 .RetiresOnSaturation(); 1492 .RetiresOnSaturation();
1492 1493
1493 void* mem; 1494 void* mem;
1494 mem = gl_->MapBufferSubDataCHROMIUM(kTarget, -1, kSize, GL_WRITE_ONLY); 1495 mem = gl_->MapBufferSubDataCHROMIUM(kTarget, -1, kSize, GL_WRITE_ONLY);
1495 ASSERT_TRUE(mem == NULL); 1496 ASSERT_TRUE(mem == NULL);
1496 EXPECT_EQ(static_cast<GLenum>(GL_INVALID_VALUE), gl_->GetError()); 1497 EXPECT_EQ(static_cast<GLenum>(GL_INVALID_VALUE), gl_->GetError());
1497 mem = gl_->MapBufferSubDataCHROMIUM(kTarget, kOffset, -1, GL_WRITE_ONLY); 1498 mem = gl_->MapBufferSubDataCHROMIUM(kTarget, kOffset, -1, GL_WRITE_ONLY);
1498 ASSERT_TRUE(mem == NULL); 1499 ASSERT_TRUE(mem == NULL);
1499 EXPECT_EQ(static_cast<GLenum>(GL_INVALID_VALUE), gl_->GetError()); 1500 EXPECT_EQ(static_cast<GLenum>(GL_INVALID_VALUE), gl_->GetError());
1500 mem = gl_->MapBufferSubDataCHROMIUM(kTarget, kOffset, kSize, GL_READ_ONLY); 1501 mem = gl_->MapBufferSubDataCHROMIUM(kTarget, kOffset, kSize, GL_READ_ONLY);
1501 ASSERT_TRUE(mem == NULL); 1502 ASSERT_TRUE(mem == NULL);
1502 EXPECT_EQ(static_cast<GLenum>(GL_INVALID_ENUM), gl_->GetError()); 1503 EXPECT_EQ(static_cast<GLenum>(GL_INVALID_ENUM), gl_->GetError());
1503 const char* kPtr = "something"; 1504 const char* kPtr = "something";
1504 gl_->UnmapBufferSubDataCHROMIUM(kPtr); 1505 gl_->UnmapBufferSubDataCHROMIUM(kPtr);
1505 EXPECT_EQ(static_cast<GLenum>(GL_INVALID_VALUE), gl_->GetError()); 1506 EXPECT_EQ(static_cast<GLenum>(GL_INVALID_VALUE), gl_->GetError());
1506 } 1507 }
1507 1508
1508 TEST_F(GLES2ImplementationTest, MapUnmapTexSubImage2DCHROMIUM) { 1509 TEST_F(GLES2ImplementationTest, MapUnmapTexSubImage2DCHROMIUM) {
1509 struct Cmds { 1510 struct Cmds {
1510 TexSubImage2D tex; 1511 cmds::TexSubImage2D tex;
1511 cmd::SetToken set_token; 1512 cmd::SetToken set_token;
1512 }; 1513 };
1513 const GLint kLevel = 1; 1514 const GLint kLevel = 1;
1514 const GLint kXOffset = 2; 1515 const GLint kXOffset = 2;
1515 const GLint kYOffset = 3; 1516 const GLint kYOffset = 3;
1516 const GLint kWidth = 4; 1517 const GLint kWidth = 4;
1517 const GLint kHeight = 5; 1518 const GLint kHeight = 5;
1518 const GLenum kFormat = GL_RGBA; 1519 const GLenum kFormat = GL_RGBA;
1519 const GLenum kType = GL_UNSIGNED_BYTE; 1520 const GLenum kType = GL_UNSIGNED_BYTE;
1520 1521
(...skipping 23 matching lines...) Expand all
1544 TEST_F(GLES2ImplementationTest, MapUnmapTexSubImage2DCHROMIUMBadArgs) { 1545 TEST_F(GLES2ImplementationTest, MapUnmapTexSubImage2DCHROMIUMBadArgs) {
1545 const GLint kLevel = 1; 1546 const GLint kLevel = 1;
1546 const GLint kXOffset = 2; 1547 const GLint kXOffset = 2;
1547 const GLint kYOffset = 3; 1548 const GLint kYOffset = 3;
1548 const GLint kWidth = 4; 1549 const GLint kWidth = 4;
1549 const GLint kHeight = 5; 1550 const GLint kHeight = 5;
1550 const GLenum kFormat = GL_RGBA; 1551 const GLenum kFormat = GL_RGBA;
1551 const GLenum kType = GL_UNSIGNED_BYTE; 1552 const GLenum kType = GL_UNSIGNED_BYTE;
1552 1553
1553 ExpectedMemoryInfo result1 = 1554 ExpectedMemoryInfo result1 =
1554 GetExpectedResultMemory(sizeof(GetError::Result)); 1555 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
1555 ExpectedMemoryInfo result2 = 1556 ExpectedMemoryInfo result2 =
1556 GetExpectedResultMemory(sizeof(GetError::Result)); 1557 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
1557 ExpectedMemoryInfo result3 = 1558 ExpectedMemoryInfo result3 =
1558 GetExpectedResultMemory(sizeof(GetError::Result)); 1559 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
1559 ExpectedMemoryInfo result4 = 1560 ExpectedMemoryInfo result4 =
1560 GetExpectedResultMemory(sizeof(GetError::Result)); 1561 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
1561 ExpectedMemoryInfo result5 = 1562 ExpectedMemoryInfo result5 =
1562 GetExpectedResultMemory(sizeof(GetError::Result)); 1563 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
1563 ExpectedMemoryInfo result6 = 1564 ExpectedMemoryInfo result6 =
1564 GetExpectedResultMemory(sizeof(GetError::Result)); 1565 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
1565 ExpectedMemoryInfo result7 = 1566 ExpectedMemoryInfo result7 =
1566 GetExpectedResultMemory(sizeof(GetError::Result)); 1567 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
1567 1568
1568 // Calls to flush to wait for GetError 1569 // Calls to flush to wait for GetError
1569 EXPECT_CALL(*command_buffer(), OnFlush()) 1570 EXPECT_CALL(*command_buffer(), OnFlush())
1570 .WillOnce(SetMemory(result1.ptr, GLuint(GL_NO_ERROR))) 1571 .WillOnce(SetMemory(result1.ptr, GLuint(GL_NO_ERROR)))
1571 .WillOnce(SetMemory(result2.ptr, GLuint(GL_NO_ERROR))) 1572 .WillOnce(SetMemory(result2.ptr, GLuint(GL_NO_ERROR)))
1572 .WillOnce(SetMemory(result3.ptr, GLuint(GL_NO_ERROR))) 1573 .WillOnce(SetMemory(result3.ptr, GLuint(GL_NO_ERROR)))
1573 .WillOnce(SetMemory(result4.ptr, GLuint(GL_NO_ERROR))) 1574 .WillOnce(SetMemory(result4.ptr, GLuint(GL_NO_ERROR)))
1574 .WillOnce(SetMemory(result5.ptr, GLuint(GL_NO_ERROR))) 1575 .WillOnce(SetMemory(result5.ptr, GLuint(GL_NO_ERROR)))
1575 .WillOnce(SetMemory(result6.ptr, GLuint(GL_NO_ERROR))) 1576 .WillOnce(SetMemory(result6.ptr, GLuint(GL_NO_ERROR)))
1576 .WillOnce(SetMemory(result7.ptr, GLuint(GL_NO_ERROR))) 1577 .WillOnce(SetMemory(result7.ptr, GLuint(GL_NO_ERROR)))
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
1656 1657
1657 TEST_F(GLES2ImplementationTest, GetMultipleIntegervCHROMIUMValidArgs) { 1658 TEST_F(GLES2ImplementationTest, GetMultipleIntegervCHROMIUMValidArgs) {
1658 const GLenum pnames[] = { 1659 const GLenum pnames[] = {
1659 GL_DEPTH_WRITEMASK, 1660 GL_DEPTH_WRITEMASK,
1660 GL_COLOR_WRITEMASK, 1661 GL_COLOR_WRITEMASK,
1661 GL_STENCIL_WRITEMASK, 1662 GL_STENCIL_WRITEMASK,
1662 }; 1663 };
1663 const GLint num_results = 6; 1664 const GLint num_results = 6;
1664 GLint results[num_results + 1]; 1665 GLint results[num_results + 1];
1665 struct Cmds { 1666 struct Cmds {
1666 GetMultipleIntegervCHROMIUM get_multiple; 1667 cmds::GetMultipleIntegervCHROMIUM get_multiple;
1667 cmd::SetToken set_token; 1668 cmd::SetToken set_token;
1668 }; 1669 };
1669 const GLsizei kNumPnames = arraysize(pnames); 1670 const GLsizei kNumPnames = arraysize(pnames);
1670 const GLsizeiptr kResultsSize = num_results * sizeof(results[0]); 1671 const GLsizeiptr kResultsSize = num_results * sizeof(results[0]);
1671 const size_t kPNamesSize = kNumPnames * sizeof(pnames[0]); 1672 const size_t kPNamesSize = kNumPnames * sizeof(pnames[0]);
1672 1673
1673 ExpectedMemoryInfo mem1 = GetExpectedMemory(kPNamesSize + kResultsSize); 1674 ExpectedMemoryInfo mem1 = GetExpectedMemory(kPNamesSize + kResultsSize);
1674 ExpectedMemoryInfo result1 = GetExpectedResultMemory( 1675 ExpectedMemoryInfo result1 = GetExpectedResultMemory(
1675 sizeof(GetError::Result)); 1676 sizeof(cmds::GetError::Result));
1676 1677
1677 const uint32 kPnamesOffset = mem1.offset; 1678 const uint32 kPnamesOffset = mem1.offset;
1678 const uint32 kResultsOffset = mem1.offset + kPNamesSize; 1679 const uint32 kResultsOffset = mem1.offset + kPNamesSize;
1679 Cmds expected; 1680 Cmds expected;
1680 expected.get_multiple.Init( 1681 expected.get_multiple.Init(
1681 mem1.id, kPnamesOffset, kNumPnames, 1682 mem1.id, kPnamesOffset, kNumPnames,
1682 mem1.id, kResultsOffset, kResultsSize); 1683 mem1.id, kResultsOffset, kResultsSize);
1683 expected.set_token.Init(GetNextToken()); 1684 expected.set_token.Init(GetNextToken());
1684 1685
1685 const GLint kSentinel = 0x12345678; 1686 const GLint kSentinel = 0x12345678;
(...skipping 22 matching lines...) Expand all
1708 GL_DEPTH_WRITEMASK, 1709 GL_DEPTH_WRITEMASK,
1709 GL_COLOR_WRITEMASK, 1710 GL_COLOR_WRITEMASK,
1710 GL_STENCIL_WRITEMASK, 1711 GL_STENCIL_WRITEMASK,
1711 }; 1712 };
1712 const GLint num_results = 6; 1713 const GLint num_results = 6;
1713 GLint results[num_results + 1]; 1714 GLint results[num_results + 1];
1714 const GLsizei kNumPnames = arraysize(pnames); 1715 const GLsizei kNumPnames = arraysize(pnames);
1715 const GLsizeiptr kResultsSize = num_results * sizeof(results[0]); 1716 const GLsizeiptr kResultsSize = num_results * sizeof(results[0]);
1716 1717
1717 ExpectedMemoryInfo result1 = 1718 ExpectedMemoryInfo result1 =
1718 GetExpectedResultMemory(sizeof(GetError::Result)); 1719 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
1719 ExpectedMemoryInfo result2 = 1720 ExpectedMemoryInfo result2 =
1720 GetExpectedResultMemory(sizeof(GetError::Result)); 1721 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
1721 ExpectedMemoryInfo result3 = 1722 ExpectedMemoryInfo result3 =
1722 GetExpectedResultMemory(sizeof(GetError::Result)); 1723 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
1723 ExpectedMemoryInfo result4 = 1724 ExpectedMemoryInfo result4 =
1724 GetExpectedResultMemory(sizeof(GetError::Result)); 1725 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
1725 1726
1726 // Calls to flush to wait for GetError 1727 // Calls to flush to wait for GetError
1727 EXPECT_CALL(*command_buffer(), OnFlush()) 1728 EXPECT_CALL(*command_buffer(), OnFlush())
1728 .WillOnce(SetMemory(result1.ptr, GLuint(GL_NO_ERROR))) 1729 .WillOnce(SetMemory(result1.ptr, GLuint(GL_NO_ERROR)))
1729 .WillOnce(SetMemory(result2.ptr, GLuint(GL_NO_ERROR))) 1730 .WillOnce(SetMemory(result2.ptr, GLuint(GL_NO_ERROR)))
1730 .WillOnce(SetMemory(result3.ptr, GLuint(GL_NO_ERROR))) 1731 .WillOnce(SetMemory(result3.ptr, GLuint(GL_NO_ERROR)))
1731 .WillOnce(SetMemory(result4.ptr, GLuint(GL_NO_ERROR))) 1732 .WillOnce(SetMemory(result4.ptr, GLuint(GL_NO_ERROR)))
1732 .RetiresOnSaturation(); 1733 .RetiresOnSaturation();
1733 1734
1734 const GLint kSentinel = 0x12345678; 1735 const GLint kSentinel = 0x12345678;
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
1776 const char kBad = 0x12; 1777 const char kBad = 0x12;
1777 GLsizei size = 0; 1778 GLsizei size = 0;
1778 const Str7 kString = {"foobar"}; 1779 const Str7 kString = {"foobar"};
1779 char buf[20]; 1780 char buf[20];
1780 1781
1781 ExpectedMemoryInfo mem1 = 1782 ExpectedMemoryInfo mem1 =
1782 GetExpectedMemory(MaxTransferBufferSize()); 1783 GetExpectedMemory(MaxTransferBufferSize());
1783 ExpectedMemoryInfo result1 = 1784 ExpectedMemoryInfo result1 =
1784 GetExpectedResultMemory(sizeof(cmd::GetBucketStart::Result)); 1785 GetExpectedResultMemory(sizeof(cmd::GetBucketStart::Result));
1785 ExpectedMemoryInfo result2 = 1786 ExpectedMemoryInfo result2 =
1786 GetExpectedResultMemory(sizeof(GetError::Result)); 1787 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
1787 1788
1788 memset(buf, kBad, sizeof(buf)); 1789 memset(buf, kBad, sizeof(buf));
1789 EXPECT_CALL(*command_buffer(), OnFlush()) 1790 EXPECT_CALL(*command_buffer(), OnFlush())
1790 .WillOnce(DoAll(SetMemory(result1.ptr, uint32(sizeof(kString))), 1791 .WillOnce(DoAll(SetMemory(result1.ptr, uint32(sizeof(kString))),
1791 SetMemory(mem1.ptr, kString))) 1792 SetMemory(mem1.ptr, kString)))
1792 .WillOnce(SetMemory(result2.ptr, GLuint(GL_NO_ERROR))) 1793 .WillOnce(SetMemory(result2.ptr, GLuint(GL_NO_ERROR)))
1793 .RetiresOnSaturation(); 1794 .RetiresOnSaturation();
1794 1795
1795 struct Cmds { 1796 struct Cmds {
1796 cmd::SetBucketSize set_bucket_size1; 1797 cmd::SetBucketSize set_bucket_size1;
1797 GetProgramInfoCHROMIUM get_program_info; 1798 cmds::GetProgramInfoCHROMIUM get_program_info;
1798 cmd::GetBucketStart get_bucket_start; 1799 cmd::GetBucketStart get_bucket_start;
1799 cmd::SetToken set_token1; 1800 cmd::SetToken set_token1;
1800 cmd::SetBucketSize set_bucket_size2; 1801 cmd::SetBucketSize set_bucket_size2;
1801 }; 1802 };
1802 Cmds expected; 1803 Cmds expected;
1803 expected.set_bucket_size1.Init(kBucketId, 0); 1804 expected.set_bucket_size1.Init(kBucketId, 0);
1804 expected.get_program_info.Init(kProgramId, kBucketId); 1805 expected.get_program_info.Init(kProgramId, kBucketId);
1805 expected.get_bucket_start.Init( 1806 expected.get_bucket_start.Init(
1806 kBucketId, result1.id, result1.offset, 1807 kBucketId, result1.id, result1.offset,
1807 MaxTransferBufferSize(), mem1.id, mem1.offset); 1808 MaxTransferBufferSize(), mem1.id, mem1.offset);
(...skipping 11 matching lines...) Expand all
1819 const uint32 kBucketId = GLES2Implementation::kResultBucketId; 1820 const uint32 kBucketId = GLES2Implementation::kResultBucketId;
1820 const GLuint kProgramId = 123; 1821 const GLuint kProgramId = 123;
1821 GLsizei size = 0; 1822 GLsizei size = 0;
1822 const Str7 kString = {"foobar"}; 1823 const Str7 kString = {"foobar"};
1823 char buf[20]; 1824 char buf[20];
1824 1825
1825 ExpectedMemoryInfo mem1 = GetExpectedMemory(MaxTransferBufferSize()); 1826 ExpectedMemoryInfo mem1 = GetExpectedMemory(MaxTransferBufferSize());
1826 ExpectedMemoryInfo result1 = 1827 ExpectedMemoryInfo result1 =
1827 GetExpectedResultMemory(sizeof(cmd::GetBucketStart::Result)); 1828 GetExpectedResultMemory(sizeof(cmd::GetBucketStart::Result));
1828 ExpectedMemoryInfo result2 = 1829 ExpectedMemoryInfo result2 =
1829 GetExpectedResultMemory(sizeof(GetError::Result)); 1830 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
1830 ExpectedMemoryInfo result3 = 1831 ExpectedMemoryInfo result3 =
1831 GetExpectedResultMemory(sizeof(GetError::Result)); 1832 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
1832 ExpectedMemoryInfo result4 = 1833 ExpectedMemoryInfo result4 =
1833 GetExpectedResultMemory(sizeof(GetError::Result)); 1834 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
1834 1835
1835 EXPECT_CALL(*command_buffer(), OnFlush()) 1836 EXPECT_CALL(*command_buffer(), OnFlush())
1836 .WillOnce(DoAll(SetMemory(result1.ptr, uint32(sizeof(kString))), 1837 .WillOnce(DoAll(SetMemory(result1.ptr, uint32(sizeof(kString))),
1837 SetMemory(mem1.ptr, kString))) 1838 SetMemory(mem1.ptr, kString)))
1838 .WillOnce(SetMemory(result2.ptr, GLuint(GL_NO_ERROR))) 1839 .WillOnce(SetMemory(result2.ptr, GLuint(GL_NO_ERROR)))
1839 .WillOnce(SetMemory(result3.ptr, GLuint(GL_NO_ERROR))) 1840 .WillOnce(SetMemory(result3.ptr, GLuint(GL_NO_ERROR)))
1840 .WillOnce(SetMemory(result4.ptr, GLuint(GL_NO_ERROR))) 1841 .WillOnce(SetMemory(result4.ptr, GLuint(GL_NO_ERROR)))
1841 .RetiresOnSaturation(); 1842 .RetiresOnSaturation();
1842 1843
1843 // try bufsize not big enough. 1844 // try bufsize not big enough.
1844 struct Cmds { 1845 struct Cmds {
1845 cmd::SetBucketSize set_bucket_size1; 1846 cmd::SetBucketSize set_bucket_size1;
1846 GetProgramInfoCHROMIUM get_program_info; 1847 cmds::GetProgramInfoCHROMIUM get_program_info;
1847 cmd::GetBucketStart get_bucket_start; 1848 cmd::GetBucketStart get_bucket_start;
1848 cmd::SetToken set_token1; 1849 cmd::SetToken set_token1;
1849 cmd::SetBucketSize set_bucket_size2; 1850 cmd::SetBucketSize set_bucket_size2;
1850 }; 1851 };
1851 Cmds expected; 1852 Cmds expected;
1852 expected.set_bucket_size1.Init(kBucketId, 0); 1853 expected.set_bucket_size1.Init(kBucketId, 0);
1853 expected.get_program_info.Init(kProgramId, kBucketId); 1854 expected.get_program_info.Init(kProgramId, kBucketId);
1854 expected.get_bucket_start.Init( 1855 expected.get_bucket_start.Init(
1855 kBucketId, result1.id, result1.offset, 1856 kBucketId, result1.id, result1.offset,
1856 MaxTransferBufferSize(), mem1.id, mem1.offset); 1857 MaxTransferBufferSize(), mem1.id, mem1.offset);
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1902 size_t num_pairs = sizeof(pairs) / sizeof(pairs[0]); 1903 size_t num_pairs = sizeof(pairs) / sizeof(pairs[0]);
1903 for (size_t ii = 0; ii < num_pairs; ++ii) { 1904 for (size_t ii = 0; ii < num_pairs; ++ii) {
1904 const PNameValue& pv = pairs[ii]; 1905 const PNameValue& pv = pairs[ii];
1905 GLint v = -1; 1906 GLint v = -1;
1906 gl_->GetIntegerv(pv.pname, &v); 1907 gl_->GetIntegerv(pv.pname, &v);
1907 EXPECT_TRUE(NoCommandsWritten()); 1908 EXPECT_TRUE(NoCommandsWritten());
1908 EXPECT_EQ(pv.expected, v); 1909 EXPECT_EQ(pv.expected, v);
1909 } 1910 }
1910 1911
1911 ExpectedMemoryInfo result1 = 1912 ExpectedMemoryInfo result1 =
1912 GetExpectedResultMemory(sizeof(GetError::Result)); 1913 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
1913 1914
1914 EXPECT_CALL(*command_buffer(), OnFlush()) 1915 EXPECT_CALL(*command_buffer(), OnFlush())
1915 .WillOnce(SetMemory(result1.ptr, GLuint(GL_NO_ERROR))) 1916 .WillOnce(SetMemory(result1.ptr, GLuint(GL_NO_ERROR)))
1916 .RetiresOnSaturation(); 1917 .RetiresOnSaturation();
1917 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), gl_->GetError()); 1918 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), gl_->GetError());
1918 } 1919 }
1919 1920
1920 TEST_F(GLES2ImplementationTest, GetIntegerCacheWrite) { 1921 TEST_F(GLES2ImplementationTest, GetIntegerCacheWrite) {
1921 struct PNameValue { 1922 struct PNameValue {
1922 GLenum pname; 1923 GLenum pname;
(...skipping 18 matching lines...) Expand all
1941 }; 1942 };
1942 size_t num_pairs = sizeof(pairs) / sizeof(pairs[0]); 1943 size_t num_pairs = sizeof(pairs) / sizeof(pairs[0]);
1943 for (size_t ii = 0; ii < num_pairs; ++ii) { 1944 for (size_t ii = 0; ii < num_pairs; ++ii) {
1944 const PNameValue& pv = pairs[ii]; 1945 const PNameValue& pv = pairs[ii];
1945 GLint v = -1; 1946 GLint v = -1;
1946 gl_->GetIntegerv(pv.pname, &v); 1947 gl_->GetIntegerv(pv.pname, &v);
1947 EXPECT_EQ(pv.expected, v); 1948 EXPECT_EQ(pv.expected, v);
1948 } 1949 }
1949 1950
1950 ExpectedMemoryInfo result1 = 1951 ExpectedMemoryInfo result1 =
1951 GetExpectedResultMemory(sizeof(GetError::Result)); 1952 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
1952 1953
1953 EXPECT_CALL(*command_buffer(), OnFlush()) 1954 EXPECT_CALL(*command_buffer(), OnFlush())
1954 .WillOnce(SetMemory(result1.ptr, GLuint(GL_NO_ERROR))) 1955 .WillOnce(SetMemory(result1.ptr, GLuint(GL_NO_ERROR)))
1955 .RetiresOnSaturation(); 1956 .RetiresOnSaturation();
1956 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), gl_->GetError()); 1957 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), gl_->GetError());
1957 } 1958 }
1958 1959
1959 static bool CheckRect( 1960 static bool CheckRect(
1960 int width, int height, GLenum format, GLenum type, int alignment, 1961 int width, int height, GLenum format, GLenum type, int alignment,
1961 bool flip_y, const uint8* r1, const uint8* r2) { 1962 bool flip_y, const uint8* r1, const uint8* r2) {
(...skipping 23 matching lines...) Expand all
1985 1986
1986 ACTION_P8(CheckRectAction, width, height, format, type, alignment, flip_y, 1987 ACTION_P8(CheckRectAction, width, height, format, type, alignment, flip_y,
1987 r1, r2) { 1988 r1, r2) {
1988 EXPECT_TRUE(CheckRect( 1989 EXPECT_TRUE(CheckRect(
1989 width, height, format, type, alignment, flip_y, r1, r2)); 1990 width, height, format, type, alignment, flip_y, r1, r2));
1990 } 1991 }
1991 1992
1992 // Test TexImage2D with and without flip_y 1993 // Test TexImage2D with and without flip_y
1993 TEST_F(GLES2ImplementationTest, TexImage2D) { 1994 TEST_F(GLES2ImplementationTest, TexImage2D) {
1994 struct Cmds { 1995 struct Cmds {
1995 TexImage2D tex_image_2d; 1996 cmds::TexImage2D tex_image_2d;
1996 cmd::SetToken set_token; 1997 cmd::SetToken set_token;
1997 }; 1998 };
1998 struct Cmds2 { 1999 struct Cmds2 {
1999 TexImage2D tex_image_2d; 2000 cmds::TexImage2D tex_image_2d;
2000 cmd::SetToken set_token; 2001 cmd::SetToken set_token;
2001 }; 2002 };
2002 const GLenum kTarget = GL_TEXTURE_2D; 2003 const GLenum kTarget = GL_TEXTURE_2D;
2003 const GLint kLevel = 0; 2004 const GLint kLevel = 0;
2004 const GLenum kFormat = GL_RGB; 2005 const GLenum kFormat = GL_RGB;
2005 const GLsizei kWidth = 3; 2006 const GLsizei kWidth = 3;
2006 const GLsizei kHeight = 4; 2007 const GLsizei kHeight = 4;
2007 const GLint kBorder = 0; 2008 const GLint kBorder = 0;
2008 const GLenum kType = GL_UNSIGNED_BYTE; 2009 const GLenum kType = GL_UNSIGNED_BYTE;
2009 const GLint kPixelStoreUnpackAlignment = 4; 2010 const GLint kPixelStoreUnpackAlignment = 4;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
2044 pixels); 2045 pixels);
2045 EXPECT_EQ(0, memcmp(&expected2, commands2, sizeof(expected2))); 2046 EXPECT_EQ(0, memcmp(&expected2, commands2, sizeof(expected2)));
2046 EXPECT_TRUE(CheckRect( 2047 EXPECT_TRUE(CheckRect(
2047 kWidth, kHeight, kFormat, kType, kPixelStoreUnpackAlignment, true, 2048 kWidth, kHeight, kFormat, kType, kPixelStoreUnpackAlignment, true,
2048 pixels, mem2.ptr)); 2049 pixels, mem2.ptr));
2049 } 2050 }
2050 2051
2051 // Test TexImage2D with 2 writes 2052 // Test TexImage2D with 2 writes
2052 TEST_F(GLES2ImplementationTest, TexImage2D2Writes) { 2053 TEST_F(GLES2ImplementationTest, TexImage2D2Writes) {
2053 struct Cmds { 2054 struct Cmds {
2054 TexImage2D tex_image_2d; 2055 cmds::TexImage2D tex_image_2d;
2055 TexSubImage2D tex_sub_image_2d1; 2056 cmds::TexSubImage2D tex_sub_image_2d1;
2056 cmd::SetToken set_token1; 2057 cmd::SetToken set_token1;
2057 TexSubImage2D tex_sub_image_2d2; 2058 cmds::TexSubImage2D tex_sub_image_2d2;
2058 cmd::SetToken set_token2; 2059 cmd::SetToken set_token2;
2059 }; 2060 };
2060 const GLenum kTarget = GL_TEXTURE_2D; 2061 const GLenum kTarget = GL_TEXTURE_2D;
2061 const GLint kLevel = 0; 2062 const GLint kLevel = 0;
2062 const GLenum kFormat = GL_RGB; 2063 const GLenum kFormat = GL_RGB;
2063 const GLint kBorder = 0; 2064 const GLint kBorder = 0;
2064 const GLenum kType = GL_UNSIGNED_BYTE; 2065 const GLenum kType = GL_UNSIGNED_BYTE;
2065 const GLint kPixelStoreUnpackAlignment = 4; 2066 const GLint kPixelStoreUnpackAlignment = 4;
2066 const GLsizei kWidth = 3; 2067 const GLsizei kWidth = 3;
2067 2068
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
2160 const GLint kSubImageXOffset = 1; 2161 const GLint kSubImageXOffset = 1;
2161 const GLint kSubImageYOffset = 2; 2162 const GLint kSubImageYOffset = 2;
2162 const GLenum kFormat = GL_RGBA; 2163 const GLenum kFormat = GL_RGBA;
2163 const GLenum kType = GL_UNSIGNED_BYTE; 2164 const GLenum kType = GL_UNSIGNED_BYTE;
2164 const GLenum kTarget = GL_TEXTURE_2D; 2165 const GLenum kTarget = GL_TEXTURE_2D;
2165 const GLint kLevel = 0; 2166 const GLint kLevel = 0;
2166 const GLint kBorder = 0; 2167 const GLint kBorder = 0;
2167 const GLint kPixelStoreUnpackAlignment = 4; 2168 const GLint kPixelStoreUnpackAlignment = 4;
2168 2169
2169 struct Cmds { 2170 struct Cmds {
2170 PixelStorei pixel_store_i1; 2171 cmds::PixelStorei pixel_store_i1;
2171 TexImage2D tex_image_2d; 2172 cmds::TexImage2D tex_image_2d;
2172 PixelStorei pixel_store_i2; 2173 cmds::PixelStorei pixel_store_i2;
2173 TexSubImage2D tex_sub_image_2d1; 2174 cmds::TexSubImage2D tex_sub_image_2d1;
2174 cmd::SetToken set_token1; 2175 cmd::SetToken set_token1;
2175 TexSubImage2D tex_sub_image_2d2; 2176 cmds::TexSubImage2D tex_sub_image_2d2;
2176 cmd::SetToken set_token2; 2177 cmd::SetToken set_token2;
2177 }; 2178 };
2178 2179
2179 uint32 sub_2_high_size = 0; 2180 uint32 sub_2_high_size = 0;
2180 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes( 2181 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes(
2181 kSubImageWidth, 2, kFormat, kType, kPixelStoreUnpackAlignment, 2182 kSubImageWidth, 2, kFormat, kType, kPixelStoreUnpackAlignment,
2182 &sub_2_high_size, NULL, NULL)); 2183 &sub_2_high_size, NULL, NULL));
2183 2184
2184 ExpectedMemoryInfo mem1 = GetExpectedMemory(sub_2_high_size); 2185 ExpectedMemoryInfo mem1 = GetExpectedMemory(sub_2_high_size);
2185 ExpectedMemoryInfo mem2 = GetExpectedMemory(sub_2_high_size); 2186 ExpectedMemoryInfo mem2 = GetExpectedMemory(sub_2_high_size);
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
2239 static const GLint kSrcSubImageWidth = kSrcSubImageX1 - kSrcSubImageX0; 2240 static const GLint kSrcSubImageWidth = kSrcSubImageX1 - kSrcSubImageX0;
2240 static const GLint kSrcSubImageHeight = kSrcSubImageY1 - kSrcSubImageY0; 2241 static const GLint kSrcSubImageHeight = kSrcSubImageY1 - kSrcSubImageY0;
2241 2242
2242 // these are only used in the texsubimage tests 2243 // these are only used in the texsubimage tests
2243 static const GLint kTexWidth = 1023; 2244 static const GLint kTexWidth = 1023;
2244 static const GLint kTexHeight = 511; 2245 static const GLint kTexHeight = 511;
2245 static const GLint kTexSubXOffset = 419; 2246 static const GLint kTexSubXOffset = 419;
2246 static const GLint kTexSubYOffset = 103; 2247 static const GLint kTexSubYOffset = 103;
2247 2248
2248 struct { 2249 struct {
2249 PixelStorei pixel_store_i; 2250 cmds::PixelStorei pixel_store_i;
2250 PixelStorei pixel_store_i2; 2251 cmds::PixelStorei pixel_store_i2;
2251 TexImage2D tex_image_2d; 2252 cmds::TexImage2D tex_image_2d;
2252 } texImageExpected; 2253 } texImageExpected;
2253 2254
2254 struct { 2255 struct {
2255 PixelStorei pixel_store_i; 2256 cmds::PixelStorei pixel_store_i;
2256 PixelStorei pixel_store_i2; 2257 cmds::PixelStorei pixel_store_i2;
2257 TexImage2D tex_image_2d; 2258 cmds::TexImage2D tex_image_2d;
2258 TexSubImage2D tex_sub_image_2d; 2259 cmds::TexSubImage2D tex_sub_image_2d;
2259 } texSubImageExpected; 2260 } texSubImageExpected;
2260 2261
2261 uint32 src_size; 2262 uint32 src_size;
2262 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes( 2263 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes(
2263 kSrcWidth, kSrcSubImageY1, kFormat, kType, 8, &src_size, NULL, NULL)); 2264 kSrcWidth, kSrcSubImageY1, kFormat, kType, 8, &src_size, NULL, NULL));
2264 scoped_array<uint8> src_pixels; 2265 scoped_array<uint8> src_pixels;
2265 src_pixels.reset(new uint8[src_size]); 2266 src_pixels.reset(new uint8[src_size]);
2266 for (size_t i = 0; i < src_size; ++i) { 2267 for (size_t i = 0; i < src_size; ++i) {
2267 src_pixels[i] = static_cast<int8>(i); 2268 src_pixels[i] = static_cast<int8>(i);
2268 } 2269 }
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
2355 { GL_FRAMEBUFFER_BINDING, 3, }, 2356 { GL_FRAMEBUFFER_BINDING, 3, },
2356 { GL_RENDERBUFFER_BINDING, 4, }, 2357 { GL_RENDERBUFFER_BINDING, 4, },
2357 { GL_ARRAY_BUFFER_BINDING, 5, }, 2358 { GL_ARRAY_BUFFER_BINDING, 5, },
2358 { GL_ELEMENT_ARRAY_BUFFER_BINDING, 6, }, 2359 { GL_ELEMENT_ARRAY_BUFFER_BINDING, 6, },
2359 }; 2360 };
2360 size_t num_pairs = sizeof(pairs) / sizeof(pairs[0]); 2361 size_t num_pairs = sizeof(pairs) / sizeof(pairs[0]);
2361 for (size_t ii = 0; ii < num_pairs; ++ii) { 2362 for (size_t ii = 0; ii < num_pairs; ++ii) {
2362 const PNameValue& pv = pairs[ii]; 2363 const PNameValue& pv = pairs[ii];
2363 GLint v = -1; 2364 GLint v = -1;
2364 ExpectedMemoryInfo result1 = 2365 ExpectedMemoryInfo result1 =
2365 GetExpectedResultMemory(sizeof(GetIntegerv::Result)); 2366 GetExpectedResultMemory(sizeof(cmds::GetIntegerv::Result));
2366 EXPECT_CALL(*command_buffer(), OnFlush()) 2367 EXPECT_CALL(*command_buffer(), OnFlush())
2367 .WillOnce(SetMemory(result1.ptr, 2368 .WillOnce(SetMemory(result1.ptr,
2368 SizedResultHelper<GLuint>(pv.expected))) 2369 SizedResultHelper<GLuint>(pv.expected)))
2369 .RetiresOnSaturation(); 2370 .RetiresOnSaturation();
2370 gl_->GetIntegerv(pv.pname, &v); 2371 gl_->GetIntegerv(pv.pname, &v);
2371 EXPECT_EQ(pv.expected, v); 2372 EXPECT_EQ(pv.expected, v);
2372 } 2373 }
2373 } 2374 }
2374 2375
2375 TEST_F(GLES2ImplementationTest, CreateStreamTextureCHROMIUM) { 2376 TEST_F(GLES2ImplementationTest, CreateStreamTextureCHROMIUM) {
2376 const GLuint kTextureId = 123; 2377 const GLuint kTextureId = 123;
2377 const GLuint kResult = 456; 2378 const GLuint kResult = 456;
2378 2379
2379 struct Cmds { 2380 struct Cmds {
2380 CreateStreamTextureCHROMIUM create_stream; 2381 cmds::CreateStreamTextureCHROMIUM create_stream;
2381 }; 2382 };
2382 2383
2383 ExpectedMemoryInfo result1 = 2384 ExpectedMemoryInfo result1 =
2384 GetExpectedResultMemory(sizeof(CreateStreamTextureCHROMIUM::Result)); 2385 GetExpectedResultMemory(
2386 sizeof(cmds::CreateStreamTextureCHROMIUM::Result));
2385 ExpectedMemoryInfo result2 = 2387 ExpectedMemoryInfo result2 =
2386 GetExpectedResultMemory(sizeof(GetError::Result)); 2388 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
2387 2389
2388 Cmds expected; 2390 Cmds expected;
2389 expected.create_stream.Init(kTextureId, result1.id, result1.offset); 2391 expected.create_stream.Init(kTextureId, result1.id, result1.offset);
2390 2392
2391 EXPECT_CALL(*command_buffer(), OnFlush()) 2393 EXPECT_CALL(*command_buffer(), OnFlush())
2392 .WillOnce(SetMemory(result1.ptr, kResult)) 2394 .WillOnce(SetMemory(result1.ptr, kResult))
2393 .WillOnce(SetMemory(result2.ptr, GLuint(GL_NO_ERROR))) 2395 .WillOnce(SetMemory(result2.ptr, GLuint(GL_NO_ERROR)))
2394 .RetiresOnSaturation(); 2396 .RetiresOnSaturation();
2395 2397
2396 GLuint handle = gl_->CreateStreamTextureCHROMIUM(kTextureId); 2398 GLuint handle = gl_->CreateStreamTextureCHROMIUM(kTextureId);
2397 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 2399 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
2398 EXPECT_EQ(handle, kResult); 2400 EXPECT_EQ(handle, kResult);
2399 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), gl_->GetError()); 2401 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), gl_->GetError());
2400 } 2402 }
2401 2403
2402 TEST_F(GLES2ImplementationTest, GetString) { 2404 TEST_F(GLES2ImplementationTest, GetString) {
2403 const uint32 kBucketId = GLES2Implementation::kResultBucketId; 2405 const uint32 kBucketId = GLES2Implementation::kResultBucketId;
2404 const Str7 kString = {"foobar"}; 2406 const Str7 kString = {"foobar"};
2405 // GL_CHROMIUM_map_sub GL_CHROMIUM_flipy are hard coded into 2407 // GL_CHROMIUM_map_sub GL_CHROMIUM_flipy are hard coded into
2406 // GLES2Implementation. 2408 // GLES2Implementation.
2407 const char* expected_str = 2409 const char* expected_str =
2408 "foobar " 2410 "foobar "
2409 "GL_CHROMIUM_flipy " 2411 "GL_CHROMIUM_flipy "
2410 "GL_CHROMIUM_map_sub " 2412 "GL_CHROMIUM_map_sub "
2411 "GL_CHROMIUM_shallow_flush " 2413 "GL_CHROMIUM_shallow_flush "
2412 "GL_EXT_unpack_subimage"; 2414 "GL_EXT_unpack_subimage";
2413 const char kBad = 0x12; 2415 const char kBad = 0x12;
2414 struct Cmds { 2416 struct Cmds {
2415 cmd::SetBucketSize set_bucket_size1; 2417 cmd::SetBucketSize set_bucket_size1;
2416 GetString get_string; 2418 cmds::GetString get_string;
2417 cmd::GetBucketStart get_bucket_start; 2419 cmd::GetBucketStart get_bucket_start;
2418 cmd::SetToken set_token1; 2420 cmd::SetToken set_token1;
2419 cmd::SetBucketSize set_bucket_size2; 2421 cmd::SetBucketSize set_bucket_size2;
2420 }; 2422 };
2421 ExpectedMemoryInfo mem1 = GetExpectedMemory(MaxTransferBufferSize()); 2423 ExpectedMemoryInfo mem1 = GetExpectedMemory(MaxTransferBufferSize());
2422 ExpectedMemoryInfo result1 = 2424 ExpectedMemoryInfo result1 =
2423 GetExpectedResultMemory(sizeof(cmd::GetBucketStart::Result)); 2425 GetExpectedResultMemory(sizeof(cmd::GetBucketStart::Result));
2424 Cmds expected; 2426 Cmds expected;
2425 expected.set_bucket_size1.Init(kBucketId, 0); 2427 expected.set_bucket_size1.Init(kBucketId, 0);
2426 expected.get_string.Init(GL_EXTENSIONS, kBucketId); 2428 expected.get_string.Init(GL_EXTENSIONS, kBucketId);
(...skipping 13 matching lines...) Expand all
2440 const GLubyte* result = gl_->GetString(GL_EXTENSIONS); 2442 const GLubyte* result = gl_->GetString(GL_EXTENSIONS);
2441 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 2443 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
2442 EXPECT_STREQ(expected_str, reinterpret_cast<const char*>(result)); 2444 EXPECT_STREQ(expected_str, reinterpret_cast<const char*>(result));
2443 } 2445 }
2444 2446
2445 TEST_F(GLES2ImplementationTest, PixelStoreiGLPackReverseRowOrderANGLE) { 2447 TEST_F(GLES2ImplementationTest, PixelStoreiGLPackReverseRowOrderANGLE) {
2446 const uint32 kBucketId = GLES2Implementation::kResultBucketId; 2448 const uint32 kBucketId = GLES2Implementation::kResultBucketId;
2447 const Str7 kString = {"foobar"}; 2449 const Str7 kString = {"foobar"};
2448 struct Cmds { 2450 struct Cmds {
2449 cmd::SetBucketSize set_bucket_size1; 2451 cmd::SetBucketSize set_bucket_size1;
2450 GetString get_string; 2452 cmds::GetString get_string;
2451 cmd::GetBucketStart get_bucket_start; 2453 cmd::GetBucketStart get_bucket_start;
2452 cmd::SetToken set_token1; 2454 cmd::SetToken set_token1;
2453 cmd::SetBucketSize set_bucket_size2; 2455 cmd::SetBucketSize set_bucket_size2;
2454 PixelStorei pixel_store; 2456 cmds::PixelStorei pixel_store;
2455 }; 2457 };
2456 2458
2457 ExpectedMemoryInfo mem1 = GetExpectedMemory(MaxTransferBufferSize()); 2459 ExpectedMemoryInfo mem1 = GetExpectedMemory(MaxTransferBufferSize());
2458 ExpectedMemoryInfo result1 = 2460 ExpectedMemoryInfo result1 =
2459 GetExpectedResultMemory(sizeof(cmd::GetBucketStart::Result)); 2461 GetExpectedResultMemory(sizeof(cmd::GetBucketStart::Result));
2460 2462
2461 Cmds expected; 2463 Cmds expected;
2462 expected.set_bucket_size1.Init(kBucketId, 0); 2464 expected.set_bucket_size1.Init(kBucketId, 0);
2463 expected.get_string.Init(GL_EXTENSIONS, kBucketId); 2465 expected.get_string.Init(GL_EXTENSIONS, kBucketId);
2464 expected.get_bucket_start.Init( 2466 expected.get_bucket_start.Init(
2465 kBucketId, result1.id, result1.offset, 2467 kBucketId, result1.id, result1.offset,
2466 MaxTransferBufferSize(), mem1.id, mem1.offset); 2468 MaxTransferBufferSize(), mem1.id, mem1.offset);
2467 expected.set_token1.Init(GetNextToken()); 2469 expected.set_token1.Init(GetNextToken());
2468 expected.set_bucket_size2.Init(kBucketId, 0); 2470 expected.set_bucket_size2.Init(kBucketId, 0);
2469 expected.pixel_store.Init(GL_PACK_REVERSE_ROW_ORDER_ANGLE, 1); 2471 expected.pixel_store.Init(GL_PACK_REVERSE_ROW_ORDER_ANGLE, 1);
2470 2472
2471 EXPECT_CALL(*command_buffer(), OnFlush()) 2473 EXPECT_CALL(*command_buffer(), OnFlush())
2472 .WillOnce(DoAll(SetMemory(result1.ptr, uint32(sizeof(kString))), 2474 .WillOnce(DoAll(SetMemory(result1.ptr, uint32(sizeof(kString))),
2473 SetMemory(mem1.ptr, kString))) 2475 SetMemory(mem1.ptr, kString)))
2474 .RetiresOnSaturation(); 2476 .RetiresOnSaturation();
2475 2477
2476 gl_->PixelStorei(GL_PACK_REVERSE_ROW_ORDER_ANGLE, 1); 2478 gl_->PixelStorei(GL_PACK_REVERSE_ROW_ORDER_ANGLE, 1);
2477 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 2479 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
2478 } 2480 }
2479 2481
2480 TEST_F(GLES2ImplementationTest, CreateProgram) { 2482 TEST_F(GLES2ImplementationTest, CreateProgram) {
2481 struct Cmds { 2483 struct Cmds {
2482 CreateProgram cmd; 2484 cmds::CreateProgram cmd;
2483 }; 2485 };
2484 2486
2485 Cmds expected; 2487 Cmds expected;
2486 expected.cmd.Init(kProgramsAndShadersStartId); 2488 expected.cmd.Init(kProgramsAndShadersStartId);
2487 GLuint id = gl_->CreateProgram(); 2489 GLuint id = gl_->CreateProgram();
2488 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 2490 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
2489 EXPECT_EQ(kProgramsAndShadersStartId, id); 2491 EXPECT_EQ(kProgramsAndShadersStartId, id);
2490 } 2492 }
2491 2493
2492 TEST_F(GLES2ImplementationTest, BufferDataLargerThanTransferBuffer) { 2494 TEST_F(GLES2ImplementationTest, BufferDataLargerThanTransferBuffer) {
2493 struct Cmds { 2495 struct Cmds {
2494 BufferData set_size; 2496 cmds::BufferData set_size;
2495 BufferSubData copy_data1; 2497 cmds::BufferSubData copy_data1;
2496 cmd::SetToken set_token1; 2498 cmd::SetToken set_token1;
2497 BufferSubData copy_data2; 2499 cmds::BufferSubData copy_data2;
2498 cmd::SetToken set_token2; 2500 cmd::SetToken set_token2;
2499 }; 2501 };
2500 const unsigned kUsableSize = 2502 const unsigned kUsableSize =
2501 kTransferBufferSize - GLES2Implementation::kStartingOffset; 2503 kTransferBufferSize - GLES2Implementation::kStartingOffset;
2502 uint8 buf[kUsableSize * 2] = { 0, }; 2504 uint8 buf[kUsableSize * 2] = { 0, };
2503 2505
2504 ExpectedMemoryInfo mem1 = GetExpectedMemory(kUsableSize); 2506 ExpectedMemoryInfo mem1 = GetExpectedMemory(kUsableSize);
2505 ExpectedMemoryInfo mem2 = GetExpectedMemory(kUsableSize); 2507 ExpectedMemoryInfo mem2 = GetExpectedMemory(kUsableSize);
2506 2508
2507 Cmds expected; 2509 Cmds expected;
(...skipping 15 matching lines...) Expand all
2523 GL_BLEND, 2525 GL_BLEND,
2524 GL_CULL_FACE, 2526 GL_CULL_FACE,
2525 GL_DEPTH_TEST, 2527 GL_DEPTH_TEST,
2526 GL_POLYGON_OFFSET_FILL, 2528 GL_POLYGON_OFFSET_FILL,
2527 GL_SAMPLE_ALPHA_TO_COVERAGE, 2529 GL_SAMPLE_ALPHA_TO_COVERAGE,
2528 GL_SAMPLE_COVERAGE, 2530 GL_SAMPLE_COVERAGE,
2529 GL_SCISSOR_TEST, 2531 GL_SCISSOR_TEST,
2530 GL_STENCIL_TEST, 2532 GL_STENCIL_TEST,
2531 }; 2533 };
2532 struct Cmds { 2534 struct Cmds {
2533 Enable enable_cmd; 2535 cmds::Enable enable_cmd;
2534 }; 2536 };
2535 Cmds expected; 2537 Cmds expected;
2536 2538
2537 for (size_t ii = 0; ii < arraysize(kStates); ++ii) { 2539 for (size_t ii = 0; ii < arraysize(kStates); ++ii) {
2538 GLenum state = kStates[ii]; 2540 GLenum state = kStates[ii];
2539 expected.enable_cmd.Init(state); 2541 expected.enable_cmd.Init(state);
2540 GLboolean result = gl_->IsEnabled(state); 2542 GLboolean result = gl_->IsEnabled(state);
2541 EXPECT_EQ(static_cast<GLboolean>(ii == 0), result); 2543 EXPECT_EQ(static_cast<GLboolean>(ii == 0), result);
2542 EXPECT_TRUE(NoCommandsWritten()); 2544 EXPECT_TRUE(NoCommandsWritten());
2543 const void* commands = GetPut(); 2545 const void* commands = GetPut();
2544 if (!result) { 2546 if (!result) {
2545 gl_->Enable(state); 2547 gl_->Enable(state);
2546 EXPECT_EQ(0, memcmp(&expected, commands, sizeof(expected))); 2548 EXPECT_EQ(0, memcmp(&expected, commands, sizeof(expected)));
2547 } 2549 }
2548 ClearCommands(); 2550 ClearCommands();
2549 result = gl_->IsEnabled(state); 2551 result = gl_->IsEnabled(state);
2550 EXPECT_TRUE(result); 2552 EXPECT_TRUE(result);
2551 EXPECT_TRUE(NoCommandsWritten()); 2553 EXPECT_TRUE(NoCommandsWritten());
2552 } 2554 }
2553 } 2555 }
2554 2556
2555 TEST_F(GLES2ImplementationTest, BindVertexArrayOES) { 2557 TEST_F(GLES2ImplementationTest, BindVertexArrayOES) {
2556 GLuint id = 0; 2558 GLuint id = 0;
2557 gl_->GenVertexArraysOES(1, &id); 2559 gl_->GenVertexArraysOES(1, &id);
2558 ClearCommands(); 2560 ClearCommands();
2559 2561
2560 struct Cmds { 2562 struct Cmds {
2561 BindVertexArrayOES cmd; 2563 cmds::BindVertexArrayOES cmd;
2562 }; 2564 };
2563 Cmds expected; 2565 Cmds expected;
2564 expected.cmd.Init(id); 2566 expected.cmd.Init(id);
2565 2567
2566 const void* commands = GetPut(); 2568 const void* commands = GetPut();
2567 gl_->BindVertexArrayOES(id); 2569 gl_->BindVertexArrayOES(id);
2568 EXPECT_EQ(0, memcmp(&expected, commands, sizeof(expected))); 2570 EXPECT_EQ(0, memcmp(&expected, commands, sizeof(expected)));
2569 ClearCommands(); 2571 ClearCommands();
2570 gl_->BindVertexArrayOES(id); 2572 gl_->BindVertexArrayOES(id);
2571 EXPECT_TRUE(NoCommandsWritten()); 2573 EXPECT_TRUE(NoCommandsWritten());
2572 } 2574 }
2573 2575
2574 TEST_F(GLES2ImplementationTest, BeginEndQueryEXT) { 2576 TEST_F(GLES2ImplementationTest, BeginEndQueryEXT) {
2575 // Test GetQueryivEXT returns 0 if no current query. 2577 // Test GetQueryivEXT returns 0 if no current query.
2576 GLint param = -1; 2578 GLint param = -1;
2577 gl_->GetQueryivEXT(GL_ANY_SAMPLES_PASSED_EXT, GL_CURRENT_QUERY_EXT, &param); 2579 gl_->GetQueryivEXT(GL_ANY_SAMPLES_PASSED_EXT, GL_CURRENT_QUERY_EXT, &param);
2578 EXPECT_EQ(0, param); 2580 EXPECT_EQ(0, param);
2579 2581
2580 GLuint expected_ids[2] = { 1, 2 }; // These must match what's actually genned. 2582 GLuint expected_ids[2] = { 1, 2 }; // These must match what's actually genned.
2581 struct GenCmds { 2583 struct GenCmds {
2582 GenQueriesEXTImmediate gen; 2584 cmds::GenQueriesEXTImmediate gen;
2583 GLuint data[2]; 2585 GLuint data[2];
2584 }; 2586 };
2585 GenCmds expected_gen_cmds; 2587 GenCmds expected_gen_cmds;
2586 expected_gen_cmds.gen.Init(arraysize(expected_ids), &expected_ids[0]); 2588 expected_gen_cmds.gen.Init(arraysize(expected_ids), &expected_ids[0]);
2587 GLuint ids[arraysize(expected_ids)] = { 0, }; 2589 GLuint ids[arraysize(expected_ids)] = { 0, };
2588 gl_->GenQueriesEXT(arraysize(expected_ids), &ids[0]); 2590 gl_->GenQueriesEXT(arraysize(expected_ids), &ids[0]);
2589 EXPECT_EQ(0, memcmp( 2591 EXPECT_EQ(0, memcmp(
2590 &expected_gen_cmds, commands_, sizeof(expected_gen_cmds))); 2592 &expected_gen_cmds, commands_, sizeof(expected_gen_cmds)));
2591 GLuint id1 = ids[0]; 2593 GLuint id1 = ids[0];
2592 GLuint id2 = ids[1]; 2594 GLuint id2 = ids[1];
2593 ClearCommands(); 2595 ClearCommands();
2594 2596
2595 // Test BeginQueryEXT fails if id = 0. 2597 // Test BeginQueryEXT fails if id = 0.
2596 gl_->BeginQueryEXT(GL_ANY_SAMPLES_PASSED_EXT, 0); 2598 gl_->BeginQueryEXT(GL_ANY_SAMPLES_PASSED_EXT, 0);
2597 EXPECT_TRUE(NoCommandsWritten()); 2599 EXPECT_TRUE(NoCommandsWritten());
2598 EXPECT_EQ(GL_INVALID_OPERATION, CheckError()); 2600 EXPECT_EQ(GL_INVALID_OPERATION, CheckError());
2599 2601
2600 // Test BeginQueryEXT fails if id not GENed. 2602 // Test BeginQueryEXT fails if id not GENed.
2601 // TODO(gman): 2603 // TODO(gman):
2602 2604
2603 // Test BeginQueryEXT inserts command. 2605 // Test BeginQueryEXT inserts command.
2604 struct BeginCmds { 2606 struct BeginCmds {
2605 BeginQueryEXT begin_query; 2607 cmds::BeginQueryEXT begin_query;
2606 }; 2608 };
2607 BeginCmds expected_begin_cmds; 2609 BeginCmds expected_begin_cmds;
2608 const void* commands = GetPut(); 2610 const void* commands = GetPut();
2609 gl_->BeginQueryEXT(GL_ANY_SAMPLES_PASSED_EXT, id1); 2611 gl_->BeginQueryEXT(GL_ANY_SAMPLES_PASSED_EXT, id1);
2610 QueryTracker::Query* query = GetQuery(id1); 2612 QueryTracker::Query* query = GetQuery(id1);
2611 ASSERT_TRUE(query != NULL); 2613 ASSERT_TRUE(query != NULL);
2612 expected_begin_cmds.begin_query.Init( 2614 expected_begin_cmds.begin_query.Init(
2613 GL_ANY_SAMPLES_PASSED_EXT, id1, query->shm_id(), query->shm_offset()); 2615 GL_ANY_SAMPLES_PASSED_EXT, id1, query->shm_id(), query->shm_offset());
2614 EXPECT_EQ(0, memcmp( 2616 EXPECT_EQ(0, memcmp(
2615 &expected_begin_cmds, commands, sizeof(expected_begin_cmds))); 2617 &expected_begin_cmds, commands, sizeof(expected_begin_cmds)));
(...skipping 13 matching lines...) Expand all
2629 EXPECT_EQ(GL_INVALID_OPERATION, CheckError()); 2631 EXPECT_EQ(GL_INVALID_OPERATION, CheckError());
2630 2632
2631 // Test EndQueryEXT fails if target not same as current query. 2633 // Test EndQueryEXT fails if target not same as current query.
2632 ClearCommands(); 2634 ClearCommands();
2633 gl_->EndQueryEXT(GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT); 2635 gl_->EndQueryEXT(GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT);
2634 EXPECT_TRUE(NoCommandsWritten()); 2636 EXPECT_TRUE(NoCommandsWritten());
2635 EXPECT_EQ(GL_INVALID_OPERATION, CheckError()); 2637 EXPECT_EQ(GL_INVALID_OPERATION, CheckError());
2636 2638
2637 // Test EndQueryEXT sends command 2639 // Test EndQueryEXT sends command
2638 struct EndCmds { 2640 struct EndCmds {
2639 EndQueryEXT end_query; 2641 cmds::EndQueryEXT end_query;
2640 }; 2642 };
2641 EndCmds expected_end_cmds; 2643 EndCmds expected_end_cmds;
2642 expected_end_cmds.end_query.Init( 2644 expected_end_cmds.end_query.Init(
2643 GL_ANY_SAMPLES_PASSED_EXT, query->submit_count()); 2645 GL_ANY_SAMPLES_PASSED_EXT, query->submit_count());
2644 commands = GetPut(); 2646 commands = GetPut();
2645 gl_->EndQueryEXT(GL_ANY_SAMPLES_PASSED_EXT); 2647 gl_->EndQueryEXT(GL_ANY_SAMPLES_PASSED_EXT);
2646 EXPECT_EQ(0, memcmp( 2648 EXPECT_EQ(0, memcmp(
2647 &expected_end_cmds, commands, sizeof(expected_end_cmds))); 2649 &expected_end_cmds, commands, sizeof(expected_end_cmds)));
2648 2650
2649 // Test EndQueryEXT fails if no current query. 2651 // Test EndQueryEXT fails if no current query.
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
2697 ClearCommands(); 2699 ClearCommands();
2698 2700
2699 // Test BeginQueryEXT does NOT insert commands. 2701 // Test BeginQueryEXT does NOT insert commands.
2700 gl_->BeginQueryEXT(GL_GET_ERROR_QUERY_CHROMIUM, id); 2702 gl_->BeginQueryEXT(GL_GET_ERROR_QUERY_CHROMIUM, id);
2701 EXPECT_TRUE(NoCommandsWritten()); 2703 EXPECT_TRUE(NoCommandsWritten());
2702 QueryTracker::Query* query = GetQuery(id); 2704 QueryTracker::Query* query = GetQuery(id);
2703 ASSERT_TRUE(query != NULL); 2705 ASSERT_TRUE(query != NULL);
2704 2706
2705 // Test EndQueryEXT sends both begin and end command 2707 // Test EndQueryEXT sends both begin and end command
2706 struct EndCmds { 2708 struct EndCmds {
2707 BeginQueryEXT begin_query; 2709 cmds::BeginQueryEXT begin_query;
2708 EndQueryEXT end_query; 2710 cmds::EndQueryEXT end_query;
2709 }; 2711 };
2710 EndCmds expected_end_cmds; 2712 EndCmds expected_end_cmds;
2711 expected_end_cmds.begin_query.Init( 2713 expected_end_cmds.begin_query.Init(
2712 GL_GET_ERROR_QUERY_CHROMIUM, id, query->shm_id(), query->shm_offset()); 2714 GL_GET_ERROR_QUERY_CHROMIUM, id, query->shm_id(), query->shm_offset());
2713 expected_end_cmds.end_query.Init( 2715 expected_end_cmds.end_query.Init(
2714 GL_GET_ERROR_QUERY_CHROMIUM, query->submit_count()); 2716 GL_GET_ERROR_QUERY_CHROMIUM, query->submit_count());
2715 const void* commands = GetPut(); 2717 const void* commands = GetPut();
2716 gl_->EndQueryEXT(GL_GET_ERROR_QUERY_CHROMIUM); 2718 gl_->EndQueryEXT(GL_GET_ERROR_QUERY_CHROMIUM);
2717 EXPECT_EQ(0, memcmp( 2719 EXPECT_EQ(0, memcmp(
2718 &expected_end_cmds, commands, sizeof(expected_end_cmds))); 2720 &expected_end_cmds, commands, sizeof(expected_end_cmds)));
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
2767 EXPECT_EQ(GL_INVALID_OPERATION, CheckError()); 2769 EXPECT_EQ(GL_INVALID_OPERATION, CheckError());
2768 2770
2769 gl_->VertexAttribPointer( 2771 gl_->VertexAttribPointer(
2770 kAttribIndex1, kNumComponents1, GL_FLOAT, GL_FALSE, kClientStride, NULL); 2772 kAttribIndex1, kNumComponents1, GL_FLOAT, GL_FALSE, kClientStride, NULL);
2771 EXPECT_EQ(GL_NO_ERROR, CheckError()); 2773 EXPECT_EQ(GL_NO_ERROR, CheckError());
2772 } 2774 }
2773 #endif 2775 #endif
2774 2776
2775 TEST_F(GLES2ImplementationTest, Disable) { 2777 TEST_F(GLES2ImplementationTest, Disable) {
2776 struct Cmds { 2778 struct Cmds {
2777 Disable cmd; 2779 cmds::Disable cmd;
2778 }; 2780 };
2779 Cmds expected; 2781 Cmds expected;
2780 expected.cmd.Init(GL_DITHER); // Note: DITHER defaults to enabled. 2782 expected.cmd.Init(GL_DITHER); // Note: DITHER defaults to enabled.
2781 2783
2782 gl_->Disable(GL_DITHER); 2784 gl_->Disable(GL_DITHER);
2783 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 2785 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
2784 // Check it's cached and not called again. 2786 // Check it's cached and not called again.
2785 ClearCommands(); 2787 ClearCommands();
2786 gl_->Disable(GL_DITHER); 2788 gl_->Disable(GL_DITHER);
2787 EXPECT_TRUE(NoCommandsWritten()); 2789 EXPECT_TRUE(NoCommandsWritten());
2788 } 2790 }
2789 2791
2790 TEST_F(GLES2ImplementationTest, Enable) { 2792 TEST_F(GLES2ImplementationTest, Enable) {
2791 struct Cmds { 2793 struct Cmds {
2792 Enable cmd; 2794 cmds::Enable cmd;
2793 }; 2795 };
2794 Cmds expected; 2796 Cmds expected;
2795 expected.cmd.Init(GL_BLEND); // Note: BLEND defaults to disabled. 2797 expected.cmd.Init(GL_BLEND); // Note: BLEND defaults to disabled.
2796 2798
2797 gl_->Enable(GL_BLEND); 2799 gl_->Enable(GL_BLEND);
2798 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 2800 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
2799 // Check it's cached and not called again. 2801 // Check it's cached and not called again.
2800 ClearCommands(); 2802 ClearCommands();
2801 gl_->Enable(GL_BLEND); 2803 gl_->Enable(GL_BLEND);
2802 EXPECT_TRUE(NoCommandsWritten()); 2804 EXPECT_TRUE(NoCommandsWritten());
2803 } 2805 }
2804 2806
2805 2807
2806 #include "gpu/command_buffer/client/gles2_implementation_unittest_autogen.h" 2808 #include "gpu/command_buffer/client/gles2_implementation_unittest_autogen.h"
2807 2809
2808 } // namespace gles2 2810 } // namespace gles2
2809 } // namespace gpu 2811 } // namespace gpu
2810 2812
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698