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

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

Issue 245923008: Optimize GLES2DecoderImpl::ApplyDirtyState. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase on refactored gles2_cmd_decoder_unittest.cc Created 6 years, 8 months 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
Index: gpu/command_buffer/service/gles2_cmd_decoder_unittest_framebuffers.cc
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_framebuffers.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_framebuffers.cc
index a591b25c4e33115a5683dcc69939afc9747575c8..30cd44f02dab60214cb8c64d592f19e9a3035a93 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_framebuffers.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_framebuffers.cc
@@ -54,15 +54,14 @@ namespace gles2 {
using namespace cmds;
-class GLES2DecoderTestWithExtensionsOnGLES2
- : public GLES2DecoderTest,
- public ::testing::WithParamInterface<const char*> {
+class GLES2DecoderTestWithExtensionsOnGLES2 : public GLES2DecoderTest {
public:
GLES2DecoderTestWithExtensionsOnGLES2() {}
- virtual void SetUp() {
+ virtual void SetUp() {}
+ void Init(const char* extensions) {
InitState init;
- init.extensions = GetParam();
+ init.extensions = extensions;
init.gl_version = "opengl es 2.0";
init.has_alpha = true;
init.has_depth = true;
@@ -72,7 +71,7 @@ class GLES2DecoderTestWithExtensionsOnGLES2
}
};
-TEST_F(GLES2DecoderTest, CheckFramebufferStatusWithNoBoundTarget) {
+TEST_P(GLES2DecoderTest, CheckFramebufferStatusWithNoBoundTarget) {
EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(_)).Times(0);
CheckFramebufferStatus::Result* result =
static_cast<CheckFramebufferStatus::Result*>(shared_memory_address_);
@@ -83,7 +82,7 @@ TEST_F(GLES2DecoderTest, CheckFramebufferStatusWithNoBoundTarget) {
EXPECT_EQ(static_cast<GLenum>(GL_FRAMEBUFFER_COMPLETE), *result);
}
-TEST_F(GLES2DecoderWithShaderTest, BindAndDeleteFramebuffer) {
+TEST_P(GLES2DecoderWithShaderTest, BindAndDeleteFramebuffer) {
SetupTexture();
AddExpectationsForSimulatedAttrib0(kNumVertices, 0);
SetupExpectationsForApplyingDefaultDirtyState();
@@ -106,7 +105,7 @@ TEST_F(GLES2DecoderWithShaderTest, BindAndDeleteFramebuffer) {
EXPECT_EQ(GL_NO_ERROR, GetGLError());
}
-TEST_F(GLES2DecoderTest, FramebufferRenderbufferWithNoBoundTarget) {
+TEST_P(GLES2DecoderTest, FramebufferRenderbufferWithNoBoundTarget) {
EXPECT_CALL(*gl_, FramebufferRenderbufferEXT(_, _, _, _)).Times(0);
FramebufferRenderbuffer cmd;
cmd.Init(GL_FRAMEBUFFER,
@@ -117,7 +116,7 @@ TEST_F(GLES2DecoderTest, FramebufferRenderbufferWithNoBoundTarget) {
EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
}
-TEST_F(GLES2DecoderTest, FramebufferTexture2DWithNoBoundTarget) {
+TEST_P(GLES2DecoderTest, FramebufferTexture2DWithNoBoundTarget) {
EXPECT_CALL(*gl_, FramebufferTexture2DEXT(_, _, _, _, _)).Times(0);
FramebufferTexture2D cmd;
cmd.Init(GL_FRAMEBUFFER,
@@ -129,7 +128,7 @@ TEST_F(GLES2DecoderTest, FramebufferTexture2DWithNoBoundTarget) {
EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
}
-TEST_F(GLES2DecoderTest, GetFramebufferAttachmentParameterivWithNoBoundTarget) {
+TEST_P(GLES2DecoderTest, GetFramebufferAttachmentParameterivWithNoBoundTarget) {
EXPECT_CALL(*gl_, GetError())
.WillOnce(Return(GL_NO_ERROR))
.WillOnce(Return(GL_NO_ERROR))
@@ -146,7 +145,7 @@ TEST_F(GLES2DecoderTest, GetFramebufferAttachmentParameterivWithNoBoundTarget) {
EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
}
-TEST_F(GLES2DecoderTest, GetFramebufferAttachmentParameterivWithRenderbuffer) {
+TEST_P(GLES2DecoderTest, GetFramebufferAttachmentParameterivWithRenderbuffer) {
DoBindFramebuffer(
GL_FRAMEBUFFER, client_framebuffer_id_, kServiceFramebufferId);
EXPECT_CALL(*gl_, GetError())
@@ -188,7 +187,7 @@ TEST_F(GLES2DecoderTest, GetFramebufferAttachmentParameterivWithRenderbuffer) {
EXPECT_EQ(static_cast<GLuint>(*result_value), client_renderbuffer_id_);
}
-TEST_F(GLES2DecoderTest, GetFramebufferAttachmentParameterivWithTexture) {
+TEST_P(GLES2DecoderTest, GetFramebufferAttachmentParameterivWithTexture) {
DoBindFramebuffer(
GL_FRAMEBUFFER, client_framebuffer_id_, kServiceFramebufferId);
EXPECT_CALL(*gl_, GetError())
@@ -232,7 +231,7 @@ TEST_F(GLES2DecoderTest, GetFramebufferAttachmentParameterivWithTexture) {
EXPECT_EQ(static_cast<GLuint>(*result_value), client_texture_id_);
}
-TEST_F(GLES2DecoderTest, GetRenderbufferParameterivWithNoBoundTarget) {
+TEST_P(GLES2DecoderTest, GetRenderbufferParameterivWithNoBoundTarget) {
EXPECT_CALL(*gl_, GetError())
.WillOnce(Return(GL_NO_ERROR))
.WillOnce(Return(GL_NO_ERROR))
@@ -247,7 +246,7 @@ TEST_F(GLES2DecoderTest, GetRenderbufferParameterivWithNoBoundTarget) {
EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
}
-TEST_F(GLES2DecoderTest, RenderbufferStorageWithNoBoundTarget) {
+TEST_P(GLES2DecoderTest, RenderbufferStorageWithNoBoundTarget) {
EXPECT_CALL(*gl_, RenderbufferStorageEXT(_, _, _, _)).Times(0);
RenderbufferStorage cmd;
cmd.Init(GL_RENDERBUFFER, GL_RGBA4, 3, 4);
@@ -475,7 +474,7 @@ void GLES2DecoderTest::CheckReadPixelsOutOfRange(GLint in_read_x,
}
}
-TEST_F(GLES2DecoderTest, ReadPixels) {
+TEST_P(GLES2DecoderTest, ReadPixels) {
const GLsizei kWidth = 5;
const GLsizei kHeight = 3;
const GLint kBytesPerPixel = 3;
@@ -523,7 +522,7 @@ TEST_F(GLES2DecoderTest, ReadPixels) {
}
}
-TEST_F(GLES2DecoderRGBBackbufferTest, ReadPixelsNoAlphaBackbuffer) {
+TEST_P(GLES2DecoderRGBBackbufferTest, ReadPixelsNoAlphaBackbuffer) {
const GLsizei kWidth = 3;
const GLsizei kHeight = 3;
const GLint kBytesPerPixel = 4;
@@ -579,7 +578,7 @@ TEST_F(GLES2DecoderRGBBackbufferTest, ReadPixelsNoAlphaBackbuffer) {
}
}
-TEST_F(GLES2DecoderTest, ReadPixelsOutOfRange) {
+TEST_P(GLES2DecoderTest, ReadPixelsOutOfRange) {
static GLint tests[][4] = {
{
-2, -1, 9, 5,
@@ -610,7 +609,7 @@ TEST_F(GLES2DecoderTest, ReadPixelsOutOfRange) {
}
}
-TEST_F(GLES2DecoderTest, ReadPixelsInvalidArgs) {
+TEST_P(GLES2DecoderTest, ReadPixelsInvalidArgs) {
typedef ReadPixels::Result Result;
Result* result = GetSharedMemoryAs<Result*>();
uint32 result_shm_id = kSharedMemoryId;
@@ -708,7 +707,7 @@ TEST_F(GLES2DecoderTest, ReadPixelsInvalidArgs) {
EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
}
-TEST_F(GLES2DecoderManualInitTest, ReadPixelsAsyncError) {
+TEST_P(GLES2DecoderManualInitTest, ReadPixelsAsyncError) {
InitState init;
init.extensions = "GL_ARB_sync";
init.gl_version = "opengl es 3.0";
@@ -762,7 +761,7 @@ TEST_F(GLES2DecoderManualInitTest, ReadPixelsAsyncError) {
// Check that if a renderbuffer is attached and GL returns
// GL_FRAMEBUFFER_COMPLETE that the buffer is cleared and state is restored.
-TEST_F(GLES2DecoderTest, FramebufferRenderbufferClearColor) {
+TEST_P(GLES2DecoderTest, FramebufferRenderbufferClearColor) {
DoBindFramebuffer(
GL_FRAMEBUFFER, client_framebuffer_id_, kServiceFramebufferId);
ClearColor color_cmd;
@@ -780,6 +779,7 @@ TEST_F(GLES2DecoderTest, FramebufferRenderbufferClearColor) {
EXPECT_CALL(*gl_, ClearColor(0.1f, 0.2f, 0.3f, 0.4f))
.Times(1)
.RetiresOnSaturation();
+ SetupExpectationsForEnableDisable(GL_SCISSOR_TEST, true);
EXPECT_CALL(*gl_, GetError())
.WillOnce(Return(GL_NO_ERROR))
.RetiresOnSaturation();
@@ -799,7 +799,7 @@ TEST_F(GLES2DecoderTest, FramebufferRenderbufferClearColor) {
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
}
-TEST_F(GLES2DecoderTest, FramebufferRenderbufferClearDepth) {
+TEST_P(GLES2DecoderTest, FramebufferRenderbufferClearDepth) {
DoBindFramebuffer(
GL_FRAMEBUFFER, client_framebuffer_id_, kServiceFramebufferId);
ClearDepthf depth_cmd;
@@ -831,7 +831,7 @@ TEST_F(GLES2DecoderTest, FramebufferRenderbufferClearDepth) {
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
}
-TEST_F(GLES2DecoderTest, FramebufferRenderbufferClearStencil) {
+TEST_P(GLES2DecoderTest, FramebufferRenderbufferClearStencil) {
DoBindFramebuffer(
GL_FRAMEBUFFER, client_framebuffer_id_, kServiceFramebufferId);
ClearStencil stencil_cmd;
@@ -864,7 +864,7 @@ TEST_F(GLES2DecoderTest, FramebufferRenderbufferClearStencil) {
}
#if 0 // Turn this test on once we allow GL_DEPTH_STENCIL_ATTACHMENT
-TEST_F(GLES2DecoderTest, FramebufferRenderbufferClearDepthStencil) {
+TEST_P(GLES2DecoderTest, FramebufferRenderbufferClearDepthStencil) {
DoBindFramebuffer(GL_FRAMEBUFFER, client_framebuffer_id_,
kServiceFramebufferId);
ClearDepthf depth_cmd;
@@ -893,7 +893,7 @@ TEST_F(GLES2DecoderTest, FramebufferRenderbufferClearDepthStencil) {
}
#endif
-TEST_F(GLES2DecoderManualInitTest, ActualAlphaMatchesRequestedAlpha) {
+TEST_P(GLES2DecoderManualInitTest, ActualAlphaMatchesRequestedAlpha) {
InitState init;
init.gl_version = "3.0";
init.has_alpha = true;
@@ -920,7 +920,7 @@ TEST_F(GLES2DecoderManualInitTest, ActualAlphaMatchesRequestedAlpha) {
EXPECT_EQ(8, result->GetData()[0]);
}
-TEST_F(GLES2DecoderManualInitTest, ActualAlphaDoesNotMatchRequestedAlpha) {
+TEST_P(GLES2DecoderManualInitTest, ActualAlphaDoesNotMatchRequestedAlpha) {
InitState init;
init.gl_version = "3.0";
init.has_alpha = true;
@@ -946,7 +946,7 @@ TEST_F(GLES2DecoderManualInitTest, ActualAlphaDoesNotMatchRequestedAlpha) {
EXPECT_EQ(0, result->GetData()[0]);
}
-TEST_F(GLES2DecoderManualInitTest, ActualDepthMatchesRequestedDepth) {
+TEST_P(GLES2DecoderManualInitTest, ActualDepthMatchesRequestedDepth) {
InitState init;
init.gl_version = "3.0";
init.has_depth = true;
@@ -973,7 +973,7 @@ TEST_F(GLES2DecoderManualInitTest, ActualDepthMatchesRequestedDepth) {
EXPECT_EQ(24, result->GetData()[0]);
}
-TEST_F(GLES2DecoderManualInitTest, ActualDepthDoesNotMatchRequestedDepth) {
+TEST_P(GLES2DecoderManualInitTest, ActualDepthDoesNotMatchRequestedDepth) {
InitState init;
init.gl_version = "3.0";
init.has_depth = true;
@@ -999,7 +999,7 @@ TEST_F(GLES2DecoderManualInitTest, ActualDepthDoesNotMatchRequestedDepth) {
EXPECT_EQ(0, result->GetData()[0]);
}
-TEST_F(GLES2DecoderManualInitTest, ActualStencilMatchesRequestedStencil) {
+TEST_P(GLES2DecoderManualInitTest, ActualStencilMatchesRequestedStencil) {
InitState init;
init.gl_version = "3.0";
init.has_stencil = true;
@@ -1026,7 +1026,7 @@ TEST_F(GLES2DecoderManualInitTest, ActualStencilMatchesRequestedStencil) {
EXPECT_EQ(8, result->GetData()[0]);
}
-TEST_F(GLES2DecoderManualInitTest, ActualStencilDoesNotMatchRequestedStencil) {
+TEST_P(GLES2DecoderManualInitTest, ActualStencilDoesNotMatchRequestedStencil) {
InitState init;
init.gl_version = "3.0";
init.has_stencil = true;
@@ -1052,7 +1052,7 @@ TEST_F(GLES2DecoderManualInitTest, ActualStencilDoesNotMatchRequestedStencil) {
EXPECT_EQ(0, result->GetData()[0]);
}
-TEST_F(GLES2DecoderManualInitTest, PackedDepthStencilReportsCorrectValues) {
+TEST_P(GLES2DecoderManualInitTest, PackedDepthStencilReportsCorrectValues) {
InitState init;
init.extensions = "GL_OES_packed_depth_stencil";
init.gl_version = "opengl es 2.0";
@@ -1094,7 +1094,7 @@ TEST_F(GLES2DecoderManualInitTest, PackedDepthStencilReportsCorrectValues) {
EXPECT_EQ(24, result->GetData()[0]);
}
-TEST_F(GLES2DecoderManualInitTest, PackedDepthStencilNoRequestedStencil) {
+TEST_P(GLES2DecoderManualInitTest, PackedDepthStencilNoRequestedStencil) {
InitState init;
init.extensions = "GL_OES_packed_depth_stencil";
init.gl_version = "opengl es 2.0";
@@ -1135,7 +1135,7 @@ TEST_F(GLES2DecoderManualInitTest, PackedDepthStencilNoRequestedStencil) {
EXPECT_EQ(24, result->GetData()[0]);
}
-TEST_F(GLES2DecoderManualInitTest, PackedDepthStencilRenderbufferDepth) {
+TEST_P(GLES2DecoderManualInitTest, PackedDepthStencilRenderbufferDepth) {
InitState init;
init.extensions = "GL_OES_packed_depth_stencil";
init.gl_version = "opengl es 2.0";
@@ -1204,7 +1204,7 @@ TEST_F(GLES2DecoderManualInitTest, PackedDepthStencilRenderbufferDepth) {
EXPECT_EQ(24, result->GetData()[0]);
}
-TEST_F(GLES2DecoderManualInitTest, PackedDepthStencilRenderbufferStencil) {
+TEST_P(GLES2DecoderManualInitTest, PackedDepthStencilRenderbufferStencil) {
InitState init;
init.extensions = "GL_OES_packed_depth_stencil";
init.gl_version = "opengl es 2.0";
@@ -1273,7 +1273,7 @@ TEST_F(GLES2DecoderManualInitTest, PackedDepthStencilRenderbufferStencil) {
EXPECT_EQ(0, result->GetData()[0]);
}
-TEST_F(GLES2DecoderTest, FramebufferRenderbufferGLError) {
+TEST_P(GLES2DecoderTest, FramebufferRenderbufferGLError) {
DoBindFramebuffer(
GL_FRAMEBUFFER, client_framebuffer_id_, kServiceFramebufferId);
EXPECT_CALL(*gl_, GetError())
@@ -1296,7 +1296,7 @@ TEST_F(GLES2DecoderTest, FramebufferRenderbufferGLError) {
EXPECT_EQ(GL_OUT_OF_MEMORY, GetGLError());
}
-TEST_F(GLES2DecoderTest, FramebufferTexture2DGLError) {
+TEST_P(GLES2DecoderTest, FramebufferTexture2DGLError) {
const GLsizei kWidth = 5;
const GLsizei kHeight = 3;
const GLenum kFormat = GL_RGB;
@@ -1335,7 +1335,7 @@ TEST_F(GLES2DecoderTest, FramebufferTexture2DGLError) {
EXPECT_EQ(GL_OUT_OF_MEMORY, GetGLError());
}
-TEST_F(GLES2DecoderTest, RenderbufferStorageGLError) {
+TEST_P(GLES2DecoderTest, RenderbufferStorageGLError) {
DoBindRenderbuffer(
GL_RENDERBUFFER, client_renderbuffer_id_, kServiceRenderbufferId);
EXPECT_CALL(*gl_, GetError())
@@ -1351,7 +1351,7 @@ TEST_F(GLES2DecoderTest, RenderbufferStorageGLError) {
EXPECT_EQ(GL_OUT_OF_MEMORY, GetGLError());
}
-TEST_F(GLES2DecoderTest, RenderbufferStorageBadArgs) {
+TEST_P(GLES2DecoderTest, RenderbufferStorageBadArgs) {
DoBindRenderbuffer(
GL_RENDERBUFFER, client_renderbuffer_id_, kServiceRenderbufferId);
EXPECT_CALL(*gl_, RenderbufferStorageEXT(_, _, _, _))
@@ -1366,7 +1366,7 @@ TEST_F(GLES2DecoderTest, RenderbufferStorageBadArgs) {
EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
}
-TEST_F(GLES2DecoderManualInitTest,
+TEST_P(GLES2DecoderManualInitTest,
RenderbufferStorageMultisampleCHROMIUMGLError) {
InitState init;
init.extensions = "GL_EXT_framebuffer_multisample";
@@ -1390,7 +1390,7 @@ TEST_F(GLES2DecoderManualInitTest,
EXPECT_EQ(GL_OUT_OF_MEMORY, GetGLError());
}
-TEST_F(GLES2DecoderManualInitTest,
+TEST_P(GLES2DecoderManualInitTest,
RenderbufferStorageMultisampleCHROMIUMBadArgs) {
InitState init;
init.extensions = "GL_EXT_framebuffer_multisample";
@@ -1426,7 +1426,7 @@ TEST_F(GLES2DecoderManualInitTest,
EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
}
-TEST_F(GLES2DecoderManualInitTest, RenderbufferStorageMultisampleCHROMIUM) {
+TEST_P(GLES2DecoderManualInitTest, RenderbufferStorageMultisampleCHROMIUM) {
InitState init;
init.extensions = "GL_EXT_framebuffer_multisample";
init.gl_version = "2.1";
@@ -1459,7 +1459,7 @@ TEST_F(GLES2DecoderManualInitTest, RenderbufferStorageMultisampleCHROMIUM) {
EXPECT_EQ(GL_NO_ERROR, GetGLError());
}
-TEST_F(GLES2DecoderManualInitTest,
+TEST_P(GLES2DecoderManualInitTest,
RenderbufferStorageMultisampleEXTNotSupported) {
InitState init;
init.extensions = "GL_EXT_framebuffer_multisample";
@@ -1481,71 +1481,94 @@ TEST_F(GLES2DecoderManualInitTest,
}
class GLES2DecoderMultisampledRenderToTextureTest
- : public GLES2DecoderTestWithExtensionsOnGLES2 {};
+ : public GLES2DecoderTestWithExtensionsOnGLES2 {
+ public:
+ void TestNotCompatibleWithRenderbufferStorageMultisampleCHROMIUM() {
+ DoBindRenderbuffer(
+ GL_RENDERBUFFER, client_renderbuffer_id_, kServiceRenderbufferId);
+ RenderbufferStorageMultisampleCHROMIUM cmd;
+ cmd.Init(GL_RENDERBUFFER,
+ TestHelper::kMaxSamples,
+ GL_RGBA4,
+ TestHelper::kMaxRenderbufferSize,
+ 1);
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
+ EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
+ }
+
+ void TestRenderbufferStorageMultisampleEXT(const char* extension) {
+ DoBindRenderbuffer(
+ GL_RENDERBUFFER, client_renderbuffer_id_, kServiceRenderbufferId);
+ InSequence sequence;
+ EXPECT_CALL(*gl_, GetError())
+ .WillOnce(Return(GL_NO_ERROR))
+ .RetiresOnSaturation();
+ if (strstr(extension, "GL_IMG_multisampled_render_to_texture")) {
+ EXPECT_CALL(
+ *gl_,
+ RenderbufferStorageMultisampleIMG(GL_RENDERBUFFER,
+ TestHelper::kMaxSamples,
+ GL_RGBA,
+ TestHelper::kMaxRenderbufferSize,
+ 1))
+ .Times(1)
+ .RetiresOnSaturation();
+ } else {
+ EXPECT_CALL(
+ *gl_,
+ RenderbufferStorageMultisampleEXT(GL_RENDERBUFFER,
+ TestHelper::kMaxSamples,
+ GL_RGBA,
+ TestHelper::kMaxRenderbufferSize,
+ 1))
+ .Times(1)
+ .RetiresOnSaturation();
+ }
+ EXPECT_CALL(*gl_, GetError())
+ .WillOnce(Return(GL_NO_ERROR))
+ .RetiresOnSaturation();
+ RenderbufferStorageMultisampleEXT cmd;
+ cmd.Init(GL_RENDERBUFFER,
+ TestHelper::kMaxSamples,
+ GL_RGBA4,
+ TestHelper::kMaxRenderbufferSize,
+ 1);
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
+ EXPECT_EQ(GL_NO_ERROR, GetGLError());
+ }
+};
+
+INSTANTIATE_TEST_CASE_P(Service,
+ GLES2DecoderMultisampledRenderToTextureTest,
+ ::testing::Bool());
TEST_P(GLES2DecoderMultisampledRenderToTextureTest,
- NotCompatibleWithRenderbufferStorageMultisampleCHROMIUM) {
- DoBindRenderbuffer(
- GL_RENDERBUFFER, client_renderbuffer_id_, kServiceRenderbufferId);
- RenderbufferStorageMultisampleCHROMIUM cmd;
- cmd.Init(GL_RENDERBUFFER,
- TestHelper::kMaxSamples,
- GL_RGBA4,
- TestHelper::kMaxRenderbufferSize,
- 1);
- EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
- EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
+ NotCompatibleWithRenderbufferStorageMultisampleCHROMIUM_EXT) {
+ Init("GL_EXT_multisampled_render_to_texture");
+ TestNotCompatibleWithRenderbufferStorageMultisampleCHROMIUM();
}
TEST_P(GLES2DecoderMultisampledRenderToTextureTest,
- RenderbufferStorageMultisampleEXT) {
- DoBindRenderbuffer(
- GL_RENDERBUFFER, client_renderbuffer_id_, kServiceRenderbufferId);
- InSequence sequence;
- EXPECT_CALL(*gl_, GetError())
- .WillOnce(Return(GL_NO_ERROR))
- .RetiresOnSaturation();
- if (strstr(GetParam(), "GL_IMG_multisampled_render_to_texture")) {
- EXPECT_CALL(
- *gl_,
- RenderbufferStorageMultisampleIMG(GL_RENDERBUFFER,
- TestHelper::kMaxSamples,
- GL_RGBA,
- TestHelper::kMaxRenderbufferSize,
- 1))
- .Times(1)
- .RetiresOnSaturation();
- } else {
- EXPECT_CALL(
- *gl_,
- RenderbufferStorageMultisampleEXT(GL_RENDERBUFFER,
- TestHelper::kMaxSamples,
- GL_RGBA,
- TestHelper::kMaxRenderbufferSize,
- 1))
- .Times(1)
- .RetiresOnSaturation();
- }
- EXPECT_CALL(*gl_, GetError())
- .WillOnce(Return(GL_NO_ERROR))
- .RetiresOnSaturation();
- RenderbufferStorageMultisampleEXT cmd;
- cmd.Init(GL_RENDERBUFFER,
- TestHelper::kMaxSamples,
- GL_RGBA4,
- TestHelper::kMaxRenderbufferSize,
- 1);
- EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
- EXPECT_EQ(GL_NO_ERROR, GetGLError());
+ NotCompatibleWithRenderbufferStorageMultisampleCHROMIUM_IMG) {
+ Init("GL_IMG_multisampled_render_to_texture");
+ TestNotCompatibleWithRenderbufferStorageMultisampleCHROMIUM();
}
-INSTANTIATE_TEST_CASE_P(
- GLES2DecoderMultisampledRenderToTextureTests,
- GLES2DecoderMultisampledRenderToTextureTest,
- ::testing::Values("GL_EXT_multisampled_render_to_texture",
- "GL_IMG_multisampled_render_to_texture"));
+TEST_P(GLES2DecoderMultisampledRenderToTextureTest,
+ RenderbufferStorageMultisampleEXT_EXT) {
+ Init("GL_EXT_multisampled_render_to_texture");
+ TestRenderbufferStorageMultisampleEXT(
+ "GL_EXT_multisampled_render_to_texture");
+}
+
+TEST_P(GLES2DecoderMultisampledRenderToTextureTest,
+ RenderbufferStorageMultisampleEXT_IMG) {
+ Init("GL_IMG_multisampled_render_to_texture");
+ TestRenderbufferStorageMultisampleEXT(
+ "GL_IMG_multisampled_render_to_texture");
+}
-TEST_F(GLES2DecoderTest, ReadPixelsGLError) {
+TEST_P(GLES2DecoderTest, ReadPixelsGLError) {
GLenum kFormat = GL_RGBA;
GLint x = 0;
GLint y = 0;
@@ -1581,7 +1604,7 @@ TEST_F(GLES2DecoderTest, ReadPixelsGLError) {
EXPECT_EQ(GL_OUT_OF_MEMORY, GetGLError());
}
-TEST_F(GLES2DecoderWithShaderTest, UnClearedAttachmentsGetClearedOnClear) {
+TEST_P(GLES2DecoderWithShaderTest, UnClearedAttachmentsGetClearedOnClear) {
const GLuint kFBOClientTextureId = 4100;
const GLuint kFBOServiceTextureId = 4101;
@@ -1625,10 +1648,7 @@ TEST_F(GLES2DecoderWithShaderTest, UnClearedAttachmentsGetClearedOnClear) {
false, // depth enabled
0, // front stencil mask
0, // back stencil mask
- false, // stencil enabled
- false, // cull_face_enabled
- false, // scissor_test_enabled
- false); // blend_enabled
+ false); // stencil enabled
EXPECT_CALL(*gl_, Clear(GL_COLOR_BUFFER_BIT)).Times(1).RetiresOnSaturation();
@@ -1638,7 +1658,7 @@ TEST_F(GLES2DecoderWithShaderTest, UnClearedAttachmentsGetClearedOnClear) {
EXPECT_EQ(GL_NO_ERROR, GetGLError());
}
-TEST_F(GLES2DecoderWithShaderTest, UnClearedAttachmentsGetClearedOnReadPixels) {
+TEST_P(GLES2DecoderWithShaderTest, UnClearedAttachmentsGetClearedOnReadPixels) {
const GLuint kFBOClientTextureId = 4100;
const GLuint kFBOServiceTextureId = 4101;
@@ -1704,7 +1724,7 @@ TEST_F(GLES2DecoderWithShaderTest, UnClearedAttachmentsGetClearedOnReadPixels) {
EXPECT_EQ(GL_NO_ERROR, GetGLError());
}
-TEST_F(GLES2DecoderManualInitTest,
+TEST_P(GLES2DecoderManualInitTest,
UnClearedAttachmentsGetClearedOnReadPixelsAndDrawBufferGetsRestored) {
InitState init;
init.extensions = "GL_EXT_framebuffer_multisample";
@@ -1734,6 +1754,10 @@ TEST_F(GLES2DecoderManualInitTest,
0,
GL_NO_ERROR);
+ // Enable GL_SCISSOR_TEST to make sure we disable it in the clear,
+ // then re-enable after.
+ DoEnableDisable(GL_SCISSOR_TEST, true);
+
SetupExpectationsForFramebufferClearingMulti(
kServiceFramebufferId, // read framebuffer service id
0, // backbuffer service id
@@ -1742,10 +1766,10 @@ TEST_F(GLES2DecoderManualInitTest,
0,
0,
0,
- 0, // color
- 0, // stencil
- 1.0f, // depth
- false); // scissor test
+ 0, // color
+ 0, // stencil
+ 1.0f, // depth
+ true); // scissor test
EXPECT_CALL(*gl_, GetError())
.WillOnce(Return(GL_NO_ERROR))
@@ -1775,7 +1799,7 @@ TEST_F(GLES2DecoderManualInitTest,
EXPECT_EQ(GL_NO_ERROR, GetGLError());
}
-TEST_F(GLES2DecoderWithShaderTest, CopyTexImageWithInCompleteFBOFails) {
+TEST_P(GLES2DecoderWithShaderTest, CopyTexImageWithInCompleteFBOFails) {
GLenum target = GL_TEXTURE_2D;
GLint level = 0;
GLenum internal_format = GL_RGBA;
@@ -1854,12 +1878,12 @@ void GLES2DecoderWithShaderTest::CheckRenderbufferChangesMarkFBOAsNotComplete(
0);
}
-TEST_F(GLES2DecoderWithShaderTest,
+TEST_P(GLES2DecoderWithShaderTest,
RenderbufferChangesMarkFBOAsNotCompleteBoundFBO) {
CheckRenderbufferChangesMarkFBOAsNotComplete(true);
}
-TEST_F(GLES2DecoderWithShaderTest,
+TEST_P(GLES2DecoderWithShaderTest,
RenderbufferChangesMarkFBOAsNotCompleteUnboundFBO) {
CheckRenderbufferChangesMarkFBOAsNotComplete(false);
}
@@ -1962,16 +1986,16 @@ void GLES2DecoderWithShaderTest::CheckTextureChangesMarkFBOAsNotComplete(
0);
}
-TEST_F(GLES2DecoderWithShaderTest, TextureChangesMarkFBOAsNotCompleteBoundFBO) {
+TEST_P(GLES2DecoderWithShaderTest, TextureChangesMarkFBOAsNotCompleteBoundFBO) {
CheckTextureChangesMarkFBOAsNotComplete(true);
}
-TEST_F(GLES2DecoderWithShaderTest,
+TEST_P(GLES2DecoderWithShaderTest,
TextureChangesMarkFBOAsNotCompleteUnboundFBO) {
CheckTextureChangesMarkFBOAsNotComplete(false);
}
-TEST_F(GLES2DecoderTest, CanChangeSurface) {
+TEST_P(GLES2DecoderTest, CanChangeSurface) {
scoped_refptr<GLSurfaceMock> other_surface(new GLSurfaceMock);
EXPECT_CALL(*other_surface.get(), GetBackingFrameBufferObject())
.WillOnce(Return(7));
@@ -1980,7 +2004,7 @@ TEST_F(GLES2DecoderTest, CanChangeSurface) {
decoder_->SetSurface(other_surface);
}
-TEST_F(GLES2DecoderTest, DrawBuffersEXTImmediateSuccceeds) {
+TEST_P(GLES2DecoderTest, DrawBuffersEXTImmediateSuccceeds) {
const GLsizei count = 1;
const GLenum bufs[] = {GL_COLOR_ATTACHMENT0};
DrawBuffersEXTImmediate& cmd = *GetImmediateAs<DrawBuffersEXTImmediate>();
@@ -1993,7 +2017,7 @@ TEST_F(GLES2DecoderTest, DrawBuffersEXTImmediateSuccceeds) {
EXPECT_EQ(GL_NO_ERROR, GetGLError());
}
-TEST_F(GLES2DecoderTest, DrawBuffersEXTImmediateFails) {
+TEST_P(GLES2DecoderTest, DrawBuffersEXTImmediateFails) {
const GLsizei count = 1;
const GLenum bufs[] = {GL_COLOR_ATTACHMENT1_EXT};
DrawBuffersEXTImmediate& cmd = *GetImmediateAs<DrawBuffersEXTImmediate>();
@@ -2005,7 +2029,7 @@ TEST_F(GLES2DecoderTest, DrawBuffersEXTImmediateFails) {
EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
}
-TEST_F(GLES2DecoderTest, DrawBuffersEXTImmediateBackbuffer) {
+TEST_P(GLES2DecoderTest, DrawBuffersEXTImmediateBackbuffer) {
const GLsizei count = 1;
const GLenum bufs[] = {GL_BACK};
DrawBuffersEXTImmediate& cmd = *GetImmediateAs<DrawBuffersEXTImmediate>();
@@ -2024,7 +2048,7 @@ TEST_F(GLES2DecoderTest, DrawBuffersEXTImmediateBackbuffer) {
EXPECT_EQ(GL_NO_ERROR, GetGLError());
}
-TEST_F(GLES2DecoderManualInitTest, InvalidateFramebufferBinding) {
+TEST_P(GLES2DecoderManualInitTest, InvalidateFramebufferBinding) {
InitState init;
init.gl_version = "opengl es 3.0";
InitDecoder(init);
@@ -2038,7 +2062,7 @@ TEST_F(GLES2DecoderManualInitTest, InvalidateFramebufferBinding) {
gfx::MockGLInterface::GetGLProcAddress("glDiscardFramebufferEXT"));
}
-TEST_F(GLES2DecoderManualInitTest, DiscardFramebufferEXT) {
+TEST_P(GLES2DecoderManualInitTest, DiscardFramebufferEXT) {
InitState init;
init.extensions = "GL_EXT_discard_framebuffer";
init.gl_version = "opengl es 2.0";
@@ -2080,7 +2104,7 @@ TEST_F(GLES2DecoderManualInitTest, DiscardFramebufferEXT) {
EXPECT_FALSE(framebuffer->IsCleared());
}
-TEST_F(GLES2DecoderTest, DiscardFramebufferEXTUnsupported) {
+TEST_P(GLES2DecoderTest, DiscardFramebufferEXTUnsupported) {
const GLenum target = GL_FRAMEBUFFER;
const GLsizei count = 1;
const GLenum attachments[] = {GL_COLOR_EXT};
@@ -2093,7 +2117,7 @@ TEST_F(GLES2DecoderTest, DiscardFramebufferEXTUnsupported) {
EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
}
-TEST_F(GLES2DecoderManualInitTest, ReadFormatExtension) {
+TEST_P(GLES2DecoderManualInitTest, ReadFormatExtension) {
InitState init;
init.extensions = "GL_OES_read_format";
init.gl_version = "2.1";
@@ -2153,7 +2177,7 @@ TEST_F(GLES2DecoderManualInitTest, ReadFormatExtension) {
EXPECT_EQ(GL_NO_ERROR, GetGLError());
}
-TEST_F(GLES2DecoderManualInitTest, NoReadFormatExtension) {
+TEST_P(GLES2DecoderManualInitTest, NoReadFormatExtension) {
InitState init;
init.gl_version = "2.1";
init.bind_generates_resource = true;

Powered by Google App Engine
This is Rietveld 408576698