Index: gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc |
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc |
index 6636439457a6512683be6e53f0f6e97d3e926041..c81e60f7e92767c69351b5ac3045e784faa34ace 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc |
@@ -158,7 +158,10 @@ bool GLES2DecoderPassthroughImpl::Initialize( |
} |
// Check for required extensions |
- if (!feature_info_->feature_flags().angle_robust_client_memory) { |
+ if (!feature_info_->feature_flags().angle_robust_client_memory || |
+ !feature_info_->feature_flags().chromium_bind_generates_resource || |
+ (feature_info_->IsWebGLContext() != |
+ feature_info_->feature_flags().angle_webgl_compatibility)) { |
Destroy(true); |
return false; |
} |
@@ -273,7 +276,11 @@ gpu::Capabilities GLES2DecoderPassthroughImpl::GetCapabilities() { |
PopulateNumericCapabilities(&caps, feature_info_.get()); |
- caps.bind_generates_resource_chromium = group_->bind_generates_resource(); |
+ glGetIntegerv(GL_BIND_GENERATES_RESOURCE_CHROMIUM, |
+ &caps.bind_generates_resource_chromium); |
+ DCHECK_EQ(caps.bind_generates_resource_chromium != GL_FALSE, |
+ group_->bind_generates_resource()); |
+ |
caps.egl_image_external = |
feature_info_->feature_flags().oes_egl_image_external; |
caps.texture_format_astc = |