| Index: gpu/command_buffer/service/gles2_cmd_decoder_unittest_buffers.cc
|
| diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_buffers.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_buffers.cc
|
| index 04f785d98d3b32aa5a424a7275ef976897d0fcc5..6885c00f85a43e60e948b57ae36c310e47abe6df 100644
|
| --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_buffers.cc
|
| +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_buffers.cc
|
| @@ -68,7 +68,7 @@
|
| EXPECT_TRUE(GetBuffer(kNewClientId) != NULL);
|
| }
|
|
|
| -TEST_P(GLES3DecoderTest, MapBufferRangeUnmapBufferReadSucceeds) {
|
| +TEST_P(GLES2DecoderTest, MapBufferRangeUnmapBufferReadSucceeds) {
|
| const GLenum kTarget = GL_ARRAY_BUFFER;
|
| const GLintptr kOffset = 10;
|
| const GLsizeiptr kSize = 64;
|
| @@ -100,6 +100,11 @@
|
| MapBufferRange cmd;
|
| cmd.Init(kTarget, kOffset, kSize, kAccess, data_shm_id, data_shm_offset,
|
| result_shm_id, result_shm_offset);
|
| + decoder_->set_unsafe_es3_apis_enabled(false);
|
| + *result = 0;
|
| + EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd));
|
| + EXPECT_EQ(0u, *result);
|
| + decoder_->set_unsafe_es3_apis_enabled(true);
|
| *result = 0;
|
| EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| int8_t* mem = reinterpret_cast<int8_t*>(&result[1]);
|
| @@ -114,13 +119,16 @@
|
|
|
| UnmapBuffer cmd;
|
| cmd.Init(kTarget);
|
| - EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| - }
|
| -
|
| - EXPECT_EQ(GL_NO_ERROR, GetGLError());
|
| -}
|
| -
|
| -TEST_P(GLES3DecoderTest, MapBufferRangeUnmapBufferWriteSucceeds) {
|
| + decoder_->set_unsafe_es3_apis_enabled(false);
|
| + EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd));
|
| + decoder_->set_unsafe_es3_apis_enabled(true);
|
| + EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| + }
|
| +
|
| + EXPECT_EQ(GL_NO_ERROR, GetGLError());
|
| +}
|
| +
|
| +TEST_P(GLES2DecoderTest, MapBufferRangeUnmapBufferWriteSucceeds) {
|
| const GLenum kTarget = GL_ELEMENT_ARRAY_BUFFER;
|
| const GLintptr kOffset = 10;
|
| const GLsizeiptr kSize = 64;
|
| @@ -167,6 +175,11 @@
|
| MapBufferRange cmd;
|
| cmd.Init(kTarget, kOffset, kSize, kAccess, data_shm_id, data_shm_offset,
|
| result_shm_id, result_shm_offset);
|
| + decoder_->set_unsafe_es3_apis_enabled(false);
|
| + *result = 0;
|
| + EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd));
|
| + EXPECT_EQ(0u, *result);
|
| + decoder_->set_unsafe_es3_apis_enabled(true);
|
| *result = 0;
|
| EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| EXPECT_EQ(1u, *result);
|
| @@ -185,6 +198,9 @@
|
|
|
| UnmapBuffer cmd;
|
| cmd.Init(kTarget);
|
| + decoder_->set_unsafe_es3_apis_enabled(false);
|
| + EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd));
|
| + decoder_->set_unsafe_es3_apis_enabled(true);
|
| EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
|
|
| // Verify the GPU mem and shadow data are both updated
|
| @@ -313,7 +329,7 @@
|
| EXPECT_EQ(GL_NO_ERROR, GetGLError());
|
| }
|
|
|
| -TEST_P(GLES3DecoderTest, MapBufferRangeNotInitFails) {
|
| +TEST_P(GLES2DecoderTest, MapBufferRangeNotInitFails) {
|
| const GLenum kTarget = GL_ARRAY_BUFFER;
|
| const GLintptr kOffset = 10;
|
| const GLsizeiptr kSize = 64;
|
| @@ -331,10 +347,11 @@
|
| MapBufferRange cmd;
|
| cmd.Init(kTarget, kOffset, kSize, kAccess, data_shm_id, data_shm_offset,
|
| result_shm_id, result_shm_offset);
|
| + decoder_->set_unsafe_es3_apis_enabled(true);
|
| EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
|
| }
|
|
|
| -TEST_P(GLES3DecoderTest, MapBufferRangeWriteInvalidateRangeSucceeds) {
|
| +TEST_P(GLES2DecoderTest, MapBufferRangeWriteInvalidateRangeSucceeds) {
|
| const GLenum kTarget = GL_ARRAY_BUFFER;
|
| const GLintptr kOffset = 10;
|
| const GLsizeiptr kSize = 64;
|
| @@ -367,10 +384,11 @@
|
| MapBufferRange cmd;
|
| cmd.Init(kTarget, kOffset, kSize, kAccess, data_shm_id, data_shm_offset,
|
| result_shm_id, result_shm_offset);
|
| - EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| -}
|
| -
|
| -TEST_P(GLES3DecoderTest, MapBufferRangeWriteInvalidateBufferSucceeds) {
|
| + decoder_->set_unsafe_es3_apis_enabled(true);
|
| + EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| +}
|
| +
|
| +TEST_P(GLES2DecoderTest, MapBufferRangeWriteInvalidateBufferSucceeds) {
|
| // Test INVALIDATE_BUFFER_BIT is mapped to INVALIDATE_RANGE_BIT.
|
| const GLenum kTarget = GL_ARRAY_BUFFER;
|
| const GLintptr kOffset = 10;
|
| @@ -406,10 +424,11 @@
|
| MapBufferRange cmd;
|
| cmd.Init(kTarget, kOffset, kSize, kAccess, data_shm_id, data_shm_offset,
|
| result_shm_id, result_shm_offset);
|
| - EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| -}
|
| -
|
| -TEST_P(GLES3DecoderTest, MapBufferRangeWriteUnsynchronizedBit) {
|
| + decoder_->set_unsafe_es3_apis_enabled(true);
|
| + EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| +}
|
| +
|
| +TEST_P(GLES2DecoderTest, MapBufferRangeWriteUnsynchronizedBit) {
|
| // Test UNSYNCHRONIZED_BIT is filtered out.
|
| const GLenum kTarget = GL_ARRAY_BUFFER;
|
| const GLintptr kOffset = 10;
|
| @@ -443,11 +462,12 @@
|
| MapBufferRange cmd;
|
| cmd.Init(kTarget, kOffset, kSize, kAccess, data_shm_id, data_shm_offset,
|
| result_shm_id, result_shm_offset);
|
| + decoder_->set_unsafe_es3_apis_enabled(true);
|
| EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| EXPECT_EQ(0, memcmp(&data[0], mem, kSize));
|
| }
|
|
|
| -TEST_P(GLES3DecoderTest, MapBufferRangeWithError) {
|
| +TEST_P(GLES2DecoderTest, MapBufferRangeWithError) {
|
| const GLenum kTarget = GL_ARRAY_BUFFER;
|
| const GLintptr kOffset = 10;
|
| const GLsizeiptr kSize = 64;
|
| @@ -471,6 +491,7 @@
|
| MapBufferRange cmd;
|
| cmd.Init(kTarget, kOffset, kSize, kAccess, data_shm_id, data_shm_offset,
|
| result_shm_id, result_shm_offset);
|
| + decoder_->set_unsafe_es3_apis_enabled(true);
|
| EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| memset(&data[0], 72, kSize);
|
| // Mem is untouched.
|
| @@ -479,7 +500,7 @@
|
| EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
|
| }
|
|
|
| -TEST_P(GLES3DecoderTest, MapBufferRangeBadSharedMemoryFails) {
|
| +TEST_P(GLES2DecoderTest, MapBufferRangeBadSharedMemoryFails) {
|
| const GLenum kTarget = GL_ARRAY_BUFFER;
|
| const GLintptr kOffset = 10;
|
| const GLsizeiptr kSize = 64;
|
| @@ -500,6 +521,7 @@
|
| uint32_t data_shm_id = kSharedMemoryId;
|
| uint32_t data_shm_offset = kSharedMemoryOffset + sizeof(*result);
|
|
|
| + decoder_->set_unsafe_es3_apis_enabled(true);
|
| MapBufferRange cmd;
|
| cmd.Init(kTarget, kOffset, kSize, kAccess,
|
| kInvalidSharedMemoryId, data_shm_offset,
|
| @@ -519,27 +541,29 @@
|
| EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
|
| }
|
|
|
| -TEST_P(GLES3DecoderTest, UnmapBufferWriteNotMappedFails) {
|
| +TEST_P(GLES2DecoderTest, UnmapBufferWriteNotMappedFails) {
|
| const GLenum kTarget = GL_ARRAY_BUFFER;
|
|
|
| DoBindBuffer(kTarget, client_buffer_id_, kServiceBufferId);
|
|
|
| UnmapBuffer cmd;
|
| cmd.Init(kTarget);
|
| + decoder_->set_unsafe_es3_apis_enabled(true);
|
| EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
|
| }
|
|
|
| -TEST_P(GLES3DecoderTest, UnmapBufferWriteNoBoundBufferFails) {
|
| +TEST_P(GLES2DecoderTest, UnmapBufferWriteNoBoundBufferFails) {
|
| const GLenum kTarget = GL_ARRAY_BUFFER;
|
|
|
| UnmapBuffer cmd;
|
| cmd.Init(kTarget);
|
| + decoder_->set_unsafe_es3_apis_enabled(true);
|
| EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
|
| }
|
|
|
| -TEST_P(GLES3DecoderTest, BufferDataDestroysDataStore) {
|
| +TEST_P(GLES2DecoderTest, BufferDataDestroysDataStore) {
|
| const GLenum kTarget = GL_ARRAY_BUFFER;
|
| const GLintptr kOffset = 10;
|
| const GLsizeiptr kSize = 64;
|
| @@ -556,6 +580,8 @@
|
| DoBufferData(kTarget, kSize + kOffset);
|
|
|
| std::vector<int8_t> data(kSize);
|
| +
|
| + decoder_->set_unsafe_es3_apis_enabled(true);
|
|
|
| { // MapBufferRange succeeds
|
| EXPECT_CALL(*gl_,
|
| @@ -587,7 +613,7 @@
|
| }
|
| }
|
|
|
| -TEST_P(GLES3DecoderTest, DeleteBuffersDestroysDataStore) {
|
| +TEST_P(GLES2DecoderTest, DeleteBuffersDestroysDataStore) {
|
| const GLenum kTarget = GL_ARRAY_BUFFER;
|
| const GLintptr kOffset = 10;
|
| const GLsizeiptr kSize = 64;
|
| @@ -604,6 +630,8 @@
|
| DoBufferData(kTarget, kSize + kOffset);
|
|
|
| std::vector<int8_t> data(kSize);
|
| +
|
| + decoder_->set_unsafe_es3_apis_enabled(true);
|
|
|
| { // MapBufferRange succeeds
|
| EXPECT_CALL(*gl_,
|
| @@ -635,7 +663,7 @@
|
| }
|
| }
|
|
|
| -TEST_P(GLES3DecoderTest, MapUnmapBufferInvalidTarget) {
|
| +TEST_P(GLES2DecoderTest, MapUnmapBufferInvalidTarget) {
|
| const GLenum kTarget = GL_TEXTURE_2D;
|
| const GLintptr kOffset = 10;
|
| const GLsizeiptr kSize = 64;
|
| @@ -646,6 +674,8 @@
|
| uint32_t data_shm_id = kSharedMemoryId;
|
| // uint32_t is Result for both MapBufferRange and UnmapBuffer commands.
|
| uint32_t data_shm_offset = kSharedMemoryOffset + sizeof(uint32_t);
|
| +
|
| + decoder_->set_unsafe_es3_apis_enabled(true);
|
|
|
| typedef MapBufferRange::Result Result;
|
| Result* result = GetSharedMemoryAs<Result*>();
|
|
|