Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(324)

Unified Diff: gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc

Issue 2670213005: Hook ANGLE_request_extension up to the passthrough cmd decoder. (Closed)
Patch Set: Address zmo@'s comments Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 86f13e5f7f1415ae334d057bc187bf23e2c3abd1..e1f8c3f61bbc039c99a48a95408339e43b671ec8 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
@@ -78,7 +78,7 @@ GLES2DecoderPassthroughImpl::GLES2DecoderPassthroughImpl(ContextGroup* group)
context_(),
offscreen_(false),
group_(group),
- feature_info_(group->feature_info()) {
+ feature_info_(new FeatureInfo) {
DCHECK(group);
}
@@ -172,14 +172,25 @@ bool GLES2DecoderPassthroughImpl::Initialize(
return false;
}
+ // Each context initializes its own feature info because some extensions may
+ // be enabled dynamically
+ DisallowedFeatures adjusted_disallowed_features =
+ AdjustDisallowedFeatures(attrib_helper.context_type, disallowed_features);
+ if (!feature_info_->Initialize(attrib_helper.context_type,
+ adjusted_disallowed_features)) {
+ Destroy(true);
+ return false;
+ }
+
// Check for required extensions
if (!feature_info_->feature_flags().angle_robust_client_memory ||
!feature_info_->feature_flags().chromium_bind_generates_resource ||
!feature_info_->feature_flags().chromium_copy_texture ||
!feature_info_->feature_flags().angle_client_arrays ||
- glIsEnabled(GL_CLIENT_ARRAYS_ANGLE) != GL_FALSE) {
- // TODO(geofflang): Verify that ANGLE_webgl_compatibility is enabled if this
- // is a WebGL context (depends on crbug.com/671217).
+ glIsEnabled(GL_CLIENT_ARRAYS_ANGLE) != GL_FALSE ||
+ feature_info_->feature_flags().angle_webgl_compatibility !=
+ IsWebGLContextType(attrib_helper.context_type) ||
+ !feature_info_->feature_flags().angle_request_extension) {
Destroy(true);
return false;
}
« no previous file with comments | « gpu/command_buffer/service/feature_info.cc ('k') | gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698