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 e9d5277fa2e2550547ebdc9ab6d6518c9fcb83b1..f760aecd3c33fc92a9a82b43f47720aad39ed3be 100644 |
--- a/content/browser/gpu/gpu_data_manager_impl_private.cc |
+++ b/content/browser/gpu/gpu_data_manager_impl_private.cc |
@@ -61,13 +61,6 @@ namespace content { |
namespace { |
-enum GpuFeatureStatus { |
- kGpuFeatureEnabled = 0, |
- kGpuFeatureBlacklisted = 1, |
- kGpuFeatureDisabled = 2, // disabled by user but not blacklisted |
- kGpuFeatureNumStatus |
-}; |
- |
#if defined(OS_WIN) |
enum WinSubVersion { |
@@ -82,7 +75,7 @@ enum WinSubVersion { |
kNumWinSubVersions |
}; |
-int GetGpuBlacklistHistogramValueWin(GpuFeatureStatus status) { |
+int GetGpuBlacklistHistogramValueWin(gpu::GpuFeatureStatus status) { |
static WinSubVersion sub_version = kNumWinSubVersions; |
if (sub_version == kNumWinSubVersions) { |
sub_version = kWinOthers; |
@@ -110,17 +103,18 @@ int GetGpuBlacklistHistogramValueWin(GpuFeatureStatus status) { |
break; |
} |
} |
- int entry_index = static_cast<int>(sub_version) * kGpuFeatureNumStatus; |
+ int entry_index = static_cast<int>(sub_version) * gpu::kGpuFeatureStatusMax; |
switch (status) { |
- case kGpuFeatureEnabled: |
+ case gpu::kGpuFeatureStatusEnabled: |
break; |
- case kGpuFeatureBlacklisted: |
+ case gpu::kGpuFeatureStatusBlacklisted: |
entry_index++; |
break; |
- case kGpuFeatureDisabled: |
+ case gpu::kGpuFeatureStatusDisabled: |
entry_index += 2; |
break; |
- case kGpuFeatureNumStatus: |
+ case gpu::kGpuFeatureStatusUndefined: |
+ case gpu::kGpuFeatureStatusMax: |
NOTREACHED(); |
break; |
} |
@@ -201,21 +195,21 @@ void UpdateStats(const gpu::GPUInfo& gpu_info, |
for (size_t i = 0; i < kNumFeatures; ++i) { |
// We can't use UMA_HISTOGRAM_ENUMERATION here because the same name is |
// expected if the macro is used within a loop. |
- GpuFeatureStatus value = kGpuFeatureEnabled; |
+ gpu::GpuFeatureStatus value = gpu::kGpuFeatureStatusEnabled; |
if (blacklisted_features.count(kGpuFeatures[i])) |
- value = kGpuFeatureBlacklisted; |
+ value = gpu::kGpuFeatureStatusBlacklisted; |
else if (kGpuFeatureUserFlags[i]) |
- value = kGpuFeatureDisabled; |
+ value = gpu::kGpuFeatureStatusDisabled; |
base::HistogramBase* histogram_pointer = base::LinearHistogram::FactoryGet( |
- kGpuBlacklistFeatureHistogramNames[i], |
- 1, kGpuFeatureNumStatus, kGpuFeatureNumStatus + 1, |
+ kGpuBlacklistFeatureHistogramNames[i], 1, gpu::kGpuFeatureStatusMax, |
+ gpu::kGpuFeatureStatusMax + 1, |
base::HistogramBase::kUmaTargetedHistogramFlag); |
histogram_pointer->Add(value); |
#if defined(OS_WIN) |
histogram_pointer = base::LinearHistogram::FactoryGet( |
- kGpuBlacklistFeatureHistogramNamesWin[i], |
- 1, kNumWinSubVersions * kGpuFeatureNumStatus, |
- kNumWinSubVersions * kGpuFeatureNumStatus + 1, |
+ kGpuBlacklistFeatureHistogramNamesWin[i], 1, |
+ kNumWinSubVersions * gpu::kGpuFeatureStatusMax, |
+ kNumWinSubVersions * gpu::kGpuFeatureStatusMax + 1, |
base::HistogramBase::kUmaTargetedHistogramFlag); |
histogram_pointer->Add(GetGpuBlacklistHistogramValueWin(value)); |
#endif |
@@ -309,6 +303,13 @@ bool GpuDataManagerImplPrivate::IsFeatureBlacklisted(int feature) const { |
return (blacklisted_features_.count(feature) == 1); |
} |
+bool GpuDataManagerImplPrivate::IsFeatureEnabled(int feature) const { |
+ DCHECK_EQ(feature, gpu::GPU_FEATURE_TYPE_GPU_RASTERIZATION); |
+ return gpu_feature_info_ |
+ .status_values[gpu::GPU_FEATURE_TYPE_GPU_RASTERIZATION] == |
+ gpu::kGpuFeatureStatusEnabled; |
+} |
+ |
bool GpuDataManagerImplPrivate::IsDriverBugWorkaroundActive(int feature) const { |
return (gpu_driver_bugs_.count(feature) == 1); |
} |
@@ -682,6 +683,11 @@ void GpuDataManagerImplPrivate::UpdateGpuInfo(const gpu::GPUInfo& gpu_info) { |
UpdateGpuInfoHelper(); |
} |
+void GpuDataManagerImplPrivate::UpdateGpuFeatureInfo( |
+ const gpu::GpuFeatureInfo& gpu_feature_info) { |
+ gpu_feature_info_ = gpu_feature_info; |
+} |
+ |
void GpuDataManagerImplPrivate::UpdateVideoMemoryUsageStats( |
const gpu::VideoMemoryUsageStats& video_memory_usage_stats) { |
GpuDataManagerImpl::UnlockedSession session(owner_); |