Index: content/browser/gpu/gpu_data_manager_impl_private.cc |
diff --git a/content/browser/gpu/gpu_data_manager_impl_private.cc b/content/browser/gpu/gpu_data_manager_impl_private.cc |
index 98656dfdd68ccffbf7f02be7ae4f9f663d753a74..fc94c8f44851254aa3291905938fac0f48899dd8 100644 |
--- a/content/browser/gpu/gpu_data_manager_impl_private.cc |
+++ b/content/browser/gpu/gpu_data_manager_impl_private.cc |
@@ -229,7 +229,7 @@ std::string IntSetToString(const std::set<int>& list) { |
void DisplayReconfigCallback(CGDirectDisplayID display, |
CGDisplayChangeSummaryFlags flags, |
void* gpu_data_manager) { |
- if(flags == kCGDisplayBeginConfigurationFlag) |
+ if (flags == kCGDisplayBeginConfigurationFlag) |
return; // This call contains no information about the display change |
GpuDataManagerImpl* manager = |
@@ -376,6 +376,10 @@ bool GpuDataManagerImplPrivate::IsFeatureBlacklisted(int feature) const { |
return (blacklisted_features_.count(feature) == 1); |
} |
+bool GpuDataManagerImplPrivate::IsDriverBugWorkaroundActive(int feature) const { |
+ return (gpu_driver_bugs_.count(feature) == 1); |
+} |
+ |
size_t GpuDataManagerImplPrivate::GetBlacklistedFeatureCount() const { |
if (use_swiftshader_) |
return 1; |
@@ -817,8 +821,9 @@ void GpuDataManagerImplPrivate::UpdateRendererWebPrefs( |
prefs->flash_stage3d_baseline_enabled = false; |
if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS)) |
prefs->accelerated_2d_canvas_enabled = false; |
- if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_MULTISAMPLING) |
- || display_count_ > 1) |
+ if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_MULTISAMPLING) || |
+ (IsDriverBugWorkaroundActive(gpu::DISABLE_MULTIMONITOR_MULTISAMPLING) && |
+ display_count_ > 1)) |
prefs->gl_multisampling_enabled = false; |
if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_3D_CSS)) { |
prefs->accelerated_compositing_for_3d_transforms_enabled = false; |