Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1348)

Unified Diff: gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc

Issue 2548733002: Set correct internalformat info for TexStorageEXT for WebGL1 context (Closed)
Patch Set: fix nits Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gpu/command_buffer/service/gles2_cmd_decoder.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc
index 266869dfdb44b51bf0aeddbf1500af73cfd029b4..091fc35edfbae53361c801fd58455cb6e8c5bc2f 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc
@@ -4331,53 +4331,71 @@ TEST_P(GLES2DecoderManualInitTest, TexStorageInvalidLevels) {
EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
}
-TEST_P(GLES2DecoderManualInitTest, TexStorageFormatAndTypeES2) {
+class GLES2DecoderTexStorageFormatAndTypeTest
+ : public GLES2DecoderManualInitTest {
+ public:
+ GLES2DecoderTexStorageFormatAndTypeTest() {}
+
+ void DoTexStorageFormatAndType(const InitState& init,
+ GLenum format,
+ GLenum adjusted_internal_format) {
+ InitDecoder(init);
+ DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId);
+ EXPECT_CALL(*gl_, TexStorage2DEXT(GL_TEXTURE_2D, 2, format, 2, 2))
+ .Times(1)
+ .RetiresOnSaturation();
+ TexStorage2DEXT cmd;
+ cmd.Init(GL_TEXTURE_2D, 2, format, 2, 2);
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
+ EXPECT_EQ(GL_NO_ERROR, GetGLError());
+ TextureRef* texture_ref =
+ group().texture_manager()->GetTexture(client_texture_id_);
+ Texture* texture = texture_ref->texture();
+ GLenum type;
+ GLenum internal_format;
+ EXPECT_TRUE(
+ texture->GetLevelType(GL_TEXTURE_2D, 0, &type, &internal_format));
+ EXPECT_EQ(static_cast<GLenum>(adjusted_internal_format), internal_format);
+ EXPECT_EQ(static_cast<GLenum>(GL_UNSIGNED_BYTE), type);
+ }
+};
+
+INSTANTIATE_TEST_CASE_P(Service,
+ GLES2DecoderTexStorageFormatAndTypeTest,
+ ::testing::Bool());
+
+TEST_P(GLES2DecoderTexStorageFormatAndTypeTest, ES2) {
InitState init;
init.gl_version = "OpenGL ES 2.0";
init.extensions = "GL_ARB_texture_storage";
init.bind_generates_resource = true;
init.context_type = CONTEXT_TYPE_OPENGLES2;
- InitDecoder(init);
- DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId);
- EXPECT_CALL(*gl_, TexStorage2DEXT(GL_TEXTURE_2D, 2, GL_RGBA8_OES, 2, 2))
- .Times(1)
- .RetiresOnSaturation();
- TexStorage2DEXT cmd;
- cmd.Init(GL_TEXTURE_2D, 2, GL_RGBA8_OES, 2, 2);
- EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
- EXPECT_EQ(GL_NO_ERROR, GetGLError());
- TextureRef* texture_ref =
- group().texture_manager()->GetTexture(client_texture_id_);
- Texture* texture = texture_ref->texture();
- GLenum type;
- GLenum internal_format;
- EXPECT_TRUE(texture->GetLevelType(GL_TEXTURE_2D, 0, &type, &internal_format));
- EXPECT_EQ(static_cast<GLenum>(GL_RGBA), internal_format);
- EXPECT_EQ(static_cast<GLenum>(GL_UNSIGNED_BYTE), type);
+ DoTexStorageFormatAndType(init, GL_RGBA8_OES, GL_RGBA);
+}
+
+TEST_P(GLES2DecoderTexStorageFormatAndTypeTest, WebGL1) {
+ InitState init;
+ init.gl_version = "OpenGL ES 2.0";
+ init.extensions = "GL_ARB_texture_storage";
+ init.bind_generates_resource = true;
+ init.context_type = CONTEXT_TYPE_WEBGL1;
+ DoTexStorageFormatAndType(init, GL_RGBA8_OES, GL_RGBA);
}
-TEST_P(GLES2DecoderManualInitTest, TexStorageFormatAndTypeES3) {
+TEST_P(GLES2DecoderTexStorageFormatAndTypeTest, ES3) {
InitState init;
init.gl_version = "OpenGL ES 3.0";
init.bind_generates_resource = true;
init.context_type = CONTEXT_TYPE_OPENGLES3;
- InitDecoder(init);
- DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId);
- EXPECT_CALL(*gl_, TexStorage2DEXT(GL_TEXTURE_2D, 2, GL_RGBA8, 2, 2))
- .Times(1)
- .RetiresOnSaturation();
- TexStorage2DEXT cmd;
- cmd.Init(GL_TEXTURE_2D, 2, GL_RGBA8, 2, 2);
- EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
- EXPECT_EQ(GL_NO_ERROR, GetGLError());
- TextureRef* texture_ref =
- group().texture_manager()->GetTexture(client_texture_id_);
- Texture* texture = texture_ref->texture();
- GLenum type;
- GLenum internal_format;
- EXPECT_TRUE(texture->GetLevelType(GL_TEXTURE_2D, 0, &type, &internal_format));
- EXPECT_EQ(static_cast<GLenum>(GL_RGBA8), internal_format);
- EXPECT_EQ(static_cast<GLenum>(GL_UNSIGNED_BYTE), type);
+ DoTexStorageFormatAndType(init, GL_RGBA8, GL_RGBA8);
+}
+
+TEST_P(GLES2DecoderTexStorageFormatAndTypeTest, WebGL2) {
+ InitState init;
+ init.gl_version = "OpenGL ES 3.0";
+ init.bind_generates_resource = true;
+ init.context_type = CONTEXT_TYPE_WEBGL2;
+ DoTexStorageFormatAndType(init, GL_RGBA8, GL_RGBA8);
}
TEST_P(GLES3DecoderTest, TexStorage3DValidArgs) {
« no previous file with comments | « gpu/command_buffer/service/gles2_cmd_decoder.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698