diff options
author | jbauman@chromium.org <jbauman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-14 02:09:51 +0000 |
---|---|---|
committer | jbauman@chromium.org <jbauman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-14 02:09:51 +0000 |
commit | 10b56ded78356b1d3842e05371dd3589d58fbb39 (patch) | |
tree | cc45cbcaef6a7af6b5b9fcd84776fbe470eae10d /gpu | |
parent | 5267b64d24c144be8c31a8292291248bad5acbf9 (diff) | |
download | chromium_src-10b56ded78356b1d3842e05371dd3589d58fbb39.zip chromium_src-10b56ded78356b1d3842e05371dd3589d58fbb39.tar.gz chromium_src-10b56ded78356b1d3842e05371dd3589d58fbb39.tar.bz2 |
Allow 1xn and 2xn compressed textures.
This is needed to allow texture streaming of all miplevels. This affects only pepper, as WebGL does its own validation.
BUG=136929
TEST=
Review URL: https://chromiumcodereview.appspot.com/10735066
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146711 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu')
-rw-r--r-- | gpu/command_buffer/service/gles2_cmd_decoder.cc | 4 | ||||
-rw-r--r-- | gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc | 40 |
2 files changed, 18 insertions, 26 deletions
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc index ae0ab29..b1266d8 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc @@ -6973,8 +6973,8 @@ const int kS3TCDXT1BlockSize = 8; const int kS3TCDXT3AndDXT5BlockSize = 16; bool IsValidDXTSize(GLint level, GLsizei size) { - return (level && size == 1) || - (level && size == 2) || !(size % kS3TCBlockWidth); + return (size == 1) || + (size == 2) || !(size % kS3TCBlockWidth); } } // anonymous namespace. diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc index 0376efc..52a61ab 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc @@ -5122,13 +5122,11 @@ TEST_F(GLES2DecoderManualInitTest, CompressedTexImage2DS3TC) { for (size_t ii = 0; ii < arraysize(test_data); ++ii) { const S3TCTestData& test = test_data[ii]; CompressedTexImage2DBucket cmd; - // test too small width. - cmd.Init( - GL_TEXTURE_2D, 0, test.format, 2, 4, 0, + // test small width. + DoCompressedTexImage2D( + GL_TEXTURE_2D, 0, test.format, 2, 4, 0, test.block_size, kBucketId); - bucket->SetSize(test.block_size); - EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); - EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); + EXPECT_EQ(GL_NO_ERROR, GetGLError()); // test bad width. cmd.Init( @@ -5138,13 +5136,11 @@ TEST_F(GLES2DecoderManualInitTest, CompressedTexImage2DS3TC) { EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); - // test too small height. - cmd.Init( - GL_TEXTURE_2D, 0, test.format, 4, 2, 0, + // test small height. + DoCompressedTexImage2D( + GL_TEXTURE_2D, 0, test.format, 4, 2, 0, test.block_size, kBucketId); - bucket->SetSize(test.block_size); - EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); - EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); + EXPECT_EQ(GL_NO_ERROR, GetGLError()); // test too bad height. cmd.Init( @@ -5154,21 +5150,17 @@ TEST_F(GLES2DecoderManualInitTest, CompressedTexImage2DS3TC) { EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); - // test too small for level 0. - cmd.Init( - GL_TEXTURE_2D, 0, test.format, 1, 1, 0, + // test small for level 0. + DoCompressedTexImage2D( + GL_TEXTURE_2D, 0, test.format, 1, 1, 0, test.block_size, kBucketId); - bucket->SetSize(test.block_size); - EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); - EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); + EXPECT_EQ(GL_NO_ERROR, GetGLError()); - // test too small for level 0. - cmd.Init( - GL_TEXTURE_2D, 0, test.format, 2, 2, 0, + // test small for level 0. + DoCompressedTexImage2D( + GL_TEXTURE_2D, 0, test.format, 2, 2, 0, test.block_size, kBucketId); - bucket->SetSize(test.block_size); - EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); - EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); + EXPECT_EQ(GL_NO_ERROR, GetGLError()); // test size too large. cmd.Init( |