Chromium Code Reviews| 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 9dfd5469de31f54f8de5391493639f56251a51af..edab7a413e90d348b65e59cbb0deb417c885a509 100644 |
| --- a/content/browser/gpu/gpu_data_manager_impl_private.cc |
| +++ b/content/browser/gpu/gpu_data_manager_impl_private.cc |
| @@ -34,12 +34,11 @@ |
| #include "content/public/common/web_preferences.h" |
| #include "gpu/command_buffer/service/gpu_preferences.h" |
| #include "gpu/command_buffer/service/gpu_switches.h" |
| -#include "gpu/config/gpu_control_list_jsons.h" |
| -#include "gpu/config/gpu_driver_bug_workaround_type.h" |
| -#include "gpu/config/gpu_feature_type.h" |
| +#include "gpu/config/gpu_driver_bug_list_autogen.h" |
| #include "gpu/config/gpu_info_collector.h" |
| #include "gpu/config/gpu_switches.h" |
| #include "gpu/config/gpu_util.h" |
| +#include "gpu/config/software_rendering_list_autogen.h" |
| #include "gpu/ipc/common/memory_stats.h" |
| #include "gpu/ipc/service/switches.h" |
| #include "media/media_features.h" |
| @@ -136,7 +135,6 @@ void UpdateStats(const gpu::GPUInfo& gpu_info, |
| const base::CommandLine& command_line = |
| *base::CommandLine::ForCurrentProcess(); |
| - bool disabled = false; |
| // Use entry 0 to capture the total number of times that data |
| // was recorded in this histogram in order to have a convenient |
| @@ -147,7 +145,7 @@ void UpdateStats(const gpu::GPUInfo& gpu_info, |
| if (blacklisted_features.size() != 0) { |
| std::vector<uint32_t> flag_entries; |
| - blacklist->GetDecisionEntries(&flag_entries, disabled); |
| + blacklist->GetDecisionEntries(&flag_entries); |
| DCHECK_GT(flag_entries.size(), 0u); |
| for (size_t i = 0; i < flag_entries.size(); ++i) { |
| UMA_HISTOGRAM_ENUMERATION("GPU.BlacklistTestResultsPerEntry", |
| @@ -155,16 +153,6 @@ void UpdateStats(const gpu::GPUInfo& gpu_info, |
| } |
| } |
| - // This counts how many users are affected by a disabled entry - this allows |
| - // us to understand the impact of an entry before enable it. |
| - std::vector<uint32_t> flag_disabled_entries; |
| - disabled = true; |
| - blacklist->GetDecisionEntries(&flag_disabled_entries, disabled); |
| - for (uint32_t disabled_entry : flag_disabled_entries) { |
| - UMA_HISTOGRAM_ENUMERATION("GPU.BlacklistTestResultsPerDisabledEntry", |
| - disabled_entry, max_entry_id + 1); |
|
Ken Russell (switch to Gerrit)
2017/03/31 02:37:06
Is there a problem with losing this UMA histogram?
Zhenyao Mo
2017/03/31 19:14:14
No, it hasn't been used for a long long time.
|
| - } |
| - |
| const gpu::GpuFeatureType kGpuFeatures[] = { |
| gpu::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS, |
| gpu::GPU_FEATURE_TYPE_GPU_COMPOSITING, |
| @@ -300,7 +288,7 @@ void UpdateGpuInfoOnIO(const gpu::GPUInfo& gpu_info) { |
| } // namespace anonymous |
| void GpuDataManagerImplPrivate::InitializeForTesting( |
| - const std::string& gpu_blacklist_json, |
| + const gpu::GpuControlListData& gpu_blacklist_data, |
| const gpu::GPUInfo& gpu_info) { |
| // This function is for testing only, so disable histograms. |
| update_histograms_ = false; |
| @@ -308,7 +296,8 @@ void GpuDataManagerImplPrivate::InitializeForTesting( |
| // Prevent all further initialization. |
| finalized_ = true; |
| - InitializeImpl(gpu_blacklist_json, std::string(), gpu_info); |
| + gpu::GpuControlListData gpu_driver_bug_list_data; |
| + InitializeImpl(gpu_blacklist_data, gpu_driver_bug_list_data, gpu_info); |
| } |
| bool GpuDataManagerImplPrivate::IsFeatureBlacklisted(int feature) const { |
| @@ -620,20 +609,22 @@ void GpuDataManagerImplPrivate::Initialize() { |
| } |
| #endif // ARCH_CPU_X86_FAMILY |
| - std::string gpu_blacklist_string; |
| - std::string gpu_driver_bug_list_string; |
| + gpu::GpuControlListData gpu_blacklist_data; |
| if (!force_software_gl && |
| !command_line->HasSwitch(switches::kIgnoreGpuBlacklist) && |
| !command_line->HasSwitch(switches::kUseGpuInTests)) { |
| - gpu_blacklist_string = gpu::kSoftwareRenderingListJson; |
| + gpu_blacklist_data = {gpu::kSoftwareRenderingListVersion, |
| + gpu::kSoftwareRenderingListEntryCount, |
| + gpu::kSoftwareRenderingListEntries}; |
| } |
| + gpu::GpuControlListData gpu_driver_bug_list_data; |
| if (!force_software_gl && |
| !command_line->HasSwitch(switches::kDisableGpuDriverBugWorkarounds)) { |
| - gpu_driver_bug_list_string = gpu::kGpuDriverBugListJson; |
| + gpu_driver_bug_list_data = {gpu::kGpuDriverBugListVersion, |
| + gpu::kGpuDriverBugListEntryCount, |
| + gpu::kGpuDriverBugListEntries}; |
| } |
| - InitializeImpl(gpu_blacklist_string, |
| - gpu_driver_bug_list_string, |
| - gpu_info); |
| + InitializeImpl(gpu_blacklist_data, gpu_driver_bug_list_data, gpu_info); |
| if (in_process_gpu_) { |
| command_line->AppendSwitch(switches::kDisableGpuWatchdog); |
| @@ -1193,28 +1184,23 @@ GpuDataManagerImplPrivate::~GpuDataManagerImplPrivate() { |
| } |
| void GpuDataManagerImplPrivate::InitializeImpl( |
| - const std::string& gpu_blacklist_json, |
| - const std::string& gpu_driver_bug_list_json, |
| + const gpu::GpuControlListData& gpu_blacklist_data, |
| + const gpu::GpuControlListData& gpu_driver_bug_list_data, |
| const gpu::GPUInfo& gpu_info) { |
| const bool log_gpu_control_list_decisions = |
| base::CommandLine::ForCurrentProcess()->HasSwitch( |
| switches::kLogGpuControlListDecisions); |
| - if (!gpu_blacklist_json.empty()) { |
| - gpu_blacklist_.reset(gpu::GpuBlacklist::Create()); |
| + if (gpu_blacklist_data.entry_count) { |
| + gpu_blacklist_.reset(gpu::GpuBlacklist::Create(gpu_blacklist_data)); |
| if (log_gpu_control_list_decisions) |
| - gpu_blacklist_->enable_control_list_logging("gpu_blacklist"); |
| - bool success = gpu_blacklist_->LoadList( |
| - gpu_blacklist_json, gpu::GpuControlList::kCurrentOsOnly); |
| - DCHECK(success); |
| + gpu_blacklist_->EnableControlListLogging("gpu_blacklist"); |
| } |
| - if (!gpu_driver_bug_list_json.empty()) { |
| - gpu_driver_bug_list_.reset(gpu::GpuDriverBugList::Create()); |
| + if (gpu_driver_bug_list_data.entry_count) { |
| + gpu_driver_bug_list_.reset( |
| + gpu::GpuDriverBugList::Create(gpu_driver_bug_list_data)); |
| if (log_gpu_control_list_decisions) |
| - gpu_driver_bug_list_->enable_control_list_logging("gpu_driver_bug_list"); |
| - bool success = gpu_driver_bug_list_->LoadList( |
| - gpu_driver_bug_list_json, gpu::GpuControlList::kCurrentOsOnly); |
| - DCHECK(success); |
| + gpu_driver_bug_list_->EnableControlListLogging("gpu_driver_bug_list"); |
| } |
| gpu_info_ = gpu_info; |