Index: gpu/command_buffer/service/feature_info.cc |
diff --git a/gpu/command_buffer/service/feature_info.cc b/gpu/command_buffer/service/feature_info.cc |
index 19a8cb6bc411ee9afa9e881fea6d97ca63943dd3..16b624a779bf4f2c4bd18af92f42de594a590a37 100644 |
--- a/gpu/command_buffer/service/feature_info.cc |
+++ b/gpu/command_buffer/service/feature_info.cc |
@@ -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; |