Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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_private.h" | 5 #include "content/browser/gpu/gpu_data_manager_impl_private.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/metrics/field_trial.h" | 10 #include "base/metrics/field_trial.h" |
| (...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 566 gpu::GpuControlList::kOsAny, std::string(), gpu_info_); | 566 gpu::GpuControlList::kOsAny, std::string(), gpu_info_); |
| 567 if (update_histograms_) | 567 if (update_histograms_) |
| 568 UpdateStats(gpu_info_, gpu_blacklist_.get(), features); | 568 UpdateStats(gpu_info_, gpu_blacklist_.get(), features); |
| 569 | 569 |
| 570 UpdateBlacklistedFeatures(features); | 570 UpdateBlacklistedFeatures(features); |
| 571 } | 571 } |
| 572 if (gpu_driver_bug_list_) { | 572 if (gpu_driver_bug_list_) { |
| 573 gpu_driver_bugs_ = gpu_driver_bug_list_->MakeDecision( | 573 gpu_driver_bugs_ = gpu_driver_bug_list_->MakeDecision( |
| 574 gpu::GpuControlList::kOsAny, std::string(), gpu_info_); | 574 gpu::GpuControlList::kOsAny, std::string(), gpu_info_); |
| 575 | 575 |
| 576 disabled_extensions_ = | 576 std::vector<std::string> disabled_vec; |
| 577 base::JoinString(gpu_driver_bug_list_->GetDisabledExtensions(), " "); | 577 |
| 578 const base::CommandLine* command_line = | |
| 579 base::CommandLine::ForCurrentProcess(); | |
| 580 if (command_line) { | |
| 581 disabled_vec = base::SplitString( | |
| 582 command_line->GetSwitchValueASCII(switches::kDisableGLExtensions), | |
| 583 ", ;", | |
| 584 base::KEEP_WHITESPACE, | |
| 585 base::SPLIT_WANT_NONEMPTY); | |
| 586 } | |
| 587 const std::vector<std::string>& disabled_driver_bug_exts = | |
| 588 gpu_driver_bug_list_->GetDisabledExtensions(); | |
| 589 disabled_vec.insert(disabled_vec.end(), | |
|
Zhenyao Mo
2015/12/03 23:28:10
Here you may insert the same extension twice if it
David Yen
2015/12/04 00:10:53
Done.
| |
| 590 disabled_driver_bug_exts.begin(), | |
| 591 disabled_driver_bug_exts.end()); | |
| 592 disabled_extensions_ = base::JoinString(disabled_vec, " "); | |
| 578 } | 593 } |
| 579 gpu::GpuDriverBugList::AppendWorkaroundsFromCommandLine( | 594 gpu::GpuDriverBugList::AppendWorkaroundsFromCommandLine( |
| 580 &gpu_driver_bugs_, *base::CommandLine::ForCurrentProcess()); | 595 &gpu_driver_bugs_, *base::CommandLine::ForCurrentProcess()); |
| 581 | 596 |
| 582 // We have to update GpuFeatureType before notify all the observers. | 597 // We have to update GpuFeatureType before notify all the observers. |
| 583 NotifyGpuInfoUpdate(); | 598 NotifyGpuInfoUpdate(); |
| 584 } | 599 } |
| 585 | 600 |
| 586 void GpuDataManagerImplPrivate::UpdateGpuInfo(const gpu::GPUInfo& gpu_info) { | 601 void GpuDataManagerImplPrivate::UpdateGpuInfo(const gpu::GPUInfo& gpu_info) { |
| 587 // No further update of gpu_info if falling back to SwiftShader. | 602 // No further update of gpu_info if falling back to SwiftShader. |
| (...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 911 if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE)) | 926 if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE)) |
| 912 return true; | 927 return true; |
| 913 if (group_name == "Disabled") | 928 if (group_name == "Disabled") |
| 914 return true; | 929 return true; |
| 915 return false; | 930 return false; |
| 916 } | 931 } |
| 917 | 932 |
| 918 void GpuDataManagerImplPrivate::GetDisabledExtensions( | 933 void GpuDataManagerImplPrivate::GetDisabledExtensions( |
| 919 std::string* disabled_extensions) const { | 934 std::string* disabled_extensions) const { |
| 920 DCHECK(disabled_extensions); | 935 DCHECK(disabled_extensions); |
| 921 | |
| 922 *disabled_extensions = disabled_extensions_; | 936 *disabled_extensions = disabled_extensions_; |
| 923 } | 937 } |
| 924 | 938 |
| 925 void GpuDataManagerImplPrivate::BlockDomainFrom3DAPIs( | 939 void GpuDataManagerImplPrivate::BlockDomainFrom3DAPIs( |
| 926 const GURL& url, GpuDataManagerImpl::DomainGuilt guilt) { | 940 const GURL& url, GpuDataManagerImpl::DomainGuilt guilt) { |
| 927 BlockDomainFrom3DAPIsAtTime(url, guilt, base::Time::Now()); | 941 BlockDomainFrom3DAPIsAtTime(url, guilt, base::Time::Now()); |
| 928 } | 942 } |
| 929 | 943 |
| 930 bool GpuDataManagerImplPrivate::Are3DAPIsBlocked(const GURL& top_origin_url, | 944 bool GpuDataManagerImplPrivate::Are3DAPIsBlocked(const GURL& top_origin_url, |
| 931 int render_process_id, | 945 int render_process_id, |
| (...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1206 gpu_info_.context_info_state = gpu::kCollectInfoFatalFailure; | 1220 gpu_info_.context_info_state = gpu::kCollectInfoFatalFailure; |
| 1207 #if defined(OS_WIN) | 1221 #if defined(OS_WIN) |
| 1208 gpu_info_.dx_diagnostics_info_state = gpu::kCollectInfoFatalFailure; | 1222 gpu_info_.dx_diagnostics_info_state = gpu::kCollectInfoFatalFailure; |
| 1209 #endif | 1223 #endif |
| 1210 complete_gpu_info_already_requested_ = true; | 1224 complete_gpu_info_already_requested_ = true; |
| 1211 // Some observers might be waiting. | 1225 // Some observers might be waiting. |
| 1212 NotifyGpuInfoUpdate(); | 1226 NotifyGpuInfoUpdate(); |
| 1213 } | 1227 } |
| 1214 | 1228 |
| 1215 } // namespace content | 1229 } // namespace content |
| OLD | NEW |