| Index: gpu/command_buffer/tests/gl_map_buffer_range_unittest.cc
|
| diff --git a/gpu/command_buffer/tests/gl_map_buffer_range_unittest.cc b/gpu/command_buffer/tests/gl_map_buffer_range_unittest.cc
|
| index 2b92e170d358273c61fd3fc53d060c8e62b44cdc..600d545dc7c15d204fce6c675b812fa57f243f75 100644
|
| --- a/gpu/command_buffer/tests/gl_map_buffer_range_unittest.cc
|
| +++ b/gpu/command_buffer/tests/gl_map_buffer_range_unittest.cc
|
| @@ -139,6 +139,24 @@ TEST_F(ES3MapBufferRangeTest, DrawArraysAndInstanced) {
|
| EXPECT_TRUE(GLTestHelper::CheckPixels(0, 0, kCanvasSize, kCanvasSize, 1,
|
| kBlackColor));
|
|
|
| + // The following test is necessary to make sure draw calls do not just check
|
| + // bound buffers, but actual buffers that are attached to the enabled vertex
|
| + // attribs.
|
| + glBindBuffer(GL_ARRAY_BUFFER, 0);
|
| +
|
| + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
| + glDrawArrays(GL_TRIANGLES, 0, 6);
|
| + EXPECT_EQ(static_cast<GLenum>(GL_INVALID_OPERATION), glGetError());
|
| + EXPECT_TRUE(GLTestHelper::CheckPixels(0, 0, kCanvasSize, kCanvasSize, 1,
|
| + kBlackColor));
|
| +
|
| + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
| + glDrawArraysInstancedANGLE(GL_TRIANGLES, 0, 6, kPrimCount);
|
| + EXPECT_EQ(static_cast<GLenum>(GL_INVALID_OPERATION), glGetError());
|
| + EXPECT_TRUE(GLTestHelper::CheckPixels(0, 0, kCanvasSize, kCanvasSize, 1,
|
| + kBlackColor));
|
| +
|
| + glBindBuffer(GL_ARRAY_BUFFER, buffer);
|
| glUnmapBuffer(GL_ARRAY_BUFFER);
|
| GLTestHelper::CheckGLError("no errors", __LINE__);
|
|
|
| @@ -204,6 +222,26 @@ TEST_F(ES3MapBufferRangeTest, DrawElementsAndInstanced) {
|
| EXPECT_TRUE(GLTestHelper::CheckPixels(0, 0, kCanvasSize, kCanvasSize, 1,
|
| kBlackColor));
|
|
|
| + // The following test is necessary to make sure draw calls do not just check
|
| + // bound buffers, but actual buffers that are attached to the enabled vertex
|
| + // attribs.
|
| + glBindBuffer(GL_ARRAY_BUFFER, 0);
|
| +
|
| + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
| + glDrawArrays(GL_TRIANGLES, 0, 6);
|
| + EXPECT_EQ(static_cast<GLenum>(GL_INVALID_OPERATION), glGetError());
|
| + EXPECT_TRUE(GLTestHelper::CheckPixels(0, 0, kCanvasSize, kCanvasSize, 1,
|
| + kBlackColor));
|
| +
|
| + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
| + glDrawElementsInstancedANGLE(GL_TRIANGLES, 6, GL_UNSIGNED_BYTE, 0,
|
| + kPrimCount);
|
| + EXPECT_EQ(static_cast<GLenum>(GL_INVALID_OPERATION), glGetError());
|
| + EXPECT_TRUE(GLTestHelper::CheckPixels(0, 0, kCanvasSize, kCanvasSize, 1,
|
| + kBlackColor));
|
| +
|
| + glBindBuffer(GL_ARRAY_BUFFER, buffers[0]);
|
| +
|
| glUnmapBuffer(GL_ARRAY_BUFFER);
|
| GLTestHelper::CheckGLError("no errors", __LINE__);
|
|
|
| @@ -375,6 +413,11 @@ TEST_F(ES3MapBufferRangeTest, TransformFeedback) {
|
| if (ShouldSkipTest())
|
| return;
|
|
|
| + GLuint transform_feedback = 0;
|
| + glGenTransformFeedbacks(1, &transform_feedback);
|
| + glBindTransformFeedback(GL_TRANSFORM_FEEDBACK, transform_feedback);
|
| + GLTestHelper::CheckGLError("no errors", __LINE__);
|
| +
|
| GLuint transform_feedback_buffer[2];
|
| glGenBuffers(2, transform_feedback_buffer);
|
| EXPECT_LT(0u, transform_feedback_buffer[0]);
|
| @@ -397,10 +440,6 @@ TEST_F(ES3MapBufferRangeTest, TransformFeedback) {
|
| GLTestHelper::CheckGLError("no errors", __LINE__);
|
| EXPECT_LT(0u, buffer);
|
|
|
| - GLuint transform_feedback = 0;
|
| - glGenTransformFeedbacks(1, &transform_feedback);
|
| - GLTestHelper::CheckGLError("no errors", __LINE__);
|
| -
|
| glMapBufferRange(GL_TRANSFORM_FEEDBACK_BUFFER, 0, 6, GL_MAP_WRITE_BIT);
|
| GLTestHelper::CheckGLError("no errors", __LINE__);
|
|
|
| @@ -416,6 +455,14 @@ TEST_F(ES3MapBufferRangeTest, TransformFeedback) {
|
| glMapBufferRange(GL_TRANSFORM_FEEDBACK_BUFFER, 0, 6, GL_MAP_WRITE_BIT);
|
| EXPECT_EQ(static_cast<GLenum>(GL_INVALID_OPERATION), glGetError());
|
|
|
| + // Bind the used buffer to another binding target and try to map it using
|
| + // that target - should still fail.
|
| + glBindBuffer(GL_PIXEL_PACK_BUFFER, transform_feedback_buffer[0]);
|
| + GLTestHelper::CheckGLError("no errors", __LINE__);
|
| +
|
| + glMapBufferRange(GL_PIXEL_PACK_BUFFER, 0, 6, GL_MAP_READ_BIT);
|
| + EXPECT_EQ(static_cast<GLenum>(GL_INVALID_OPERATION), glGetError());
|
| +
|
| glDrawArrays(GL_TRIANGLES, 0, 6);
|
| glEndTransformFeedback();
|
| GLTestHelper::CheckGLError("no errors", __LINE__);
|
|
|