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

Side by Side Diff: content/browser/gpu/gpu_data_manager_impl.cc

Issue 10959061: Revert 158076 - Implement blacklist's force GPU capability in dual GPU machines. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 2 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « content/browser/gpu/gpu_blacklist_unittest.cc ('k') | content/browser/gpu/gpu_process_host.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/gpu/gpu_data_manager_impl.h" 5 #include "content/browser/gpu/gpu_data_manager_impl.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 64
65 // static 65 // static
66 GpuDataManagerImpl* GpuDataManagerImpl::GetInstance() { 66 GpuDataManagerImpl* GpuDataManagerImpl::GetInstance() {
67 return Singleton<GpuDataManagerImpl>::get(); 67 return Singleton<GpuDataManagerImpl>::get();
68 } 68 }
69 69
70 GpuDataManagerImpl::GpuDataManagerImpl() 70 GpuDataManagerImpl::GpuDataManagerImpl()
71 : complete_gpu_info_already_requested_(false), 71 : complete_gpu_info_already_requested_(false),
72 gpu_feature_type_(content::GPU_FEATURE_TYPE_UNKNOWN), 72 gpu_feature_type_(content::GPU_FEATURE_TYPE_UNKNOWN),
73 preliminary_gpu_feature_type_(content::GPU_FEATURE_TYPE_UNKNOWN), 73 preliminary_gpu_feature_type_(content::GPU_FEATURE_TYPE_UNKNOWN),
74 gpu_switching_(content::GPU_SWITCHING_OPTION_AUTOMATIC), 74 gpu_switching_(content::GPU_SWITCHING_AUTOMATIC),
75 observer_list_(new GpuDataManagerObserverList), 75 observer_list_(new GpuDataManagerObserverList),
76 software_rendering_(false), 76 software_rendering_(false),
77 card_blacklisted_(false), 77 card_blacklisted_(false),
78 update_histograms_(true) { 78 update_histograms_(true) {
79 CommandLine* command_line = CommandLine::ForCurrentProcess(); 79 CommandLine* command_line = CommandLine::ForCurrentProcess();
80 if (command_line->HasSwitch(switches::kDisableAcceleratedCompositing)) { 80 if (command_line->HasSwitch(switches::kDisableAcceleratedCompositing)) {
81 command_line->AppendSwitch(switches::kDisableAccelerated2dCanvas); 81 command_line->AppendSwitch(switches::kDisableAccelerated2dCanvas);
82 command_line->AppendSwitch(switches::kDisableAcceleratedLayers); 82 command_line->AppendSwitch(switches::kDisableAcceleratedLayers);
83 } 83 }
84 if (command_line->HasSwitch(switches::kDisableGpu)) 84 if (command_line->HasSwitch(switches::kDisableGpu))
85 BlacklistCard(); 85 BlacklistCard();
86 if (command_line->HasSwitch(switches::kGpuSwitching)) {
87 std::string option_string = command_line->GetSwitchValueASCII(
88 switches::kGpuSwitching);
89 GpuSwitchingOption option = gpu_util::StringToGpuSwitchingOption(
90 option_string);
91 if (option != content::GPU_SWITCHING_OPTION_UNKNOWN)
92 gpu_switching_ = option;
93 }
94 } 86 }
95 87
96 void GpuDataManagerImpl::Initialize() { 88 void GpuDataManagerImpl::Initialize() {
97 CommandLine* command_line = CommandLine::ForCurrentProcess(); 89 CommandLine* command_line = CommandLine::ForCurrentProcess();
98 if (command_line->HasSwitch(switches::kSkipGpuDataLoading)) 90 if (command_line->HasSwitch(switches::kSkipGpuDataLoading))
99 return; 91 return;
100 92
101 content::GPUInfo gpu_info; 93 content::GPUInfo gpu_info;
102 gpu_info_collector::CollectPreliminaryGraphicsInfo(&gpu_info); 94 gpu_info_collector::CollectPreliminaryGraphicsInfo(&gpu_info);
103 #if defined(ARCH_CPU_X86_FAMILY) 95 #if defined(ARCH_CPU_X86_FAMILY)
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 170
179 if (gpu_blacklist_.get()) { 171 if (gpu_blacklist_.get()) {
180 GpuBlacklist::Decision decision = 172 GpuBlacklist::Decision decision =
181 gpu_blacklist_->MakeBlacklistDecision( 173 gpu_blacklist_->MakeBlacklistDecision(
182 GpuBlacklist::kOsAny, NULL, gpu_info); 174 GpuBlacklist::kOsAny, NULL, gpu_info);
183 if (update_histograms_) { 175 if (update_histograms_) {
184 gpu_util::UpdateStats(gpu_blacklist_.get(), 176 gpu_util::UpdateStats(gpu_blacklist_.get(),
185 decision.blacklisted_features); 177 decision.blacklisted_features);
186 } 178 }
187 UpdateBlacklistedFeatures(decision.blacklisted_features); 179 UpdateBlacklistedFeatures(decision.blacklisted_features);
188 if (decision.gpu_switching != content::GPU_SWITCHING_OPTION_UNKNOWN) 180 gpu_switching_ = decision.gpu_switching;
189 gpu_switching_ = decision.gpu_switching;
190 } 181 }
191 182
192 { 183 {
193 base::AutoLock auto_lock(gpu_info_lock_); 184 base::AutoLock auto_lock(gpu_info_lock_);
194 gpu_info_ = gpu_info; 185 gpu_info_ = gpu_info;
195 complete_gpu_info_already_requested_ = 186 complete_gpu_info_already_requested_ =
196 complete_gpu_info_already_requested_ || gpu_info_.finalized; 187 complete_gpu_info_already_requested_ || gpu_info_.finalized;
197 } 188 }
198 189
199 // We have to update GpuFeatureType before notify all the observers. 190 // We have to update GpuFeatureType before notify all the observers.
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 swiftshader_path = swiftshader_path_; 332 swiftshader_path = swiftshader_path_;
342 } else if ((flags & (content::GPU_FEATURE_TYPE_WEBGL | 333 } else if ((flags & (content::GPU_FEATURE_TYPE_WEBGL |
343 content::GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING | 334 content::GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING |
344 content::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS)) && 335 content::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS)) &&
345 (use_gl == "any")) { 336 (use_gl == "any")) {
346 command_line->AppendSwitchASCII( 337 command_line->AppendSwitchASCII(
347 switches::kUseGL, gfx::kGLImplementationOSMesaName); 338 switches::kUseGL, gfx::kGLImplementationOSMesaName);
348 } else if (!use_gl.empty()) { 339 } else if (!use_gl.empty()) {
349 command_line->AppendSwitchASCII(switches::kUseGL, use_gl); 340 command_line->AppendSwitchASCII(switches::kUseGL, use_gl);
350 } 341 }
351 switch (gpu_switching_) {
352 case content::GPU_SWITCHING_OPTION_FORCE_DISCRETE:
353 command_line->AppendSwitchASCII(switches::kGpuSwitching,
354 switches::kGpuSwitchingOptionNameForceDiscrete);
355 break;
356 case content::GPU_SWITCHING_OPTION_FORCE_INTEGRATED:
357 command_line->AppendSwitchASCII(switches::kGpuSwitching,
358 switches::kGpuSwitchingOptionNameForceIntegrated);
359 break;
360 default:
361 break;
362 }
363 342
364 if (!swiftshader_path.empty()) 343 if (!swiftshader_path.empty())
365 command_line->AppendSwitchPath(switches::kSwiftShaderPath, 344 command_line->AppendSwitchPath(switches::kSwiftShaderPath,
366 swiftshader_path); 345 swiftshader_path);
367 346
368 { 347 {
369 base::AutoLock auto_lock(gpu_info_lock_); 348 base::AutoLock auto_lock(gpu_info_lock_);
370 if (gpu_info_.optimus) 349 if (gpu_info_.optimus)
371 command_line->AppendSwitch(switches::kReduceGpuSandbox); 350 command_line->AppendSwitch(switches::kReduceGpuSandbox);
372 if (gpu_info_.amd_switchable) { 351 if (gpu_info_.amd_switchable) {
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
493 } 472 }
494 473
495 void GpuDataManagerImpl::BlacklistCard() { 474 void GpuDataManagerImpl::BlacklistCard() {
496 card_blacklisted_ = true; 475 card_blacklisted_ = true;
497 476
498 gpu_feature_type_ = content::GPU_FEATURE_TYPE_ALL; 477 gpu_feature_type_ = content::GPU_FEATURE_TYPE_ALL;
499 478
500 EnableSoftwareRenderingIfNecessary(); 479 EnableSoftwareRenderingIfNecessary();
501 NotifyGpuInfoUpdate(); 480 NotifyGpuInfoUpdate();
502 } 481 }
OLDNEW
« no previous file with comments | « content/browser/gpu/gpu_blacklist_unittest.cc ('k') | content/browser/gpu/gpu_process_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698