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

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

Issue 1374043005: Blacklist MSAA for GPU Raster on Intel GPUs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ignore_cr
Patch Set: comments + cleanup Created 5 years, 3 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/feature_info.cc
diff --git a/gpu/command_buffer/service/feature_info.cc b/gpu/command_buffer/service/feature_info.cc
index c21815c08abcc013b64b1e43cc08fb8f21012986..f08291301591a7c37b80348c5c1342781b2997c1 100644
--- a/gpu/command_buffer/service/feature_info.cc
+++ b/gpu/command_buffer/service/feature_info.cc
@@ -231,20 +231,23 @@ void FeatureInfo::InitializeBasicState(const base::CommandLine* command_line) {
command_line->HasSwitch(switches::kDisableGLSLTranslator);
unsafe_es3_apis_enabled_ = false;
-}
-bool FeatureInfo::Initialize() {
- disallowed_features_ = DisallowedFeatures();
- InitializeFeatures();
- return true;
+ // Default context_type_ to a GLES2 Context.
+ context_type_ = CONTEXT_TYPE_OPENGLES2;
}
-bool FeatureInfo::Initialize(const DisallowedFeatures& disallowed_features) {
+bool FeatureInfo::Initialize(ContextType context_type,
+ const DisallowedFeatures& disallowed_features) {
disallowed_features_ = disallowed_features;
+ context_type_ = context_type;
InitializeFeatures();
return true;
}
+bool FeatureInfo::InitializeForTesting() {
+ return Initialize(CONTEXT_TYPE_OPENGLES2, DisallowedFeatures());
+}
+
bool IsGL_REDSupportedOnFBOs() {
// Skia uses GL_RED with frame buffers, unfortunately, Mesa claims to support
// GL_EXT_texture_rg, but it doesn't support it on frame buffers. To fix
@@ -1122,6 +1125,23 @@ void FeatureInfo::InitializeFeatures() {
// but we emulate ES 3.0 on top of Desktop GL 4.2+.
feature_flags_.emulate_primitive_restart_fixed_index = true;
}
+
+ if (workarounds_.disable_msaa_on_non_webgl_contexts) {
Zhenyao Mo 2015/09/30 23:50:12 This is inconsistent with the rest of the code. B
ericrk 2015/10/01 17:13:11 yup, good point - restructured this.
+ // crbug.com/527565 - On some GPUs, MSAA does not perform acceptably for
+ // rasterization. We disable it on non-WebGL contexts. For WebGL contexts
+ // we leave it up to the site to decide whether to enable MSAA.
+ switch (context_type_) {
+ case CONTEXT_TYPE_WEBGL1:
+ case CONTEXT_TYPE_WEBGL2:
+ // WebGL contexts, ignore this flag.
+ break;
+ case CONTEXT_TYPE_OPENGLES2:
+ case CONTEXT_TYPE_OPENGLES3:
+ // Non-WebGL context, disable multisampling.
+ feature_flags_.chromium_framebuffer_multisample = false;
+ feature_flags_.multisampled_render_to_texture = false;
+ }
+ }
}
bool FeatureInfo::IsES3Capable() const {

Powered by Google App Engine
This is Rietveld 408576698