summaryrefslogtreecommitdiffstats
path: root/gpu/config
diff options
context:
space:
mode:
authorkkinnunen <kkinnunen@nvidia.com>2016-02-01 00:30:42 -0800
committerCommit bot <commit-bot@chromium.org>2016-02-01 08:31:47 +0000
commit394e596bb817f3db6cf9f8834f5d24492f7ddc94 (patch)
tree17ab8056219fd5acd90e5e72be6b527c7e8338b6 /gpu/config
parentf3ba5db653caa7c372939949c52532a41d2c2762 (diff)
downloadchromium_src-394e596bb817f3db6cf9f8834f5d24492f7ddc94.zip
chromium_src-394e596bb817f3db6cf9f8834f5d24492f7ddc94.tar.gz
chromium_src-394e596bb817f3db6cf9f8834f5d24492f7ddc94.tar.bz2
Set disabled GL extensions from gpu driver bug list for the test executables
Apply disabled GL extensions from gpu driver bug list for all the gpu related executables. This makes it possible to use the disabled extensions in gpu driver bug list so that they apply to unit tests. This is needed in order to implement and test features that are likely to not work at all unless disabled extensions work. BUG=344330 Review URL: https://codereview.chromium.org/1215063005 Cr-Commit-Position: refs/heads/master@{#372624}
Diffstat (limited to 'gpu/config')
-rw-r--r--gpu/config/gpu_driver_bug_list_json.cc18
-rw-r--r--gpu/config/gpu_driver_bug_workaround_type.h4
-rw-r--r--gpu/config/gpu_util.cc29
-rw-r--r--gpu/config/gpu_util.h11
-rw-r--r--gpu/config/gpu_util_unittest.cc29
5 files changed, 60 insertions, 31 deletions
diff --git a/gpu/config/gpu_driver_bug_list_json.cc b/gpu/config/gpu_driver_bug_list_json.cc
index 1838efd..95d713f 100644
--- a/gpu/config/gpu_driver_bug_list_json.cc
+++ b/gpu/config/gpu_driver_bug_list_json.cc
@@ -19,7 +19,7 @@ const char kGpuDriverBugListJson[] = LONG_STRING_CONST(
{
"name": "gpu driver bug list",
// Please update the version number whenever you change this file.
- "version": "8.41",
+ "version": "8.42",
"entries": [
{
"id": 1,
@@ -1439,9 +1439,7 @@ LONG_STRING_CONST(
"op": "<",
"value": "346"
},
- "features": [
- "disable_gl_path_rendering"
- ]
+ "disabled_extensions": ["GL_NV_path_rendering"]
},
{
"id": 124,
@@ -1582,9 +1580,7 @@ LONG_STRING_CONST(
}
},
"gl_vendor": "Qualcomm.*",
- "features": [
- "disable_ext_srgb"
- ]
+ "disabled_extensions": ["GL_EXT_sRGB"]
},
{
"id": 135,
@@ -1635,9 +1631,7 @@ LONG_STRING_CONST(
"op": "<",
"value": "346"
},
- "features": [
- "disable_gl_path_rendering"
- ]
+ "disabled_extensions": ["GL_NV_path_rendering"]
},
{
"id": 139,
@@ -1670,9 +1664,7 @@ LONG_STRING_CONST(
},
"gl_vendor": "Qualcomm",
"gl_renderer": "Adreno \\(TM\\) 4.*", // Originally on 418.
- "features": [
- "disable_ext_srgb"
- ]
+ "disabled_extensions": ["GL_EXT_sRGB"]
},
{
"id": 141,
diff --git a/gpu/config/gpu_driver_bug_workaround_type.h b/gpu/config/gpu_driver_bug_workaround_type.h
index bccf63b..b139643 100644
--- a/gpu/config/gpu_driver_bug_workaround_type.h
+++ b/gpu/config/gpu_driver_bug_workaround_type.h
@@ -34,10 +34,6 @@
disable_discard_framebuffer) \
GPU_OP(DISABLE_EXT_DRAW_BUFFERS, \
disable_ext_draw_buffers) \
- GPU_OP(DISABLE_EXT_SRGB, \
- disable_ext_srgb) \
- GPU_OP(DISABLE_GL_PATH_RENDERING, \
- disable_gl_path_rendering) \
GPU_OP(DISABLE_GL_RGB_FORMAT, \
disable_gl_rgb_format) \
GPU_OP(DISABLE_MSAA_ON_NON_WEBGL_CONTEXTS, \
diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc
index 80a99fb..34fac58 100644
--- a/gpu/config/gpu_util.cc
+++ b/gpu/config/gpu_util.cc
@@ -10,6 +10,7 @@
#include "base/logging.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_split.h"
+#include "base/strings/string_util.h"
#include "gpu/config/gpu_control_list_jsons.h"
#include "gpu/config/gpu_driver_bug_list.h"
#include "gpu/config/gpu_info_collector.h"
@@ -53,13 +54,6 @@ void MergeFeatureSets(std::set<int>* dst, const std::set<int>& src) {
dst->insert(src.begin(), src.end());
}
-void ApplyGpuDriverBugWorkarounds(base::CommandLine* command_line) {
- GPUInfo gpu_info;
- CollectBasicGraphicsInfo(&gpu_info);
-
- ApplyGpuDriverBugWorkarounds(gpu_info, command_line);
-}
-
void ApplyGpuDriverBugWorkarounds(const GPUInfo& gpu_info,
base::CommandLine* command_line) {
scoped_ptr<GpuDriverBugList> list(GpuDriverBugList::Create());
@@ -73,6 +67,27 @@ void ApplyGpuDriverBugWorkarounds(const GPUInfo& gpu_info,
command_line->AppendSwitchASCII(switches::kGpuDriverBugWorkarounds,
IntSetToString(workarounds));
}
+
+ std::set<std::string> disabled_extensions;
+ std::vector<std::string> buglist_disabled_extensions =
+ list->GetDisabledExtensions();
+ disabled_extensions.insert(buglist_disabled_extensions.begin(),
+ buglist_disabled_extensions.end());
+
+ if (command_line->HasSwitch(switches::kDisableGLExtensions)) {
+ std::vector<std::string> existing_disabled_extensions = base::SplitString(
+ command_line->GetSwitchValueASCII(switches::kDisableGLExtensions), " ",
+ base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
+ disabled_extensions.insert(existing_disabled_extensions.begin(),
+ existing_disabled_extensions.end());
+ }
+
+ if (!disabled_extensions.empty()) {
+ std::vector<std::string> v(disabled_extensions.begin(),
+ disabled_extensions.end());
+ command_line->AppendSwitchASCII(switches::kDisableGLExtensions,
+ base::JoinString(v, " "));
+ }
}
void StringToFeatureSet(
diff --git a/gpu/config/gpu_util.h b/gpu/config/gpu_util.h
index 21c802c..6b89303 100644
--- a/gpu/config/gpu_util.h
+++ b/gpu/config/gpu_util.h
@@ -24,14 +24,11 @@ struct GPUInfo;
GPU_EXPORT void MergeFeatureSets(
std::set<int>* dst, const std::set<int>& src);
-// Collect basic GPUInfo, compute the driver bug workarounds for the current
-// system, and append the |command_line|.
-GPU_EXPORT void ApplyGpuDriverBugWorkarounds(base::CommandLine* command_line);
-
-// With provided GPUInfo, compute the driver bug workarounds for the current
-// system, and append the |command_line|.
+// With provided GPUInfo, compute the driver bug workarounds and disabled
+// extensions for the current system, and append the |command_line|.
GPU_EXPORT void ApplyGpuDriverBugWorkarounds(
- const GPUInfo& gpu_inco, base::CommandLine* command_line);
+ const GPUInfo& gpu_info,
+ base::CommandLine* command_line);
// |str| is in the format of "feature1,feature2,...,featureN".
GPU_EXPORT void StringToFeatureSet(
diff --git a/gpu/config/gpu_util_unittest.cc b/gpu/config/gpu_util_unittest.cc
index e1264db..fb7fd2b 100644
--- a/gpu/config/gpu_util_unittest.cc
+++ b/gpu/config/gpu_util_unittest.cc
@@ -3,7 +3,14 @@
// found in the LICENSE file.
#include "gpu/config/gpu_util.h"
+#include "base/memory/scoped_ptr.h"
+#include "base/strings/string_split.h"
+#include "gpu/config/gpu_control_list_jsons.h"
+#include "gpu/config/gpu_driver_bug_list.h"
+#include "gpu/config/gpu_info.h"
+#include "gpu/config/gpu_info_collector.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "ui/gl/gl_switches.h"
namespace gpu {
@@ -68,4 +75,26 @@ TEST(GpuUtilTest, StringToFeatureSet) {
}
}
+TEST(GpuUtilTest,
+ ApplyGpuDriverBugWorkarounds_DisabledExtensions) {
+ GPUInfo gpu_info;
+ CollectBasicGraphicsInfo(&gpu_info);
+ scoped_ptr<GpuDriverBugList> list(GpuDriverBugList::Create());
+ list->LoadList(kGpuDriverBugListJson, GpuControlList::kCurrentOsOnly);
+ list->MakeDecision(GpuControlList::kOsAny, std::string(), gpu_info);
+ std::vector<std::string> expected_disabled_extensions =
+ list->GetDisabledExtensions();
+ base::CommandLine command_line(base::CommandLine::NO_PROGRAM);
+ ApplyGpuDriverBugWorkarounds(gpu_info, &command_line);
+
+ std::vector<std::string> actual_disabled_extensions = base::SplitString(
+ command_line.GetSwitchValueASCII(switches::kDisableGLExtensions), ", ;",
+ base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
+ sort(expected_disabled_extensions.begin(),
+ expected_disabled_extensions.end());
+ sort(actual_disabled_extensions.begin(), actual_disabled_extensions.end());
+
+ EXPECT_EQ(expected_disabled_extensions, actual_disabled_extensions);
+}
+
} // namespace gpu