Commit 8dcb9ced authored by xinghua.cao's avatar xinghua.cao Committed by Commit bot

Enable occlusion query feature on OpenGL3.3 and later

BUG=623871
TESTCASE=conformance2/query/occlusion-query.html
         conformance2/query/query.html
         deqp/functional/gles3/lifetime.html
         deqp/functional/gles3/negativefragmentapi.html
         deqp/functional/gles3/negativestateapi.html
         deqp/functional/gles3/occlusionquery_conservative.html
         deqp/functional/gles3/occlusionquery_strict.html
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel;tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2145363002
Cr-Commit-Position: refs/heads/master@{#405964}
parent 3716378f
......@@ -1052,8 +1052,9 @@ void FeatureInfo::InitializeFeatures() {
}
}
bool have_es3_occlusion_query =
gl_version_info_->IsAtLeastGLES(3, 0);
bool have_occlusion_query =
gl_version_info_->IsAtLeastGLES(3, 0) ||
gl_version_info_->IsAtLeastGL(3, 3);
bool have_ext_occlusion_query_boolean =
extensions.Contains("GL_EXT_occlusion_query_boolean");
bool have_arb_occlusion_query2 =
......@@ -1061,7 +1062,7 @@ void FeatureInfo::InitializeFeatures() {
bool have_arb_occlusion_query =
extensions.Contains("GL_ARB_occlusion_query");
if (have_es3_occlusion_query ||
if (have_occlusion_query ||
have_ext_occlusion_query_boolean ||
have_arb_occlusion_query2 ||
have_arb_occlusion_query) {
......@@ -1070,7 +1071,9 @@ void FeatureInfo::InitializeFeatures() {
}
feature_flags_.occlusion_query_boolean = true;
feature_flags_.use_arb_occlusion_query2_for_occlusion_query_boolean =
!have_ext_occlusion_query_boolean && have_arb_occlusion_query2;
!have_ext_occlusion_query_boolean && (have_arb_occlusion_query2 ||
(gl_version_info_->IsAtLeastGL(3, 3) &&
gl_version_info_->IsLowerThanGL(4, 3)));
feature_flags_.use_arb_occlusion_query_for_occlusion_query_boolean =
!have_ext_occlusion_query_boolean && have_arb_occlusion_query &&
!have_arb_occlusion_query2;
......
......@@ -1237,6 +1237,28 @@ TEST_P(FeatureInfoTest, InitializeGLES3_occlusion_query_boolean) {
EXPECT_TRUE(info_->feature_flags().occlusion_query_boolean);
}
TEST_P(FeatureInfoTest, InitializeGL33_occlusion_query2) {
SetupInitExpectationsWithGLVersion("", "", "3.3");
if (GetContextType() == CONTEXT_TYPE_OPENGLES2) {
EXPECT_THAT(info_->extensions(),
HasSubstr("GL_EXT_occlusion_query_boolean"));
}
EXPECT_TRUE(info_->feature_flags().occlusion_query_boolean);
EXPECT_TRUE(info_->feature_flags(
).use_arb_occlusion_query2_for_occlusion_query_boolean);
}
TEST_P(FeatureInfoTest, InitializeGL43_occlusion_query2) {
SetupInitExpectationsWithGLVersion("", "", "4.3");
if (GetContextType() == CONTEXT_TYPE_OPENGLES2) {
EXPECT_THAT(info_->extensions(),
HasSubstr("GL_EXT_occlusion_query_boolean"));
}
EXPECT_TRUE(info_->feature_flags().occlusion_query_boolean);
EXPECT_FALSE(info_->feature_flags(
).use_arb_occlusion_query2_for_occlusion_query_boolean);
}
TEST_P(FeatureInfoTest, InitializeOES_vertex_array_object) {
SetupInitExpectations("GL_OES_vertex_array_object");
EXPECT_THAT(info_->extensions(),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment