diff options
author | gab@chromium.org <gab@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-10 19:59:57 +0000 |
---|---|---|
committer | gab@chromium.org <gab@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-10 19:59:57 +0000 |
commit | ad15e527d974aa222677e2ebe80b320ba0fd4803 (patch) | |
tree | d3cb6e9325b04a35bb7e19879f9755d9961b7cbb /gpu/config | |
parent | 55398d2c62c998c1665451cd1046d41f1238b0b2 (diff) | |
download | chromium_src-ad15e527d974aa222677e2ebe80b320ba0fd4803.zip chromium_src-ad15e527d974aa222677e2ebe80b320ba0fd4803.tar.gz chromium_src-ad15e527d974aa222677e2ebe80b320ba0fd4803.tar.bz2 |
Enable GPU control lists in tests.
Reland of https://codereview.chromium.org/23534006/ (see that and the bug for more details).
Also adding INFO-level logging to spell out each control list rule being applied on the bots (makes debugging and understanding failures much easier).
R=piman@chromium.org
TBR=jcivelli, piman, zmo
BUG=295799, 304833
Previously Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=224810
Reverted: https://src.chromium.org/viewvc/chrome?view=rev&revision=224845
Review URL: https://codereview.chromium.org/23703017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@227977 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu/config')
-rw-r--r-- | gpu/config/gpu_control_list.cc | 14 | ||||
-rw-r--r-- | gpu/config/gpu_control_list.h | 15 | ||||
-rw-r--r-- | gpu/config/software_rendering_list_json.cc | 42 |
3 files changed, 66 insertions, 5 deletions
diff --git a/gpu/config/gpu_control_list.cc b/gpu/config/gpu_control_list.cc index 1d45d72..0c645b5 100644 --- a/gpu/config/gpu_control_list.cc +++ b/gpu/config/gpu_control_list.cc @@ -10,6 +10,7 @@ #include "base/strings/string_number_conversions.h" #include "base/strings/string_split.h" #include "base/strings/string_util.h" +#include "base/strings/stringprintf.h" #include "base/sys_info.h" #include "gpu/config/gpu_info.h" #include "gpu/config/gpu_util.h" @@ -1030,6 +1031,14 @@ GpuControlList::GpuControlListEntry::StringToMultiGpuCategory( return kMultiGpuCategoryNone; } +void GpuControlList::GpuControlListEntry::LogControlListMatch( + const std::string& control_list_logging_name) const { + static const char kControlListMatchMessage[] = + "Control list match for rule #%u in %s."; + LOG(INFO) << base::StringPrintf(kControlListMatchMessage, id_, + control_list_logging_name.c_str()); +} + bool GpuControlList::GpuControlListEntry::Contains( OsType os_type, const std::string& os_version, const GPUInfo& gpu_info) const { @@ -1185,7 +1194,8 @@ bool GpuControlList::GpuControlListEntry::StringToFeature( GpuControlList::GpuControlList() : max_entry_id_(0), needs_more_info_(false), - supports_feature_type_all_(false) { + supports_feature_type_all_(false), + control_list_logging_enabled_(false) { } GpuControlList::~GpuControlList() { @@ -1292,6 +1302,8 @@ std::set<int> GpuControlList::MakeDecision( for (size_t i = 0; i < entries_.size(); ++i) { if (entries_[i]->Contains(os, os_version, gpu_info)) { if (!entries_[i]->disabled()) { + if (control_list_logging_enabled_) + entries_[i]->LogControlListMatch(control_list_logging_name_); MergeFeatureSets(&possible_features, entries_[i]->features()); if (!entries_[i]->NeedsMoreInfo(gpu_info)) MergeFeatureSets(&features, entries_[i]->features()); diff --git a/gpu/config/gpu_control_list.h b/gpu/config/gpu_control_list.h index ced3b52..29a5f77 100644 --- a/gpu/config/gpu_control_list.h +++ b/gpu/config/gpu_control_list.h @@ -93,6 +93,13 @@ class GPU_EXPORT GpuControlList { // Register whether "all" is recognized as all features. void set_supports_feature_type_all(bool supported); + // Enables logging of control list decisions. + void enable_control_list_logging( + const std::string& control_list_logging_name) { + control_list_logging_enabled_ = true; + control_list_logging_name_ = control_list_logging_name; + } + private: friend class GpuControlListEntryTest; friend class MachineModelInfoTest; @@ -289,6 +296,11 @@ class GPU_EXPORT GpuControlList { const FeatureMap& feature_map, bool supports_feature_type_all); + // Logs a control list match for this rule in the list identified by + // |control_list_logging_name|. + void LogControlListMatch( + const std::string& control_list_logging_name) const; + // Determines if a given os/gc/machine_model/driver is included in the // Entry set. bool Contains(OsType os_type, const std::string& os_version, @@ -479,6 +491,9 @@ class GPU_EXPORT GpuControlList { // The features a GpuControlList recognizes and handles. FeatureMap feature_map_; bool supports_feature_type_all_; + + bool control_list_logging_enabled_; + std::string control_list_logging_name_; }; } // namespace gpu diff --git a/gpu/config/software_rendering_list_json.cc b/gpu/config/software_rendering_list_json.cc index 5256740..7ea63b3 100644 --- a/gpu/config/software_rendering_list_json.cc +++ b/gpu/config/software_rendering_list_json.cc @@ -18,7 +18,7 @@ const char kSoftwareRenderingListJson[] = LONG_STRING_CONST( { "name": "software rendering list", // Please update the version number whenever you change this file. - "version": "6.11", + "version": "6.12", "entries": [ { "id": 1, @@ -138,6 +138,12 @@ const char kSoftwareRenderingListJson[] = LONG_STRING_CONST( "op": ">=", "value": "7.15.10.1624" } + }, + { + "driver_vendor": { + "op": "=", + "value": "osmesa" + } } ], "features": [ @@ -329,6 +335,14 @@ const char kSoftwareRenderingListJson[] = LONG_STRING_CONST( "op": "<", "value": "7.11" }, + "exceptions": [ + { + "driver_vendor": { + "op": "=", + "value": "osmesa" + } + } + ], "features": [ "all" ] @@ -761,6 +775,12 @@ const char kSoftwareRenderingListJson[] = LONG_STRING_CONST( "op": ">=", "value": "7.15.10.1624" } + }, + { + "driver_vendor": { + "op": "=", + "value": "osmesa" + } } ], "features": [ @@ -1064,6 +1084,8 @@ const char kSoftwareRenderingListJson[] = LONG_STRING_CONST( "all" ] }, +) // String split to avoid MSVC char limit. +LONG_STRING_CONST( { "id": 75, "description": "Texture sharing not supported on AMD Switchable GPUs due to driver issues", @@ -1076,8 +1098,6 @@ const char kSoftwareRenderingListJson[] = LONG_STRING_CONST( "texture_sharing" ] }, -) // String split to avoid MSVC char limit. -LONG_STRING_CONST( { "id": 76, "description": "WebGL is disabled on Android unless GPU reset notification is supported", @@ -1129,6 +1149,21 @@ LONG_STRING_CONST( "features": [ "accelerated_video_decode" ] + }, + { + "id": 79, + "description": "Disable force compositing mode on all Windows versions prior to Vista.", + "cr_bugs": [273920], + "os": { + "type": "win", + "version": { + "op": "<", + "value": "6.0" + } + }, + "features": [ + "force_compositing_mode" + ] } ] } @@ -1136,4 +1171,3 @@ LONG_STRING_CONST( ); // LONG_STRING_CONST macro } // namespace gpu - |