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

Unified Diff: content/browser/gpu/gpu_data_manager_impl_private.cc

Issue 2654993004: Move GPU blacklist calculation to GPU proc (Closed)
Patch Set: fix win clang build Created 3 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/gpu/gpu_data_manager_impl_private.h ('k') | content/browser/gpu/gpu_process_host.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_);
« no previous file with comments | « content/browser/gpu/gpu_data_manager_impl_private.h ('k') | content/browser/gpu/gpu_process_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698