| Index: gpu/command_buffer/service/test_helper.cc
|
| diff --git a/gpu/command_buffer/service/test_helper.cc b/gpu/command_buffer/service/test_helper.cc
|
| index 92c5ec456ef78ca6ff2d1ab6a0b922c224bf3bf3..358adf96ee98ffcfcf3cb6eba96770868613b7bd 100644
|
| --- a/gpu/command_buffer/service/test_helper.cc
|
| +++ b/gpu/command_buffer/service/test_helper.cc
|
| @@ -227,16 +227,20 @@ void TestHelper::SetupTextureManagerDestructionExpectations(
|
| void TestHelper::SetupContextGroupInitExpectations(
|
| ::gfx::MockGLInterface* gl,
|
| const DisallowedFeatures& disallowed_features,
|
| - const char* extensions) {
|
| + const char* extensions,
|
| + const char* gl_version) {
|
| InSequence sequence;
|
|
|
| - SetupFeatureInfoInitExpectations(gl, extensions);
|
| + SetupFeatureInfoInitExpectationsWithGLVersion(gl, extensions, "", gl_version);
|
| +
|
| + std::string l_version(StringToLowerASCII(std::string(gl_version)));
|
| + bool is_es3 = (l_version.substr(0, 12) == "opengl es 3.");
|
|
|
| EXPECT_CALL(*gl, GetIntegerv(GL_MAX_RENDERBUFFER_SIZE, _))
|
| .WillOnce(SetArgumentPointee<1>(kMaxRenderbufferSize))
|
| .RetiresOnSaturation();
|
| if (strstr(extensions, "GL_EXT_framebuffer_multisample") ||
|
| - strstr(extensions, "GL_EXT_multisampled_render_to_texture")) {
|
| + strstr(extensions, "GL_EXT_multisampled_render_to_texture") || is_es3) {
|
| EXPECT_CALL(*gl, GetIntegerv(GL_MAX_SAMPLES, _))
|
| .WillOnce(SetArgumentPointee<1>(kMaxSamples))
|
| .RetiresOnSaturation();
|
| @@ -297,6 +301,74 @@ void TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion(
|
| EXPECT_CALL(*gl, GetString(GL_VERSION))
|
| .WillOnce(Return(reinterpret_cast<const uint8*>(gl_version)))
|
| .RetiresOnSaturation();
|
| +
|
| + std::string l_version(StringToLowerASCII(std::string(gl_version)));
|
| + bool is_es3 = (l_version.substr(0, 12) == "opengl es 3.");
|
| +
|
| + if (strstr(extensions, "GL_ARB_texture_float") ||
|
| + (is_es3 && strstr(extensions, "GL_EXT_color_buffer_float"))) {
|
| + static const GLuint gl_ids[] = {101, 102};
|
| + const GLsizei width = 16;
|
| + EXPECT_CALL(*gl, GetIntegerv(GL_FRAMEBUFFER_BINDING, _))
|
| + .WillOnce(SetArgumentPointee<1>(gl_ids[0]))
|
| + .RetiresOnSaturation();
|
| + EXPECT_CALL(*gl, GetIntegerv(GL_TEXTURE_BINDING_2D, _))
|
| + .WillOnce(SetArgumentPointee<1>(gl_ids[0]))
|
| + .RetiresOnSaturation();
|
| + EXPECT_CALL(*gl, GenTextures(1, _))
|
| + .WillOnce(SetArrayArgument<1>(gl_ids + 1, gl_ids + 2))
|
| + .RetiresOnSaturation();
|
| + EXPECT_CALL(*gl, GenFramebuffersEXT(1, _))
|
| + .WillOnce(SetArrayArgument<1>(gl_ids + 1, gl_ids + 2))
|
| + .RetiresOnSaturation();
|
| + EXPECT_CALL(*gl, BindTexture(GL_TEXTURE_2D, gl_ids[1]))
|
| + .Times(1)
|
| + .RetiresOnSaturation();
|
| + EXPECT_CALL(*gl, TexImage2D(GL_TEXTURE_2D, 0, GL_RGBA32F, width, width, 0,
|
| + GL_RGBA, GL_FLOAT, _))
|
| + .Times(1)
|
| + .RetiresOnSaturation();
|
| + EXPECT_CALL(*gl, BindFramebufferEXT(GL_FRAMEBUFFER, gl_ids[1]))
|
| + .Times(1)
|
| + .RetiresOnSaturation();
|
| + EXPECT_CALL(*gl, FramebufferTexture2DEXT(GL_FRAMEBUFFER,
|
| + GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, gl_ids[1], 0))
|
| + .Times(1)
|
| + .RetiresOnSaturation();
|
| + EXPECT_CALL(*gl, CheckFramebufferStatusEXT(GL_FRAMEBUFFER))
|
| + .WillOnce(Return(GL_FRAMEBUFFER_COMPLETE))
|
| + .RetiresOnSaturation();
|
| + EXPECT_CALL(*gl, TexImage2D(GL_TEXTURE_2D, 0, GL_RGB32F, width, width, 0,
|
| + GL_RGB, GL_FLOAT, _))
|
| + .Times(1)
|
| + .RetiresOnSaturation();
|
| + if (is_es3) {
|
| + EXPECT_CALL(*gl, CheckFramebufferStatusEXT(GL_FRAMEBUFFER))
|
| + .WillOnce(Return(GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT))
|
| + .RetiresOnSaturation();
|
| + } else {
|
| + EXPECT_CALL(*gl, CheckFramebufferStatusEXT(GL_FRAMEBUFFER))
|
| + .WillOnce(Return(GL_FRAMEBUFFER_COMPLETE))
|
| + .RetiresOnSaturation();
|
| + }
|
| + EXPECT_CALL(*gl, DeleteFramebuffersEXT(1, _))
|
| + .Times(1)
|
| + .RetiresOnSaturation();
|
| + EXPECT_CALL(*gl, DeleteTextures(1, _))
|
| + .Times(1)
|
| + .RetiresOnSaturation();
|
| + EXPECT_CALL(*gl, BindFramebufferEXT(GL_FRAMEBUFFER, gl_ids[0]))
|
| + .Times(1)
|
| + .RetiresOnSaturation();
|
| + EXPECT_CALL(*gl, BindTexture(GL_TEXTURE_2D, gl_ids[0]))
|
| + .Times(1)
|
| + .RetiresOnSaturation();
|
| + if (DCHECK_IS_ON()) {
|
| + EXPECT_CALL(*gl, GetError())
|
| + .WillOnce(Return(GL_NO_ERROR))
|
| + .RetiresOnSaturation();
|
| + }
|
| + }
|
| }
|
|
|
| void TestHelper::SetupExpectationsForClearingUniforms(
|
|
|