Index: gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc |
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc |
index 07d1eaf2a4945b372d030ae4a557880bcb7f42de..807d48853d7fbccbe7cbc92b8a95c819ebb4c670 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc |
@@ -57,6 +57,7 @@ void NormalizeInitState(gpu::gles2::GLES2DecoderTestBase::InitState* init) { |
break; |
} |
} |
+ |
if (init->use_native_vao) { |
if (contains_vao_extension) |
return; |
@@ -75,6 +76,10 @@ void NormalizeInitState(gpu::gles2::GLES2DecoderTestBase::InitState* init) { |
// Make sure we don't set up an invalid InitState. |
CHECK(!contains_vao_extension); |
} |
+ |
+ if (!init->extensions.empty()) |
+ init->extensions += " "; |
+ init->extensions += "GL_EXT_framebuffer_object "; |
} |
} // namespace Anonymous |
@@ -118,7 +123,9 @@ GLES2DecoderTestBase::~GLES2DecoderTestBase() {} |
void GLES2DecoderTestBase::SetUp() { |
InitState init; |
- init.gl_version = "3.0"; |
+ // Autogenerated tests do not overwrite version or extension string, |
+ // so we have to pick something that supports everything here. |
+ init.gl_version = "4.4"; |
init.has_alpha = true; |
init.has_depth = true; |
init.request_alpha = true; |
@@ -136,7 +143,9 @@ void GLES2DecoderTestBase::AddExpectationsForVertexAttribManager() { |
} |
GLES2DecoderTestBase::InitState::InitState() |
- : has_alpha(false), |
+ : extensions("GL_EXT_framebuffer_object"), |
+ gl_version("2.1"), |
+ has_alpha(false), |
has_depth(false), |
has_stencil(false), |
request_alpha(false), |
@@ -156,6 +165,9 @@ void GLES2DecoderTestBase::InitDecoderWithCommandLine( |
const base::CommandLine* command_line) { |
InitState normalized_init = init; |
NormalizeInitState(&normalized_init); |
+ // For easier substring/extension matching |
+ DCHECK(normalized_init.extensions.empty() || |
+ *normalized_init.extensions.rbegin() == ' '); |
Framebuffer::ClearFramebufferCompleteComboMap(); |
gfx::SetGLGetProcAddressProc(gfx::MockGLInterface::GetGLProcAddress); |
@@ -166,9 +178,6 @@ void GLES2DecoderTestBase::InitDecoderWithCommandLine( |
SetupMockGLBehaviors(); |
- // Only create stream texture manager if extension is requested. |
- std::vector<std::string> list; |
- base::SplitString(normalized_init.extensions, ' ', &list); |
scoped_refptr<FeatureInfo> feature_info; |
if (command_line) |
feature_info = new FeatureInfo(*command_line); |
@@ -423,15 +432,27 @@ void GLES2DecoderTestBase::InitDecoderWithCommandLine( |
decoder_->set_unsafe_es3_apis_enabled(true); |
reset_unsafe_es3_apis_enabled = true; |
} |
- EXPECT_CALL(*gl_, GenSamplers(_, _)) |
- .WillOnce(SetArgumentPointee<1>(kServiceSamplerId)) |
- .RetiresOnSaturation(); |
- GenHelper<cmds::GenSamplersImmediate>(client_sampler_id_); |
- EXPECT_CALL(*gl_, GenTransformFeedbacks(_, _)) |
- .WillOnce(SetArgumentPointee<1>(kServiceTransformFeedbackId)) |
- .RetiresOnSaturation(); |
- GenHelper<cmds::GenTransformFeedbacksImmediate>(client_transformfeedback_id_); |
- DoFenceSync(client_sync_id_, kServiceSyncId); |
+ |
+ const gfx::GLVersionInfo* version = context_->GetVersionInfo(); |
+ if (version->IsAtLeastGL(3, 3) || version->IsAtLeastGLES(3, 0)) { |
+ EXPECT_CALL(*gl_, GenSamplers(_, _)) |
+ .WillOnce(SetArgumentPointee<1>(kServiceSamplerId)) |
+ .RetiresOnSaturation(); |
+ GenHelper<cmds::GenSamplersImmediate>(client_sampler_id_); |
+ } |
+ if (version->IsAtLeastGL(4, 0) || version->IsAtLeastGLES(3, 0)) { |
+ EXPECT_CALL(*gl_, GenTransformFeedbacks(_, _)) |
+ .WillOnce(SetArgumentPointee<1>(kServiceTransformFeedbackId)) |
+ .RetiresOnSaturation(); |
+ GenHelper<cmds::GenTransformFeedbacksImmediate>( |
+ client_transformfeedback_id_); |
+ } |
+ |
+ if (init.extensions.find("GL_ARB_sync ") != std::string::npos || |
+ version->IsAtLeastGL(3, 2) || version->IsAtLeastGLES(3, 0)) { |
+ DoFenceSync(client_sync_id_, kServiceSyncId); |
+ } |
+ |
if (reset_unsafe_es3_apis_enabled) { |
decoder_->set_unsafe_es3_apis_enabled(false); |
} |