Index: content/browser/gpu/compositor_util.cc |
diff --git a/content/browser/gpu/compositor_util.cc b/content/browser/gpu/compositor_util.cc |
index 9270300d2968439ed06686719c548c4cbe29232b..99679a5c7d1a5c2c51841140e019561eb4455a3e 100644 |
--- a/content/browser/gpu/compositor_util.cc |
+++ b/content/browser/gpu/compositor_util.cc |
@@ -6,11 +6,16 @@ |
#include "base/command_line.h" |
#include "base/metrics/field_trial.h" |
+#include "build/build_config.h" |
#include "content/public/browser/gpu_data_manager.h" |
#include "content/public/common/content_constants.h" |
#include "content/public/common/content_switches.h" |
#include "gpu/config/gpu_feature_type.h" |
+#if defined(OS_WIN) |
+#include "base/win/windows_version.h" |
+#endif |
+ |
namespace content { |
namespace { |
@@ -36,11 +41,6 @@ bool CanDoAcceleratedCompositing() { |
return true; |
} |
-bool IsForceCompositingModeBlacklisted() { |
- return GpuDataManager::GetInstance()->IsFeatureBlacklisted( |
- gpu::GPU_FEATURE_TYPE_FORCE_COMPOSITING_MODE); |
-} |
- |
} // namespace |
bool IsThreadedCompositingEnabled() { |
@@ -49,20 +49,17 @@ bool IsThreadedCompositingEnabled() { |
return true; |
#endif |
- if (!CanDoAcceleratedCompositing()) |
- return false; |
- |
const CommandLine& command_line = *CommandLine::ForCurrentProcess(); |
// Command line switches take precedence over blacklist and field trials. |
if (command_line.HasSwitch(switches::kDisableForceCompositingMode) || |
- command_line.HasSwitch(switches::kDisableThreadedCompositing)) |
+ command_line.HasSwitch(switches::kDisableThreadedCompositing)) { |
return false; |
- |
- if (command_line.HasSwitch(switches::kEnableThreadedCompositing)) |
+ } else if (command_line.HasSwitch(switches::kEnableThreadedCompositing)) { |
return true; |
+ } |
- if (IsForceCompositingModeBlacklisted()) |
+ if (!CanDoAcceleratedCompositing()) |
return false; |
base::FieldTrial* trial = |
@@ -77,21 +74,29 @@ bool IsForceCompositingModeEnabled() { |
return true; |
#endif |
- if (!CanDoAcceleratedCompositing()) |
- return false; |
- |
const CommandLine& command_line = *CommandLine::ForCurrentProcess(); |
// Command line switches take precedence over blacklisting and field trials. |
if (command_line.HasSwitch(switches::kDisableForceCompositingMode)) |
return false; |
- |
- if (command_line.HasSwitch(switches::kForceCompositingMode)) |
+ else if (command_line.HasSwitch(switches::kForceCompositingMode)) |
return true; |
- if (IsForceCompositingModeBlacklisted()) |
+ if (!CanDoAcceleratedCompositing()) |
return false; |
+#if defined(OS_WIN) |
+ // Windows Vista+ has been shipping with FCM enabled at 100% since M24; skip |
+ // the field trial check to ensure this is always enabled on the try bots. |
+ // TODO(gab): Do the same thing in IsThreadedCompositingEnabled() once this is |
+ // stable. |
+ // TODO(gab): Do the same thing for Mac OS (which has been enabled at 100% |
+ // since M28) as well and get rid of the field trial code. |
+ // TODO(gab): Use the GPU blacklist instead of hardcoding OS version here |
+ // https://codereview.chromium.org/23534006. |
+ return base::win::GetVersion() >= base::win::VERSION_VISTA; |
+#endif |
+ |
base::FieldTrial* trial = |
base::FieldTrialList::Find(kGpuCompositingFieldTrialName); |