summaryrefslogtreecommitdiff
path: root/chromium/gpu/config
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/gpu/config')
-rw-r--r--chromium/gpu/config/gpu_blacklist_unittest.cc2
-rw-r--r--chromium/gpu/config/gpu_control_list.cc13
-rw-r--r--chromium/gpu/config/gpu_control_list.h4
-rw-r--r--chromium/gpu/config/gpu_control_list_testing_autogen.cc132
-rw-r--r--chromium/gpu/config/gpu_driver_bug_list.json44
-rw-r--r--chromium/gpu/config/gpu_feature_info.h2
-rw-r--r--chromium/gpu/config/gpu_lists_version.h2
-rw-r--r--chromium/gpu/config/gpu_util.cc10
-rwxr-xr-xchromium/gpu/config/process_json.py26
9 files changed, 218 insertions, 17 deletions
diff --git a/chromium/gpu/config/gpu_blacklist_unittest.cc b/chromium/gpu/config/gpu_blacklist_unittest.cc
index 45bfe72cb27..17f2bf80c1c 100644
--- a/chromium/gpu/config/gpu_blacklist_unittest.cc
+++ b/chromium/gpu/config/gpu_blacklist_unittest.cc
@@ -30,6 +30,8 @@ class GpuBlacklistTest : public testing::Test {
kFeatureListForEntry1, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
diff --git a/chromium/gpu/config/gpu_control_list.cc b/chromium/gpu/config/gpu_control_list.cc
index a1a29a05c5f..f93c1d21951 100644
--- a/chromium/gpu/config/gpu_control_list.cc
+++ b/chromium/gpu/config/gpu_control_list.cc
@@ -605,6 +605,19 @@ std::vector<std::string> GpuControlList::GetDisabledExtensions() {
disabled_extensions.end());
}
+std::vector<std::string> GpuControlList::GetDisabledWebGLExtensions() {
+ std::set<std::string> disabled_webgl_extensions;
+ for (auto index : active_entries_) {
+ DCHECK_LT(index, entry_count_);
+ const Entry& entry = entries_[index];
+ for (size_t ii = 0; ii < entry.disabled_webgl_extension_size; ++ii) {
+ disabled_webgl_extensions.insert(entry.disabled_webgl_extensions[ii]);
+ }
+ }
+ return std::vector<std::string>(disabled_webgl_extensions.begin(),
+ disabled_webgl_extensions.end());
+}
+
void GpuControlList::GetReasons(base::ListValue* problem_list,
const std::string& tag,
const std::vector<uint32_t>& entries) const {
diff --git a/chromium/gpu/config/gpu_control_list.h b/chromium/gpu/config/gpu_control_list.h
index de98ea830de..416386d72fe 100644
--- a/chromium/gpu/config/gpu_control_list.h
+++ b/chromium/gpu/config/gpu_control_list.h
@@ -191,6 +191,8 @@ class GPU_EXPORT GpuControlList {
const int* features;
size_t disabled_extension_size;
const char* const* disabled_extensions;
+ size_t disabled_webgl_extension_size;
+ const char* const* disabled_webgl_extensions;
size_t cr_bug_size;
const uint32_t* cr_bugs;
Conditions conditions;
@@ -243,6 +245,8 @@ class GPU_EXPORT GpuControlList {
// Collects all disabled extensions.
std::vector<std::string> GetDisabledExtensions();
+ // Collects all disabled WebGL extensions.
+ std::vector<std::string> GetDisabledWebGLExtensions();
// Returns the description and bugs from active entries provided.
// Each problems has:
diff --git a/chromium/gpu/config/gpu_control_list_testing_autogen.cc b/chromium/gpu/config/gpu_control_list_testing_autogen.cc
index 55257433999..72408aeb7e8 100644
--- a/chromium/gpu/config/gpu_control_list_testing_autogen.cc
+++ b/chromium/gpu/config/gpu_control_list_testing_autogen.cc
@@ -23,8 +23,10 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry1, // features
arraysize(kDisabledExtensionsForEntry1), // DisabledExtensions size
kDisabledExtensionsForEntry1, // DisabledExtensions
- arraysize(kCrBugsForEntry1), // CrBugs size
- kCrBugsForEntry1, // CrBugs
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
+ arraysize(kCrBugsForEntry1), // CrBugs size
+ kCrBugsForEntry1, // CrBugs
{
GpuControlList::kOsMacosx, // os_type
{GpuControlList::kEQ, GpuControlList::kVersionStyleNumerical,
@@ -49,6 +51,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry2, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -75,6 +79,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry3, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -101,6 +107,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry4, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -127,6 +135,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry5, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -153,6 +163,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry6, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -179,6 +191,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry7, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -205,6 +219,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry8, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -231,6 +247,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry9, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -257,6 +275,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry10, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -283,6 +303,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry11, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -309,6 +331,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry12, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -335,6 +359,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry13, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -361,6 +387,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry14, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -387,6 +415,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry15, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -413,6 +443,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry16, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -439,6 +471,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry17, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -465,6 +499,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry18, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -491,6 +527,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry19, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -517,6 +555,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry20, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -543,6 +583,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry21, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -569,6 +611,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry22, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -595,6 +639,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry23, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -621,6 +667,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry24, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -647,6 +695,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry25, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -673,6 +723,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry26, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -699,6 +751,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry27, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -725,6 +779,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry28, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -751,6 +807,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry29, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -777,6 +835,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry30, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -803,6 +863,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry31, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -829,6 +891,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry32, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -855,6 +919,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry33, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -881,6 +947,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry34, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -907,6 +975,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry35, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -933,6 +1003,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry36, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -959,6 +1031,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry37, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -985,6 +1059,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry38, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -1011,6 +1087,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry39, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -1037,6 +1115,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry40, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -1063,6 +1143,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry41, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -1089,6 +1171,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry42, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -1115,6 +1199,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry43, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -1141,6 +1227,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry44, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -1167,6 +1255,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry45, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -1193,6 +1283,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry46, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -1220,6 +1312,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry47, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -1247,6 +1341,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry48, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -1273,6 +1369,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry49, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -1299,6 +1397,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry50, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -1325,6 +1425,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry51, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -1351,6 +1453,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry52, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -1377,6 +1481,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry53, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -1403,6 +1509,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry54, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -1429,8 +1537,10 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
nullptr, // features
arraysize(kDisabledExtensionsForEntry55), // DisabledExtensions size
kDisabledExtensionsForEntry55, // DisabledExtensions
- 0, // CrBugs size
- nullptr, // CrBugs
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
+ 0, // CrBugs size
+ nullptr, // CrBugs
{
GpuControlList::kOsWin, // os_type
{GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical,
@@ -1455,8 +1565,10 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
nullptr, // features
arraysize(kDisabledExtensionsForEntry56), // DisabledExtensions size
kDisabledExtensionsForEntry56, // DisabledExtensions
- 0, // CrBugs size
- nullptr, // CrBugs
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
+ 0, // CrBugs size
+ nullptr, // CrBugs
{
GpuControlList::kOsWin, // os_type
{GpuControlList::kUnknown, GpuControlList::kVersionStyleNumerical,
@@ -1481,6 +1593,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry57, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -1507,6 +1621,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry58, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -1533,6 +1649,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry59, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
@@ -1559,6 +1677,8 @@ const GpuControlList::Entry kGpuControlListTestingEntries[] = {
kFeatureListForEntry60, // features
0, // DisabledExtensions size
nullptr, // DisabledExtensions
+ 0, // DisabledWebGLExtensions size
+ nullptr, // DisabledWebGLExtensions
0, // CrBugs size
nullptr, // CrBugs
{
diff --git a/chromium/gpu/config/gpu_driver_bug_list.json b/chromium/gpu/config/gpu_driver_bug_list.json
index ad57eb8ca40..0b1ed081cc6 100644
--- a/chromium/gpu/config/gpu_driver_bug_list.json
+++ b/chromium/gpu/config/gpu_driver_bug_list.json
@@ -2788,6 +2788,50 @@
"features": [
"max_msaa_sample_count_4"
]
+ },
+ {
+ "id": 256,
+ "description": "Don't expose disjoint_timer_query extensions to WebGL",
+ "cr_bugs": [808744],
+ "disabled_webgl_extensions": [
+ "EXT_disjoint_timer_query",
+ "EXT_disjoint_timer_query_webgl2"
+ ]
+ },
+ {
+ "id": 257,
+ "description": "Fake entry for testing disabling of WebGL extensions",
+ "cr_bugs": [808744],
+ "test_group": 2,
+ "disabled_webgl_extensions": [
+ "WEBGL_lose_context"
+ ]
+ },
+ {
+ "id": 258,
+ "description": "Shader variable initialization in a loop caused perf regression on Mac Intel.",
+ "cr_bugs": [809422],
+ "os": {
+ "type": "macosx"
+ },
+ "vendor_id": "0x8086",
+ "multi_gpu_category": "any",
+ "features": [
+ "dont_use_loops_to_initialize_variables"
+ ]
+ },
+ {
+ "id": 259,
+ "description": "8x MSAA is slow for alpha:false WebGL contexts on Mac Intel",
+ "cr_bugs": [812071],
+ "os": {
+ "type": "macosx"
+ },
+ "vendor_id": "0x8086",
+ "multi_gpu_category": "primary",
+ "features": [
+ "max_msaa_sample_count_4"
+ ]
}
]
}
diff --git a/chromium/gpu/config/gpu_feature_info.h b/chromium/gpu/config/gpu_feature_info.h
index f26572d414b..51138ae81b3 100644
--- a/chromium/gpu/config/gpu_feature_info.h
+++ b/chromium/gpu/config/gpu_feature_info.h
@@ -52,6 +52,8 @@ struct GPU_EXPORT GpuFeatureInfo {
std::vector<int32_t> enabled_gpu_driver_bug_workarounds;
// Disabled extensions separated by whitespaces.
std::string disabled_extensions;
+ // Disabled WebGL extensions separated by whitespaces.
+ std::string disabled_webgl_extensions;
// Applied gpu blacklist entry indices.
std::vector<uint32_t> applied_gpu_blacklist_entries;
// Applied gpu driver bug list entry indices.
diff --git a/chromium/gpu/config/gpu_lists_version.h b/chromium/gpu/config/gpu_lists_version.h
index ad3a5e431c5..3d89bf18a19 100644
--- a/chromium/gpu/config/gpu_lists_version.h
+++ b/chromium/gpu/config/gpu_lists_version.h
@@ -3,6 +3,6 @@
#ifndef GPU_CONFIG_GPU_LISTS_VERSION_H_
#define GPU_CONFIG_GPU_LISTS_VERSION_H_
-#define GPU_LISTS_VERSION "a0bb379a4de011b41ea07da28716e685a1cf4579"
+#define GPU_LISTS_VERSION "2b81d816997306dfdd0c2168d67028502f1cdee2"
#endif // GPU_CONFIG_GPU_LISTS_VERSION_H_
diff --git a/chromium/gpu/config/gpu_util.cc b/chromium/gpu/config/gpu_util.cc
index 2d039f3c951..d68eef65ed5 100644
--- a/chromium/gpu/config/gpu_util.cc
+++ b/chromium/gpu/config/gpu_util.cc
@@ -418,6 +418,16 @@ GpuFeatureInfo ComputeGpuFeatureInfo(const GPUInfo& gpu_info,
driver_bug_disabled_extensions = list->GetDisabledExtensions();
all_disabled_extensions.insert(driver_bug_disabled_extensions.begin(),
driver_bug_disabled_extensions.end());
+
+ // Disabling WebGL extensions only occurs via the blacklist, so
+ // the logic is simpler.
+ gl::ExtensionSet disabled_webgl_extensions;
+ std::vector<std::string> disabled_webgl_extension_list =
+ list->GetDisabledWebGLExtensions();
+ disabled_webgl_extensions.insert(disabled_webgl_extension_list.begin(),
+ disabled_webgl_extension_list.end());
+ gpu_feature_info.disabled_webgl_extensions =
+ gl::MakeExtensionString(disabled_webgl_extensions);
}
gpu::GpuDriverBugList::AppendWorkaroundsFromCommandLine(
&enabled_driver_bug_workarounds, *command_line);
diff --git a/chromium/gpu/config/process_json.py b/chromium/gpu/config/process_json.py
index bc67ce3bdbc..03910fc36c9 100755
--- a/chromium/gpu/config/process_json.py
+++ b/chromium/gpu/config/process_json.py
@@ -127,9 +127,10 @@ def write_features(entry_id, feature_set, feature_name_prefix,
data_helper_file.write('};\n\n')
-def write_disabled_extension_list(entry_id, data, data_file, data_helper_file):
+def write_disabled_extension_list(entry_kind, entry_id, data, data_file,
+ data_helper_file):
if data:
- var_name = 'kDisabledExtensionsForEntry' + str(entry_id)
+ var_name = 'k%sForEntry%d' % (entry_kind, entry_id)
# define the list
data_helper_file.write(
'const char* const %s[%d] = {\n' % (var_name, len(data)))
@@ -138,11 +139,11 @@ def write_disabled_extension_list(entry_id, data, data_file, data_helper_file):
data_helper_file.write(',\n')
data_helper_file.write('};\n\n')
# use the list
- data_file.write('arraysize(%s), // DisabledExtensions size\n' % var_name)
- data_file.write('%s, // DisabledExtensions\n' % var_name)
+ data_file.write('arraysize(%s), // %s size\n' % (var_name, entry_kind))
+ data_file.write('%s, // %s\n' % (var_name, entry_kind))
else:
- data_file.write('0, // DisabledExtensions size\n')
- data_file.write('nullptr, // DisabledExtensions\n')
+ data_file.write('0, // %s size\n' % entry_kind)
+ data_file.write('nullptr, // %s\n' % entry_kind)
def write_gl_strings(entry_id, is_exception, exception_id, data,
@@ -381,6 +382,9 @@ def write_conditions(entry_id, is_exception, exception_id, entry,
elif key == 'disabled_extensions':
assert not is_exception
continue
+ elif key == 'disabled_webgl_extensions':
+ assert not is_exception
+ continue
elif key == 'comment':
continue
elif key == 'webkit_bugs':
@@ -526,10 +530,12 @@ def write_entry(entry, total_feature_set, feature_name_prefix,
data_file.write('0, // feature size\n')
data_file.write('nullptr, // features\n')
# Disabled extensions
- disabled_extensions = None
- if 'disabled_extensions' in entry:
- disabled_extensions = entry['disabled_extensions']
- write_disabled_extension_list(entry_id, disabled_extensions,
+ write_disabled_extension_list('DisabledExtensions', entry_id,
+ entry.get('disabled_extensions', None),
+ data_file, data_helper_file)
+ # Disabled WebGL extensions
+ write_disabled_extension_list('DisabledWebGLExtensions', entry_id,
+ entry.get('disabled_webgl_extensions', None),
data_file, data_helper_file)
# webkit_bugs are skipped because there is only one entry that has it.
# cr_bugs