Index: gpu/command_buffer/service/feature_info_unittest.cc |
diff --git a/gpu/command_buffer/service/feature_info_unittest.cc b/gpu/command_buffer/service/feature_info_unittest.cc |
index b5b0629a4c48f0134c30fa83908b19da9dd5b9c1..8097a0be236430d9d0587ac0a6c910f517e02f2f 100644 |
--- a/gpu/command_buffer/service/feature_info_unittest.cc |
+++ b/gpu/command_buffer/service/feature_info_unittest.cc |
@@ -42,8 +42,10 @@ const char kGLRendererStringANGLE[] = "ANGLE (some renderer)"; |
} // anonymous namespace |
enum MockedGLVersionKind { |
- Version3_0, |
- Version3_2Compatibility |
+ ES2_on_Version3_0, |
+ ES2_on_Version3_2Compatibility, |
+ ES3_on_Version3_0, |
+ ES3_on_Version3_2Compatibility |
}; |
class FeatureInfoTest |
@@ -58,10 +60,12 @@ class FeatureInfoTest |
// Most of the tests' expectations currently assume the desktop |
// OpenGL compatibility profile. |
switch (GetParam()) { |
- case Version3_0: |
+ case ES2_on_Version3_0: |
+ case ES3_on_Version3_0: |
SetupInitExpectationsWithGLVersion(extensions_str.c_str(), "", "3.0"); |
break; |
- case Version3_2Compatibility: |
+ case ES2_on_Version3_2Compatibility: |
+ case ES3_on_Version3_2Compatibility: |
if (extensions_str.find("GL_ARB_compatibility") == std::string::npos) { |
extensions_str += " GL_ARB_compatibility"; |
} |
@@ -73,13 +77,27 @@ class FeatureInfoTest |
} |
} |
+ ContextType GetContextType() { |
+ switch (GetParam()) { |
+ case ES2_on_Version3_0: |
+ case ES2_on_Version3_2Compatibility: |
+ return CONTEXT_TYPE_OPENGLES2; |
+ case ES3_on_Version3_0: |
+ case ES3_on_Version3_2Compatibility: |
+ return CONTEXT_TYPE_OPENGLES3; |
+ default: |
+ NOTREACHED(); |
+ return CONTEXT_TYPE_OPENGLES2; |
+ } |
+ } |
+ |
void SetupInitExpectationsWithGLVersion( |
const char* extensions, const char* renderer, const char* version) { |
GpuServiceTest::SetUpWithGLVersion(version, extensions); |
TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion( |
gl_.get(), extensions, renderer, version); |
info_ = new FeatureInfo(); |
- info_->InitializeForTesting(); |
+ info_->Initialize(GetContextType(), DisallowedFeatures()); |
} |
void SetupInitExpectationsWithGLVersionAndDisallowedFeatures( |
@@ -91,7 +109,7 @@ class FeatureInfoTest |
TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion( |
gl_.get(), extensions, renderer, version); |
info_ = new FeatureInfo(); |
- info_->InitializeForTesting(disallowed_features); |
+ info_->Initialize(GetContextType(), disallowed_features); |
} |
void SetupInitExpectationsWithGLVersionAndCommandLine( |
@@ -104,7 +122,7 @@ class FeatureInfoTest |
gl_.get(), extensions, renderer, version); |
GpuDriverBugWorkarounds gpu_driver_bug_workaround(&command_line); |
info_ = new FeatureInfo(command_line, gpu_driver_bug_workaround); |
- info_->InitializeForTesting(); |
+ info_->Initialize(GetContextType(), DisallowedFeatures()); |
} |
void SetupWithCommandLine(const base::CommandLine& command_line) { |
@@ -121,7 +139,7 @@ class FeatureInfoTest |
gl_.get(), extensions, "", ""); |
GpuDriverBugWorkarounds gpu_driver_bug_workaround(&command_line); |
info_ = new FeatureInfo(command_line, gpu_driver_bug_workaround); |
- info_->InitializeForTesting(); |
+ info_->Initialize(GetContextType(), DisallowedFeatures()); |
} |
void SetupWithoutInit() { |
@@ -153,8 +171,10 @@ struct FormatInfo { |
} // anonymous namespace. |
static const MockedGLVersionKind kGLVersionKinds[] = { |
- Version3_0, |
- Version3_2Compatibility |
+ ES2_on_Version3_0, |
+ ES2_on_Version3_2Compatibility, |
+ ES3_on_Version3_0, |
+ ES3_on_Version3_2Compatibility |
}; |
INSTANTIATE_TEST_CASE_P(Service, |
@@ -458,20 +478,33 @@ TEST_P(FeatureInfoTest, InitializeGLES_no_EXT_read_format_bgra) { |
TEST_P(FeatureInfoTest, InitializeEXT_sRGB) { |
SetupInitExpectations("GL_EXT_sRGB GL_OES_rgb8_rgba8"); |
- EXPECT_THAT(info_->extensions(), |
- HasSubstr("GL_EXT_sRGB")); |
- EXPECT_TRUE(info_->validators()->texture_format.IsValid( |
- GL_SRGB_EXT)); |
- EXPECT_TRUE(info_->validators()->texture_format.IsValid( |
- GL_SRGB_ALPHA_EXT)); |
- EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( |
- GL_SRGB_EXT)); |
- EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( |
- GL_SRGB_ALPHA_EXT)); |
- EXPECT_TRUE(info_->validators()->render_buffer_format.IsValid( |
- GL_SRGB8_ALPHA8_EXT)); |
- EXPECT_TRUE(info_->validators()->frame_buffer_parameter.IsValid( |
- GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT)); |
+ |
+ if (GetContextType() == CONTEXT_TYPE_OPENGLES3) { |
+ EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_EXT_sRGB"))); |
+ EXPECT_FALSE(info_->validators()->texture_format.IsValid(GL_SRGB_EXT)); |
+ EXPECT_FALSE( |
+ info_->validators()->texture_format.IsValid(GL_SRGB_ALPHA_EXT)); |
+ EXPECT_FALSE( |
+ info_->validators()->texture_internal_format.IsValid(GL_SRGB_EXT)); |
+ EXPECT_FALSE(info_->validators()->texture_internal_format.IsValid( |
+ GL_SRGB_ALPHA_EXT)); |
+ EXPECT_FALSE( |
+ info_->validators()->render_buffer_format.IsValid(GL_SRGB8_ALPHA8_EXT)); |
+ EXPECT_FALSE(info_->validators()->frame_buffer_parameter.IsValid( |
+ GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT)); |
+ } else { |
+ EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_sRGB")); |
+ EXPECT_TRUE(info_->validators()->texture_format.IsValid(GL_SRGB_EXT)); |
+ EXPECT_TRUE(info_->validators()->texture_format.IsValid(GL_SRGB_ALPHA_EXT)); |
+ EXPECT_TRUE( |
+ info_->validators()->texture_internal_format.IsValid(GL_SRGB_EXT)); |
+ EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( |
+ GL_SRGB_ALPHA_EXT)); |
+ EXPECT_TRUE( |
+ info_->validators()->render_buffer_format.IsValid(GL_SRGB8_ALPHA8_EXT)); |
+ EXPECT_TRUE(info_->validators()->frame_buffer_parameter.IsValid( |
+ GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT)); |
+ } |
} |
TEST_P(FeatureInfoTest, InitializeGLES2EXT_texture_storage) { |
@@ -658,14 +691,23 @@ TEST_P(FeatureInfoTest, InitializeGLES2_neither_texture_storage_nor_BGRA) { |
Not(HasSubstr("GL_EXT_texture_format_BGRA8888"))); |
} |
-// 5- ES3 + GL_EXT_texture_format_BGRA8888 -> GL_EXT_texture_format_BGRA8888 |
-// (we can't expose GL_EXT_texture_storage because we fail the GL_BGRA8 |
+// 5- ES3 + GL_EXT_texture_format_BGRA8888 |
+// If creating a GLES2 context, expose GL_EXT_texture_format_BGRA8888 |
+// If creating a GLES3 context, expose GL_EXT_texture_storage |
+// (we can't expose both at the same time because we fail the GL_BGRA8 |
// requirement) |
TEST_P(FeatureInfoTest, InitializeGLES3_texture_storage_EXT_BGRA) { |
SetupInitExpectationsWithGLVersion( |
"GL_EXT_texture_format_BGRA8888", "", "OpenGL ES 3.0"); |
- EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_EXT_texture_storage"))); |
- EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_format_BGRA8888")); |
+ if (GetContextType() == CONTEXT_TYPE_OPENGLES3) { |
+ EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage")); |
+ EXPECT_THAT(info_->extensions(), |
+ Not(HasSubstr("GL_EXT_texture_format_BGRA8888"))); |
+ } else { |
+ EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_EXT_texture_storage"))); |
+ EXPECT_THAT(info_->extensions(), |
+ HasSubstr("GL_EXT_texture_format_BGRA8888")); |
+ } |
} |
// 6- ES3 + GL_APPLE_texture_format_bgra8888 -> GL_EXT_texture_storage + |