summaryrefslogtreecommitdiffstats
path: root/gpu
diff options
context:
space:
mode:
authorjbauman@chromium.org <jbauman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-14 02:09:51 +0000
committerjbauman@chromium.org <jbauman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-14 02:09:51 +0000
commit10b56ded78356b1d3842e05371dd3589d58fbb39 (patch)
treecc45cbcaef6a7af6b5b9fcd84776fbe470eae10d /gpu
parent5267b64d24c144be8c31a8292291248bad5acbf9 (diff)
downloadchromium_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.cc4
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc40
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(