| 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 3a1da35e23a274e8097871dda88ddbbac93f573c..4169695b6bda442310280082f710b588d41bcbc2 100644
|
| --- a/content/browser/gpu/gpu_data_manager_impl_private.cc
|
| +++ b/content/browser/gpu/gpu_data_manager_impl_private.cc
|
| @@ -209,6 +209,30 @@ void UpdateStats(const gpu::GPUInfo& gpu_info,
|
| }
|
| }
|
|
|
| +void UpdateDriverBugListStats(const gpu::GpuDriverBugList* bug_list,
|
| + const std::set<int>& workarounds) {
|
| + uint32_t max_entry_id = bug_list->max_entry_id();
|
| + if (max_entry_id == 0) {
|
| + // Driver bug list was not loaded. No need to go further.
|
| + return;
|
| + }
|
| +
|
| + // Use entry 0 to capture the total number of times that data was recorded
|
| + // in this histogram in order to have a convenient denominator to compute
|
| + // driver bug list percentages for the rest of the entries.
|
| + UMA_HISTOGRAM_SPARSE_SLOWLY("GPU.DriverBugTestResultsPerEntry", 0);
|
| +
|
| + if (workarounds.size() != 0) {
|
| + std::vector<uint32_t> flag_entries;
|
| + bug_list->GetDecisionEntries(&flag_entries);
|
| + DCHECK_GT(flag_entries.size(), 0u);
|
| + for (size_t i = 0; i < flag_entries.size(); ++i) {
|
| + UMA_HISTOGRAM_SPARSE_SLOWLY("GPU.DriverBugTestResultsPerEntry",
|
| + flag_entries[i]);
|
| + }
|
| + }
|
| +}
|
| +
|
| // Combine the integers into a string, seperated by ','.
|
| std::string IntSetToString(const std::set<int>& list) {
|
| std::string rt;
|
| @@ -685,6 +709,7 @@ void GpuDataManagerImplPrivate::UpdateGpuInfoHelper() {
|
| disabled_driver_bug_exts = gpu_driver_bug_list_->GetDisabledExtensions();
|
| disabled_ext_set.insert(disabled_driver_bug_exts.begin(),
|
| disabled_driver_bug_exts.end());
|
| + UpdateDriverBugListStats(gpu_driver_bug_list_.get(), gpu_driver_bugs_);
|
| }
|
| disabled_extensions_ =
|
| base::JoinString(std::vector<base::StringPiece>(disabled_ext_set.begin(),
|
|
|