Chromium Code Reviews| Index: chrome/browser/chrome_gpu_util.cc |
| diff --git a/chrome/browser/chrome_gpu_util.cc b/chrome/browser/chrome_gpu_util.cc |
| index 90efc1246768600b631690ea153dc4a5f08a06d2..d5097665d16e6ca35b4e6ff6e791fdead06e2b58 100644 |
| --- a/chrome/browser/chrome_gpu_util.cc |
| +++ b/chrome/browser/chrome_gpu_util.cc |
| @@ -122,6 +122,43 @@ void InitializeCompositingFieldTrial() { |
| UMA_HISTOGRAM_BOOLEAN("GPU.InCompositorThreadFieldTrial", thread); |
| } |
| +bool ShouldRunStage3DFieldTrial() { |
| +#if !defined(OS_WIN) |
| + return false; |
| +#else |
| + if (base::win::GetVersion() >= base::win::VERSION_VISTA) |
| + return false; |
| + return true; |
| +#endif |
| +} |
| + |
| +void InitializeStage3DFieldTrial() { |
| + if (!ShouldRunStage3DFieldTrial()) { |
| + base::FieldTrial* trial = |
| + base::FieldTrialList::Find(content::kStage3DFieldTrialName); |
| + if (trial) |
| + trial->Disable(); |
|
Alexei Svitkine (slow)
2012/09/19 20:33:16
Disabling the trial has the effect of choosing the
|
| + return; |
| + } |
| + |
| + const base::FieldTrial::Probability kDivisor = 1000; |
| + scoped_refptr<base::FieldTrial> trial( |
| + base::FieldTrialList::FactoryGetFieldTrial( |
| + content::kStage3DFieldTrialName, kDivisor, |
| + content::kStage3DFieldTrialBlacklistedName, 2013, 3, 1, NULL)); |
| + |
| + // Produce the same result on every run of this client. |
| + trial->UseOneTimeRandomization(); |
| + |
| + // Kill-switch, so disabled unless we get info from server. |
| + int enabled_group = trial->AppendGroup( |
| + content::kStage3DFieldTrialEnabledName, 0); |
| + |
| + bool enabled = (trial->group() == enabled_group); |
| + |
| + UMA_HISTOGRAM_BOOLEAN("GPU.Stage3DFieldTrial", enabled); |
| +} |
| + |
| // Load GPU Blacklist, collect preliminary gpu info, and compute preliminary |
| // gpu feature flags. |
| void InitializeGpuDataManager(const CommandLine& command_line) { |