| Index: gpu/command_buffer/service/gles2_cmd_decoder_unittest_2.cc
|
| diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_2.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_2.cc
|
| index df51b995609883ab62b01a554c06cec375c31df8..29636c8f9679346983cb3bb2791bebb8a68a5c0d 100644
|
| --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_2.cc
|
| +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_2.cc
|
| @@ -66,6 +66,9 @@ class GLES2DecoderTest2 : public GLES2DecoderTestBase {
|
| EXPECT_CALL(*gl_, Uniform2uiv(1, _, _)).Times(AnyNumber());
|
| EXPECT_CALL(*gl_, Uniform3uiv(1, _, _)).Times(AnyNumber());
|
| EXPECT_CALL(*gl_, Uniform4uiv(1, _, _)).Times(AnyNumber());
|
| + EXPECT_CALL(*gl_, UniformMatrix2fv(1, _, _, _)).Times(AnyNumber());
|
| + EXPECT_CALL(*gl_, UniformMatrix3fv(1, _, _, _)).Times(AnyNumber());
|
| + EXPECT_CALL(*gl_, UniformMatrix4fv(1, _, _, _)).Times(AnyNumber());
|
| EXPECT_CALL(*gl_, UniformMatrix2x3fv(1, _, _, _)).Times(AnyNumber());
|
| EXPECT_CALL(*gl_, UniformMatrix2x4fv(1, _, _, _)).Times(AnyNumber());
|
| EXPECT_CALL(*gl_, UniformMatrix3x2fv(1, _, _, _)).Times(AnyNumber());
|
| @@ -242,7 +245,7 @@ class GLES2DecoderTest2 : public GLES2DecoderTestBase {
|
| *GetImmediateAs<cmds::UniformMatrix2fvImmediate>();
|
| GLfloat data[2][2 * 2] = {{0.0f}};
|
|
|
| - cmd.Init(1, 2, &data[0][0]);
|
| + cmd.Init(1, 2, false, &data[0][0]);
|
| EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
|
| EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
|
| GetGLError());
|
| @@ -253,7 +256,7 @@ class GLES2DecoderTest2 : public GLES2DecoderTestBase {
|
| cmds::UniformMatrix3fvImmediate& cmd =
|
| *GetImmediateAs<cmds::UniformMatrix3fvImmediate>();
|
| GLfloat data[2][3 * 3] = {{0.0f}};
|
| - cmd.Init(1, 2, &data[0][0]);
|
| + cmd.Init(1, 2, false, &data[0][0]);
|
| EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
|
| EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
|
| GetGLError());
|
| @@ -264,12 +267,45 @@ class GLES2DecoderTest2 : public GLES2DecoderTestBase {
|
| cmds::UniformMatrix4fvImmediate& cmd =
|
| *GetImmediateAs<cmds::UniformMatrix4fvImmediate>();
|
| GLfloat data[2][4 * 4] = {{0.0f}};
|
| - cmd.Init(1, 2, &data[0][0]);
|
| + cmd.Init(1, 2, false, &data[0][0]);
|
| EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
|
| EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
|
| GetGLError());
|
| }
|
|
|
| + if (!es3_enabled) {
|
| + {
|
| + valid_uniform = accepts_apis & Program::kUniformMatrix2f;
|
| + cmds::UniformMatrix2fvImmediate& cmd =
|
| + *GetImmediateAs<cmds::UniformMatrix2fvImmediate>();
|
| + GLfloat data[2][2 * 2] = {{0.0f}};
|
| +
|
| + cmd.Init(1, 2, true, &data[0][0]);
|
| + EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
|
| + EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
|
| + }
|
| +
|
| + {
|
| + valid_uniform = accepts_apis & Program::kUniformMatrix3f;
|
| + cmds::UniformMatrix3fvImmediate& cmd =
|
| + *GetImmediateAs<cmds::UniformMatrix3fvImmediate>();
|
| + GLfloat data[2][3 * 3] = {{0.0f}};
|
| + cmd.Init(1, 2, true, &data[0][0]);
|
| + EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
|
| + EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
|
| + }
|
| +
|
| + {
|
| + valid_uniform = accepts_apis & Program::kUniformMatrix4f;
|
| + cmds::UniformMatrix4fvImmediate& cmd =
|
| + *GetImmediateAs<cmds::UniformMatrix4fvImmediate>();
|
| + GLfloat data[2][4 * 4] = {{0.0f}};
|
| + cmd.Init(1, 2, true, &data[0][0]);
|
| + EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
|
| + EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
|
| + }
|
| + }
|
| +
|
| if (es3_enabled) {
|
| {
|
| valid_uniform = accepts_apis & Program::kUniform1ui;
|
| @@ -357,7 +393,7 @@ class GLES2DecoderTest2 : public GLES2DecoderTestBase {
|
| *GetImmediateAs<cmds::UniformMatrix2x3fvImmediate>();
|
| GLfloat data[2][2 * 3] = {{0.0f}};
|
|
|
| - cmd.Init(1, 2, &data[0][0]);
|
| + cmd.Init(1, 2, false, &data[0][0]);
|
| EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
|
| EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
|
| GetGLError());
|
| @@ -369,7 +405,7 @@ class GLES2DecoderTest2 : public GLES2DecoderTestBase {
|
| *GetImmediateAs<cmds::UniformMatrix2x4fvImmediate>();
|
| GLfloat data[2][2 * 4] = {{0.0f}};
|
|
|
| - cmd.Init(1, 2, &data[0][0]);
|
| + cmd.Init(1, 2, false, &data[0][0]);
|
| EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
|
| EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
|
| GetGLError());
|
| @@ -381,7 +417,7 @@ class GLES2DecoderTest2 : public GLES2DecoderTestBase {
|
| *GetImmediateAs<cmds::UniformMatrix3x2fvImmediate>();
|
| GLfloat data[2][3 * 2] = {{0.0f}};
|
|
|
| - cmd.Init(1, 2, &data[0][0]);
|
| + cmd.Init(1, 2, false, &data[0][0]);
|
| EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
|
| EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
|
| GetGLError());
|
| @@ -393,7 +429,7 @@ class GLES2DecoderTest2 : public GLES2DecoderTestBase {
|
| *GetImmediateAs<cmds::UniformMatrix3x4fvImmediate>();
|
| GLfloat data[2][3 * 4] = {{0.0f}};
|
|
|
| - cmd.Init(1, 2, &data[0][0]);
|
| + cmd.Init(1, 2, false, &data[0][0]);
|
| EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
|
| EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
|
| GetGLError());
|
| @@ -405,7 +441,7 @@ class GLES2DecoderTest2 : public GLES2DecoderTestBase {
|
| *GetImmediateAs<cmds::UniformMatrix4x2fvImmediate>();
|
| GLfloat data[2][4 * 2] = {{0.0f}};
|
|
|
| - cmd.Init(1, 2, &data[0][0]);
|
| + cmd.Init(1, 2, false, &data[0][0]);
|
| EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
|
| EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
|
| GetGLError());
|
| @@ -417,7 +453,113 @@ class GLES2DecoderTest2 : public GLES2DecoderTestBase {
|
| *GetImmediateAs<cmds::UniformMatrix4x3fvImmediate>();
|
| GLfloat data[2][4 * 3] = {{0.0f}};
|
|
|
| - cmd.Init(1, 2, &data[0][0]);
|
| + cmd.Init(1, 2, false, &data[0][0]);
|
| + EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
|
| + EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
|
| + GetGLError());
|
| + }
|
| +
|
| + {
|
| + valid_uniform = accepts_apis & Program::kUniformMatrix2f;
|
| + cmds::UniformMatrix2fvImmediate& cmd =
|
| + *GetImmediateAs<cmds::UniformMatrix2fvImmediate>();
|
| + GLfloat data[2][2 * 2] = {{0.0f}};
|
| +
|
| + cmd.Init(1, 2, true, &data[0][0]);
|
| + EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
|
| + EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
|
| + GetGLError());
|
| + }
|
| +
|
| + {
|
| + valid_uniform = accepts_apis & Program::kUniformMatrix3f;
|
| + cmds::UniformMatrix3fvImmediate& cmd =
|
| + *GetImmediateAs<cmds::UniformMatrix3fvImmediate>();
|
| + GLfloat data[2][3 * 3] = {{0.0f}};
|
| + cmd.Init(1, 2, true, &data[0][0]);
|
| + EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
|
| + EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
|
| + GetGLError());
|
| + }
|
| +
|
| + {
|
| + valid_uniform = accepts_apis & Program::kUniformMatrix4f;
|
| + cmds::UniformMatrix4fvImmediate& cmd =
|
| + *GetImmediateAs<cmds::UniformMatrix4fvImmediate>();
|
| + GLfloat data[2][4 * 4] = {{0.0f}};
|
| + cmd.Init(1, 2, true, &data[0][0]);
|
| + EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
|
| + EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
|
| + GetGLError());
|
| + }
|
| +
|
| + {
|
| + valid_uniform = accepts_apis & Program::kUniformMatrix2x3f;
|
| + cmds::UniformMatrix2x3fvImmediate& cmd =
|
| + *GetImmediateAs<cmds::UniformMatrix2x3fvImmediate>();
|
| + GLfloat data[2][2 * 3] = {{0.0f}};
|
| +
|
| + cmd.Init(1, 2, true, &data[0][0]);
|
| + EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
|
| + EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
|
| + GetGLError());
|
| + }
|
| +
|
| + {
|
| + valid_uniform = accepts_apis & Program::kUniformMatrix2x4f;
|
| + cmds::UniformMatrix2x4fvImmediate& cmd =
|
| + *GetImmediateAs<cmds::UniformMatrix2x4fvImmediate>();
|
| + GLfloat data[2][2 * 4] = {{0.0f}};
|
| +
|
| + cmd.Init(1, 2, true, &data[0][0]);
|
| + EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
|
| + EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
|
| + GetGLError());
|
| + }
|
| +
|
| + {
|
| + valid_uniform = accepts_apis & Program::kUniformMatrix3x2f;
|
| + cmds::UniformMatrix3x2fvImmediate& cmd =
|
| + *GetImmediateAs<cmds::UniformMatrix3x2fvImmediate>();
|
| + GLfloat data[2][3 * 2] = {{0.0f}};
|
| +
|
| + cmd.Init(1, 2, true, &data[0][0]);
|
| + EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
|
| + EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
|
| + GetGLError());
|
| + }
|
| +
|
| + {
|
| + valid_uniform = accepts_apis & Program::kUniformMatrix3x4f;
|
| + cmds::UniformMatrix3x4fvImmediate& cmd =
|
| + *GetImmediateAs<cmds::UniformMatrix3x4fvImmediate>();
|
| + GLfloat data[2][3 * 4] = {{0.0f}};
|
| +
|
| + cmd.Init(1, 2, true, &data[0][0]);
|
| + EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
|
| + EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
|
| + GetGLError());
|
| + }
|
| +
|
| + {
|
| + valid_uniform = accepts_apis & Program::kUniformMatrix4x2f;
|
| + cmds::UniformMatrix4x2fvImmediate& cmd =
|
| + *GetImmediateAs<cmds::UniformMatrix4x2fvImmediate>();
|
| + GLfloat data[2][4 * 2] = {{0.0f}};
|
| +
|
| + cmd.Init(1, 2, true, &data[0][0]);
|
| + EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
|
| + EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
|
| + GetGLError());
|
| + }
|
| +
|
| + {
|
| + valid_uniform = accepts_apis & Program::kUniformMatrix4x3f;
|
| + cmds::UniformMatrix4x3fvImmediate& cmd =
|
| + *GetImmediateAs<cmds::UniformMatrix4x3fvImmediate>();
|
| + GLfloat data[2][4 * 3] = {{0.0f}};
|
| +
|
| + cmd.Init(1, 2, true, &data[0][0]);
|
| EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
|
| EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
|
| GetGLError());
|
|
|