OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/strings/string_number_conversions.h" | 8 #include "base/strings/string_number_conversions.h" |
9 #include "gpu/command_buffer/common/gles2_cmd_format.h" | 9 #include "gpu/command_buffer/common/gles2_cmd_format.h" |
10 #include "gpu/command_buffer/common/gles2_cmd_utils.h" | 10 #include "gpu/command_buffer/common/gles2_cmd_utils.h" |
(...skipping 777 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
788 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 788 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
789 } | 789 } |
790 | 790 |
791 TEST_P(GLES2DecoderWithShaderTest, Uniform1iValidArgs) { | 791 TEST_P(GLES2DecoderWithShaderTest, Uniform1iValidArgs) { |
792 EXPECT_CALL(*gl_, Uniform1i(kUniform1RealLocation, 2)); | 792 EXPECT_CALL(*gl_, Uniform1i(kUniform1RealLocation, 2)); |
793 Uniform1i cmd; | 793 Uniform1i cmd; |
794 cmd.Init(kUniform1FakeLocation, 2); | 794 cmd.Init(kUniform1FakeLocation, 2); |
795 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 795 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
796 } | 796 } |
797 | 797 |
798 TEST_P(GLES2DecoderWithShaderTest, Uniform1ivValidArgs) { | |
799 EXPECT_CALL( | |
800 *gl_, | |
801 Uniform1iv(kUniform1RealLocation, | |
802 1, | |
803 reinterpret_cast<const GLint*>(shared_memory_address_))); | |
804 Uniform1iv cmd; | |
805 cmd.Init(kUniform1FakeLocation, 1, shared_memory_id_, shared_memory_offset_); | |
806 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | |
807 } | |
808 | |
809 TEST_P(GLES2DecoderWithShaderTest, Uniform1ivInvalidArgs2_0) { | |
810 EXPECT_CALL(*gl_, Uniform1iv(_, _, _)).Times(0); | |
811 Uniform1iv cmd; | |
812 cmd.Init(kUniform1FakeLocation, 1, kInvalidSharedMemoryId, 0); | |
813 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); | |
814 } | |
815 | |
816 TEST_P(GLES2DecoderWithShaderTest, Uniform1ivInvalidArgs2_1) { | |
817 EXPECT_CALL(*gl_, Uniform1iv(_, _, _)).Times(0); | |
818 Uniform1iv cmd; | |
819 cmd.Init( | |
820 kUniform1FakeLocation, 1, shared_memory_id_, kInvalidSharedMemoryOffset); | |
821 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); | |
822 } | |
823 | |
824 TEST_P(GLES2DecoderWithShaderTest, Uniform1ivImmediateValidArgs) { | 798 TEST_P(GLES2DecoderWithShaderTest, Uniform1ivImmediateValidArgs) { |
825 Uniform1ivImmediate& cmd = *GetImmediateAs<Uniform1ivImmediate>(); | 799 Uniform1ivImmediate& cmd = *GetImmediateAs<Uniform1ivImmediate>(); |
826 EXPECT_CALL(*gl_, | 800 EXPECT_CALL(*gl_, |
827 Uniform1iv(kUniform1RealLocation, | 801 Uniform1iv(kUniform1RealLocation, |
828 1, | 802 1, |
829 reinterpret_cast<GLint*>(ImmediateDataAddress(&cmd)))); | 803 reinterpret_cast<GLint*>(ImmediateDataAddress(&cmd)))); |
830 GLint temp[1 * 2] = { | 804 GLint temp[1 * 2] = { |
831 0, | 805 0, |
832 }; | 806 }; |
833 cmd.Init(kUniform1FakeLocation, 1, &temp[0]); | 807 cmd.Init(kUniform1FakeLocation, 1, &temp[0]); |
834 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); | 808 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); |
835 } | 809 } |
836 | 810 |
837 TEST_P(GLES2DecoderWithShaderTest, Uniform1ivInvalidValidArgs) { | 811 TEST_P(GLES2DecoderWithShaderTest, Uniform1ivImmediateInvalidValidArgs) { |
838 EXPECT_CALL(*gl_, Uniform1iv(_, _, _)).Times(0); | 812 EXPECT_CALL(*gl_, Uniform1iv(_, _, _)).Times(0); |
839 Uniform1iv cmd; | 813 Uniform1ivImmediate& cmd = *GetImmediateAs<Uniform1ivImmediate>(); |
840 cmd.Init(kUniform1FakeLocation, 2, shared_memory_id_, shared_memory_offset_); | 814 GLint temp[1 * 2] = { |
841 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 815 0, |
| 816 }; |
| 817 cmd.Init(kUniform1FakeLocation, 2, &temp[0]); |
| 818 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); |
842 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); | 819 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); |
843 } | 820 } |
844 | 821 |
845 TEST_P(GLES2DecoderWithShaderTest, Uniform1ivZeroCount) { | 822 TEST_P(GLES2DecoderWithShaderTest, Uniform1ivZeroCount) { |
846 EXPECT_CALL(*gl_, Uniform1iv(_, _, _)).Times(0); | 823 EXPECT_CALL(*gl_, Uniform1iv(_, _, _)).Times(0); |
847 Uniform1iv cmd; | 824 Uniform1ivImmediate& cmd = *GetImmediateAs<Uniform1ivImmediate>(); |
848 cmd.Init(kUniform1FakeLocation, 0, shared_memory_id_, shared_memory_offset_); | 825 GLint temp = 0; |
849 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 826 cmd.Init(kUniform1FakeLocation, 0, &temp); |
| 827 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); |
850 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 828 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
851 } | 829 } |
852 | 830 |
853 TEST_P(GLES2DecoderWithShaderTest, Uniform1iSamplerIsLmited) { | 831 TEST_P(GLES2DecoderWithShaderTest, Uniform1iSamplerIsLmited) { |
854 EXPECT_CALL(*gl_, Uniform1i(_, _)).Times(0); | 832 EXPECT_CALL(*gl_, Uniform1i(_, _)).Times(0); |
855 Uniform1i cmd; | 833 Uniform1i cmd; |
856 cmd.Init(kUniform1FakeLocation, kNumTextureUnits); | 834 cmd.Init(kUniform1FakeLocation, kNumTextureUnits); |
857 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 835 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
858 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); | 836 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); |
859 } | 837 } |
(...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1382 } | 1360 } |
1383 | 1361 |
1384 // TODO(gman): DeleteProgram | 1362 // TODO(gman): DeleteProgram |
1385 | 1363 |
1386 // TODO(gman): UseProgram | 1364 // TODO(gman): UseProgram |
1387 | 1365 |
1388 // TODO(gman): DeleteShader | 1366 // TODO(gman): DeleteShader |
1389 | 1367 |
1390 } // namespace gles2 | 1368 } // namespace gles2 |
1391 } // namespace gpu | 1369 } // namespace gpu |
OLD | NEW |