| 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 <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 1781 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1792 cmd.Init(kUniform4FakeLocation, 2); | 1792 cmd.Init(kUniform4FakeLocation, 2); |
| 1793 decoder_->set_unsafe_es3_apis_enabled(true); | 1793 decoder_->set_unsafe_es3_apis_enabled(true); |
| 1794 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 1794 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 1795 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 1795 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 1796 decoder_->set_unsafe_es3_apis_enabled(false); | 1796 decoder_->set_unsafe_es3_apis_enabled(false); |
| 1797 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd)); | 1797 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd)); |
| 1798 } | 1798 } |
| 1799 | 1799 |
| 1800 TEST_P(GLES2DecoderWithShaderTest, Uniform1ivImmediateValidArgs) { | 1800 TEST_P(GLES2DecoderWithShaderTest, Uniform1ivImmediateValidArgs) { |
| 1801 Uniform1ivImmediate& cmd = *GetImmediateAs<Uniform1ivImmediate>(); | 1801 Uniform1ivImmediate& cmd = *GetImmediateAs<Uniform1ivImmediate>(); |
| 1802 EXPECT_CALL(*gl_, | 1802 GLint temp[1] = { |
| 1803 Uniform1iv(kUniform1RealLocation, | |
| 1804 1, | |
| 1805 reinterpret_cast<GLint*>(ImmediateDataAddress(&cmd)))); | |
| 1806 GLint temp[1 * 2] = { | |
| 1807 0, | 1803 0, |
| 1808 }; | 1804 }; |
| 1805 EXPECT_CALL(*gl_, |
| 1806 Uniform1iv(kUniform1RealLocation, 1, PointsToArray(temp, 1))); |
| 1809 cmd.Init(kUniform1FakeLocation, 1, &temp[0]); | 1807 cmd.Init(kUniform1FakeLocation, 1, &temp[0]); |
| 1810 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); | 1808 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); |
| 1811 } | 1809 } |
| 1812 | 1810 |
| 1813 TEST_P(GLES2DecoderWithShaderTest, Uniform1ivImmediateInvalidValidArgs) { | 1811 TEST_P(GLES2DecoderWithShaderTest, Uniform1ivImmediateInvalidValidArgs) { |
| 1814 EXPECT_CALL(*gl_, Uniform1iv(_, _, _)).Times(0); | 1812 EXPECT_CALL(*gl_, Uniform1iv(_, _, _)).Times(0); |
| 1815 Uniform1ivImmediate& cmd = *GetImmediateAs<Uniform1ivImmediate>(); | 1813 Uniform1ivImmediate& cmd = *GetImmediateAs<Uniform1ivImmediate>(); |
| 1816 GLint temp[1 * 2] = { | 1814 GLint temp[1 * 2] = { |
| 1817 0, | 1815 0, |
| 1818 }; | 1816 }; |
| (...skipping 24 matching lines...) Expand all Loading... |
| 1843 Uniform1ivImmediate& cmd = *GetImmediateAs<Uniform1ivImmediate>(); | 1841 Uniform1ivImmediate& cmd = *GetImmediateAs<Uniform1ivImmediate>(); |
| 1844 GLint temp[] = {kNumTextureUnits}; | 1842 GLint temp[] = {kNumTextureUnits}; |
| 1845 cmd.Init(kUniform1FakeLocation, 1, &temp[0]); | 1843 cmd.Init(kUniform1FakeLocation, 1, &temp[0]); |
| 1846 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); | 1844 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); |
| 1847 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); | 1845 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); |
| 1848 } | 1846 } |
| 1849 | 1847 |
| 1850 TEST_P(GLES2DecoderWithShaderTest, Uniform1uivImmediateValidArgs) { | 1848 TEST_P(GLES2DecoderWithShaderTest, Uniform1uivImmediateValidArgs) { |
| 1851 Uniform1uivImmediate& cmd = | 1849 Uniform1uivImmediate& cmd = |
| 1852 *GetImmediateAs<Uniform1uivImmediate>(); | 1850 *GetImmediateAs<Uniform1uivImmediate>(); |
| 1853 EXPECT_CALL( | 1851 GLuint temp[1] = { |
| 1854 *gl_, | |
| 1855 Uniform1uiv(kUniform4RealLocation, 1, | |
| 1856 reinterpret_cast<GLuint*>(ImmediateDataAddress(&cmd)))); | |
| 1857 GLuint temp[1 * 2] = { | |
| 1858 0, | 1852 0, |
| 1859 }; | 1853 }; |
| 1854 EXPECT_CALL(*gl_, |
| 1855 Uniform1uiv(kUniform4RealLocation, 1, PointsToArray(temp, 1))); |
| 1860 cmd.Init(kUniform4FakeLocation, 1, &temp[0]); | 1856 cmd.Init(kUniform4FakeLocation, 1, &temp[0]); |
| 1861 decoder_->set_unsafe_es3_apis_enabled(true); | 1857 decoder_->set_unsafe_es3_apis_enabled(true); |
| 1862 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); | 1858 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); |
| 1863 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 1859 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 1864 decoder_->set_unsafe_es3_apis_enabled(false); | 1860 decoder_->set_unsafe_es3_apis_enabled(false); |
| 1865 EXPECT_EQ(error::kUnknownCommand, ExecuteImmediateCmd(cmd, sizeof(temp))); | 1861 EXPECT_EQ(error::kUnknownCommand, ExecuteImmediateCmd(cmd, sizeof(temp))); |
| 1866 } | 1862 } |
| 1867 | 1863 |
| 1868 TEST_P(GLES2DecoderWithShaderTest, Uniform1uivImmediateInvalidType) { | 1864 TEST_P(GLES2DecoderWithShaderTest, Uniform1uivImmediateInvalidType) { |
| 1869 EXPECT_CALL(*gl_, Uniform1uiv(_, _, _)).Times(0); | 1865 EXPECT_CALL(*gl_, Uniform1uiv(_, _, _)).Times(0); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 1895 decoder_->set_unsafe_es3_apis_enabled(true); | 1891 decoder_->set_unsafe_es3_apis_enabled(true); |
| 1896 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 1892 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 1897 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 1893 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 1898 decoder_->set_unsafe_es3_apis_enabled(false); | 1894 decoder_->set_unsafe_es3_apis_enabled(false); |
| 1899 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd)); | 1895 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd)); |
| 1900 } | 1896 } |
| 1901 | 1897 |
| 1902 TEST_P(GLES2DecoderWithShaderTest, Uniform2uivImmediateValidArgs) { | 1898 TEST_P(GLES2DecoderWithShaderTest, Uniform2uivImmediateValidArgs) { |
| 1903 Uniform2uivImmediate& cmd = | 1899 Uniform2uivImmediate& cmd = |
| 1904 *GetImmediateAs<Uniform2uivImmediate>(); | 1900 *GetImmediateAs<Uniform2uivImmediate>(); |
| 1905 EXPECT_CALL( | |
| 1906 *gl_, | |
| 1907 Uniform2uiv(kUniform5RealLocation, 1, | |
| 1908 reinterpret_cast<GLuint*>(ImmediateDataAddress(&cmd)))); | |
| 1909 GLuint temp[2 * 1] = { | 1901 GLuint temp[2 * 1] = { |
| 1910 0, | 1902 0, |
| 1911 }; | 1903 }; |
| 1904 EXPECT_CALL(*gl_, |
| 1905 Uniform2uiv(kUniform5RealLocation, 1, PointsToArray(temp, 2))); |
| 1912 cmd.Init(kUniform5FakeLocation, 1, &temp[0]); | 1906 cmd.Init(kUniform5FakeLocation, 1, &temp[0]); |
| 1913 decoder_->set_unsafe_es3_apis_enabled(true); | 1907 decoder_->set_unsafe_es3_apis_enabled(true); |
| 1914 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); | 1908 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); |
| 1915 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 1909 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 1916 decoder_->set_unsafe_es3_apis_enabled(false); | 1910 decoder_->set_unsafe_es3_apis_enabled(false); |
| 1917 EXPECT_EQ(error::kUnknownCommand, ExecuteImmediateCmd(cmd, sizeof(temp))); | 1911 EXPECT_EQ(error::kUnknownCommand, ExecuteImmediateCmd(cmd, sizeof(temp))); |
| 1918 } | 1912 } |
| 1919 | 1913 |
| 1920 TEST_P(GLES2DecoderWithShaderTest, Uniform3uiValidArgs) { | 1914 TEST_P(GLES2DecoderWithShaderTest, Uniform3uiValidArgs) { |
| 1921 EXPECT_CALL(*gl_, Uniform3uiv(kUniform6RealLocation, 1, _)); | 1915 EXPECT_CALL(*gl_, Uniform3uiv(kUniform6RealLocation, 1, _)); |
| 1922 Uniform3ui cmd; | 1916 Uniform3ui cmd; |
| 1923 cmd.Init(kUniform6FakeLocation, 2, 3, 4); | 1917 cmd.Init(kUniform6FakeLocation, 2, 3, 4); |
| 1924 decoder_->set_unsafe_es3_apis_enabled(true); | 1918 decoder_->set_unsafe_es3_apis_enabled(true); |
| 1925 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 1919 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 1926 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 1920 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 1927 decoder_->set_unsafe_es3_apis_enabled(false); | 1921 decoder_->set_unsafe_es3_apis_enabled(false); |
| 1928 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd)); | 1922 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd)); |
| 1929 } | 1923 } |
| 1930 | 1924 |
| 1931 TEST_P(GLES2DecoderWithShaderTest, Uniform3uivImmediateValidArgs) { | 1925 TEST_P(GLES2DecoderWithShaderTest, Uniform3uivImmediateValidArgs) { |
| 1932 Uniform3uivImmediate& cmd = | 1926 Uniform3uivImmediate& cmd = |
| 1933 *GetImmediateAs<Uniform3uivImmediate>(); | 1927 *GetImmediateAs<Uniform3uivImmediate>(); |
| 1934 EXPECT_CALL( | |
| 1935 *gl_, | |
| 1936 Uniform3uiv(kUniform6RealLocation, 1, | |
| 1937 reinterpret_cast<GLuint*>(ImmediateDataAddress(&cmd)))); | |
| 1938 GLuint temp[3 * 1] = { | 1928 GLuint temp[3 * 1] = { |
| 1939 0, | 1929 0, |
| 1940 }; | 1930 }; |
| 1931 EXPECT_CALL(*gl_, |
| 1932 Uniform3uiv(kUniform6RealLocation, 1, PointsToArray(temp, 3))); |
| 1941 cmd.Init(kUniform6FakeLocation, 1, &temp[0]); | 1933 cmd.Init(kUniform6FakeLocation, 1, &temp[0]); |
| 1942 decoder_->set_unsafe_es3_apis_enabled(true); | 1934 decoder_->set_unsafe_es3_apis_enabled(true); |
| 1943 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); | 1935 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); |
| 1944 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 1936 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 1945 decoder_->set_unsafe_es3_apis_enabled(false); | 1937 decoder_->set_unsafe_es3_apis_enabled(false); |
| 1946 EXPECT_EQ(error::kUnknownCommand, ExecuteImmediateCmd(cmd, sizeof(temp))); | 1938 EXPECT_EQ(error::kUnknownCommand, ExecuteImmediateCmd(cmd, sizeof(temp))); |
| 1947 } | 1939 } |
| 1948 | 1940 |
| 1949 TEST_P(GLES2DecoderWithShaderTest, Uniform4uiValidArgs) { | 1941 TEST_P(GLES2DecoderWithShaderTest, Uniform4uiValidArgs) { |
| 1950 EXPECT_CALL(*gl_, Uniform4uiv(kUniform7RealLocation, 1, _)); | 1942 EXPECT_CALL(*gl_, Uniform4uiv(kUniform7RealLocation, 1, _)); |
| 1951 Uniform4ui cmd; | 1943 Uniform4ui cmd; |
| 1952 cmd.Init(kUniform7FakeLocation, 2, 3, 4, 5); | 1944 cmd.Init(kUniform7FakeLocation, 2, 3, 4, 5); |
| 1953 decoder_->set_unsafe_es3_apis_enabled(true); | 1945 decoder_->set_unsafe_es3_apis_enabled(true); |
| 1954 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 1946 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 1955 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 1947 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 1956 decoder_->set_unsafe_es3_apis_enabled(false); | 1948 decoder_->set_unsafe_es3_apis_enabled(false); |
| 1957 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd)); | 1949 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd)); |
| 1958 } | 1950 } |
| 1959 | 1951 |
| 1960 TEST_P(GLES2DecoderWithShaderTest, Uniform4uivImmediateValidArgs) { | 1952 TEST_P(GLES2DecoderWithShaderTest, Uniform4uivImmediateValidArgs) { |
| 1961 Uniform4uivImmediate& cmd = | 1953 Uniform4uivImmediate& cmd = |
| 1962 *GetImmediateAs<Uniform4uivImmediate>(); | 1954 *GetImmediateAs<Uniform4uivImmediate>(); |
| 1963 EXPECT_CALL( | |
| 1964 *gl_, | |
| 1965 Uniform4uiv(kUniform7RealLocation, 1, | |
| 1966 reinterpret_cast<GLuint*>(ImmediateDataAddress(&cmd)))); | |
| 1967 GLuint temp[4 * 1] = { | 1955 GLuint temp[4 * 1] = { |
| 1968 0, | 1956 0, |
| 1969 }; | 1957 }; |
| 1958 EXPECT_CALL(*gl_, |
| 1959 Uniform4uiv(kUniform7RealLocation, 1, PointsToArray(temp, 4))); |
| 1970 cmd.Init(kUniform7FakeLocation, 1, &temp[0]); | 1960 cmd.Init(kUniform7FakeLocation, 1, &temp[0]); |
| 1971 decoder_->set_unsafe_es3_apis_enabled(true); | 1961 decoder_->set_unsafe_es3_apis_enabled(true); |
| 1972 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); | 1962 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); |
| 1973 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 1963 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 1974 decoder_->set_unsafe_es3_apis_enabled(false); | 1964 decoder_->set_unsafe_es3_apis_enabled(false); |
| 1975 EXPECT_EQ(error::kUnknownCommand, ExecuteImmediateCmd(cmd, sizeof(temp))); | 1965 EXPECT_EQ(error::kUnknownCommand, ExecuteImmediateCmd(cmd, sizeof(temp))); |
| 1976 } | 1966 } |
| 1977 | 1967 |
| 1978 TEST_P(GLES2DecoderTest, BindAttribLocationBucket) { | 1968 TEST_P(GLES2DecoderTest, BindAttribLocationBucket) { |
| 1979 const uint32_t kBucketId = 123; | 1969 const uint32_t kBucketId = 123; |
| (...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2347 } | 2337 } |
| 2348 | 2338 |
| 2349 // TODO(gman): DeleteProgram | 2339 // TODO(gman): DeleteProgram |
| 2350 | 2340 |
| 2351 // TODO(gman): UseProgram | 2341 // TODO(gman): UseProgram |
| 2352 | 2342 |
| 2353 // TODO(gman): DeleteShader | 2343 // TODO(gman): DeleteShader |
| 2354 | 2344 |
| 2355 } // namespace gles2 | 2345 } // namespace gles2 |
| 2356 } // namespace gpu | 2346 } // namespace gpu |
| OLD | NEW |