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

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

Issue 7967020: Implement --use-gl=any (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 3 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_blacklist.h ('k') | content/browser/gpu/gpu_data_manager.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/gpu/gpu_blacklist.cc
===================================================================
--- content/browser/gpu/gpu_blacklist.cc (revision 102410)
+++ content/browser/gpu/gpu_blacklist.cc (working copy)
@@ -34,14 +34,6 @@
return Version::GetVersionFromString(date_as_version_string);
}
-Value* NewStatusValue(const char* name, const char* status)
-{
- DictionaryValue* value = new DictionaryValue();
- value->SetString("name", name);
- value->SetString("status", status);
- return value;
-}
-
} // namespace anonymous
GpuBlacklist::VersionInfo::VersionInfo(const std::string& version_op,
@@ -787,181 +779,30 @@
}
}
-bool GpuBlacklist::IsFeatureBlacklisted(
- GpuFeatureFlags::GpuFeatureType feature) const
-{
+void GpuBlacklist::GetBlacklistReasons(ListValue* problem_list) const {
+ DCHECK(problem_list);
for (size_t i = 0; i < active_entries_.size(); ++i) {
- if (active_entries_[i]->GetGpuFeatureFlags().flags() & feature)
- return true;
- }
- return false;
-}
+ GpuBlacklistEntry* entry = active_entries_[i];
+ if (entry->disabled())
+ continue;
+ DictionaryValue* problem = new DictionaryValue();
-Value* GpuBlacklist::GetFeatureStatus(bool gpu_access_allowed,
- bool disable_accelerated_compositing,
- bool disable_accelerated_2D_canvas,
- bool disable_experimental_webgl,
- bool disable_multisampling) const {
- DictionaryValue* status = new DictionaryValue();
+ problem->SetString("description", entry->description());
- // Build the feature_status field.
- {
- ListValue* feature_status_list = new ListValue();
+ ListValue* cr_bugs = new ListValue();
+ for (size_t j = 0; j < entry->cr_bugs().size(); ++j)
+ cr_bugs->Append(Value::CreateIntegerValue(entry->cr_bugs()[j]));
+ problem->Set("crBugs", cr_bugs);
- // 2d_canvas.
- if (!gpu_access_allowed) {
- if (disable_accelerated_2D_canvas)
- feature_status_list->Append(NewStatusValue("2d_canvas",
- "software"));
- else
- feature_status_list->Append(NewStatusValue("2d_canvas",
- "unavailable_software"));
- } else if (!disable_accelerated_2D_canvas) {
- if (IsFeatureBlacklisted(
- GpuFeatureFlags::kGpuFeatureAccelerated2dCanvas))
- feature_status_list->Append(NewStatusValue("2d_canvas",
- "unavailable_software"));
- else if (disable_accelerated_compositing)
- feature_status_list->Append(NewStatusValue("2d_canvas",
- "disabled_software"));
- else
- feature_status_list->Append(NewStatusValue("2d_canvas",
- "enabled"));
- } else {
- feature_status_list->Append(NewStatusValue("2d_canvas",
- "software"));
+ ListValue* webkit_bugs = new ListValue();
+ for (size_t j = 0; j < entry->webkit_bugs().size(); ++j) {
+ webkit_bugs->Append(Value::CreateIntegerValue(
+ entry->webkit_bugs()[j]));
}
+ problem->Set("webkitBugs", webkit_bugs);
- // 3d css and compositing.
- if (!gpu_access_allowed) {
- feature_status_list->Append(NewStatusValue("3d_css",
- "unavailable_off"));
- feature_status_list->Append(NewStatusValue("compositing",
- "unavailable_software"));
- } else if (disable_accelerated_compositing) {
- feature_status_list->Append(NewStatusValue("3d_css",
- "unavailable_off"));
- feature_status_list->Append(NewStatusValue("compositing",
- "disabled_software"));
- } else if (IsFeatureBlacklisted(
- GpuFeatureFlags::kGpuFeatureAcceleratedCompositing)) {
- feature_status_list->Append(NewStatusValue("3d_css",
- "unavailable_off"));
- feature_status_list->Append(NewStatusValue("compositing",
- "disabled_software"));
- } else {
- feature_status_list->Append(NewStatusValue("3d_css",
- "enabled"));
- feature_status_list->Append(NewStatusValue("compositing",
- "enabled"));
- }
-
- // webgl
- if (!gpu_access_allowed)
- feature_status_list->Append(NewStatusValue("webgl",
- "unavailable_off"));
- else if (disable_experimental_webgl)
- feature_status_list->Append(NewStatusValue("webgl",
- "disabled_off"));
- else if (IsFeatureBlacklisted(
- GpuFeatureFlags::kGpuFeatureWebgl))
- feature_status_list->Append(NewStatusValue("webgl",
- "unavailable_off"));
- else if (disable_accelerated_compositing)
- feature_status_list->Append(NewStatusValue("webgl",
- "enabled_readback"));
- else
- feature_status_list->Append(NewStatusValue("webgl",
- "enabled"));
-
- // multisampling
- if (!gpu_access_allowed)
- feature_status_list->Append(NewStatusValue("multisampling",
- "unavailable_off"));
- else if (disable_multisampling)
- feature_status_list->Append(NewStatusValue("multisampling",
- "disabled_off"));
- else if (IsFeatureBlacklisted(
- GpuFeatureFlags::kGpuFeatureMultisampling))
- feature_status_list->Append(NewStatusValue("multisampling",
- "disabled_off"));
- else
- feature_status_list->Append(NewStatusValue("multisampling",
- "enabled"));
-
- status->Set("featureStatus", feature_status_list);
+ problem_list->Append(problem);
}
-
- // Build the problems list.
- {
- ListValue* problem_list = new ListValue();
- if (!gpu_access_allowed) {
- DictionaryValue* problem = new DictionaryValue();
- problem->SetString("description",
- "GPU process was unable to boot. Access to GPU disallowed.");
- problem->Set("crBugs", new ListValue());
- problem->Set("webkitBugs", new ListValue());
- problem_list->Append(problem);
- }
- if (disable_accelerated_2D_canvas) {
- DictionaryValue* problem = new DictionaryValue();
- problem->SetString("description",
- "Accelerated 2D canvas has been disabled at the command line");
- problem->Set("crBugs", new ListValue());
- problem->Set("webkitBugs", new ListValue());
- problem_list->Append(problem);
- }
- if (disable_accelerated_compositing) {
- DictionaryValue* problem = new DictionaryValue();
- problem->SetString("description",
- "Accelerated compositing has been disabled, either via about:flags "
- "or command line. This adversely affects performance of all hardware "
- " accelerated features.");
- problem->Set("crBugs", new ListValue());
- problem->Set("webkitBugs", new ListValue());
- problem_list->Append(problem);
- }
- if (disable_experimental_webgl) {
- DictionaryValue* problem = new DictionaryValue();
- problem->SetString("description",
- "WebGL has been disabled, either via about:flags "
- "or command line");
- problem->Set("crBugs", new ListValue());
- problem->Set("webkitBugs", new ListValue());
- problem_list->Append(problem);
- }
- if (disable_multisampling) {
- DictionaryValue* problem = new DictionaryValue();
- problem->SetString("description",
- "Multisampling has been disabled, either via about:flags "
- "or command line");
- problem->Set("crBugs", new ListValue());
- problem->Set("webkitBugs", new ListValue());
- problem_list->Append(problem);
- }
- for (size_t i = 0; i < active_entries_.size(); ++i) {
- ScopedGpuBlacklistEntry entry = active_entries_[i];
- DictionaryValue* problem = new DictionaryValue();
-
- problem->SetString("description", entry->description());
-
- ListValue* cr_bugs = new ListValue();
- for (size_t j = 0; j < entry->cr_bugs().size(); ++j)
- cr_bugs->Append(Value::CreateIntegerValue(
- entry->cr_bugs()[j]));
- problem->Set("crBugs", cr_bugs);
-
- ListValue* webkit_bugs = new ListValue();
- for (size_t j = 0; j < entry->webkit_bugs().size(); ++j)
- webkit_bugs->Append(Value::CreateIntegerValue(
- entry->webkit_bugs()[j]));
- problem->Set("webkitBugs", webkit_bugs);
-
- problem_list->Append(problem);
- }
- status->Set("problems", problem_list);
- }
- return status;
}
size_t GpuBlacklist::num_entries() const {
« no previous file with comments | « content/browser/gpu/gpu_blacklist.h ('k') | content/browser/gpu/gpu_data_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698