summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjmadill@chromium.org <jmadill@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-17 19:20:17 +0000
committerjmadill@chromium.org <jmadill@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-17 19:20:17 +0000
commit1640d9b302e2fc5765f88a3f17414baf4ac6bbd3 (patch)
treefaa7bacd4ba7979164c2ac1e9a978bd09c2c374c
parent5be879c60a8f4a481d553f8a6a8dbc75c9f4b5a0 (diff)
downloadchromium_src-1640d9b302e2fc5765f88a3f17414baf4ac6bbd3.zip
chromium_src-1640d9b302e2fc5765f88a3f17414baf4ac6bbd3.tar.gz
chromium_src-1640d9b302e2fc5765f88a3f17414baf4ac6bbd3.tar.bz2
Blacklist D3D11 on older nVidia drivers.
Older nVidia drivers (269.73 and prior) seem to show up in crash reports associated with turning on D3D11 by default in ANGLE. Forcing D3D9 should clear up the crashes. BUG=349929 Review URL: https://codereview.chromium.org/240503002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@264608 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--gpu/config/gpu_driver_bug_list_json.cc18
-rw-r--r--gpu/config/gpu_driver_bug_list_unittest.cc51
2 files changed, 68 insertions, 1 deletions
diff --git a/gpu/config/gpu_driver_bug_list_json.cc b/gpu/config/gpu_driver_bug_list_json.cc
index be3dbfd..4741359 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": "4.11",
+ "version": "4.12",
"entries": [
{
"id": 1,
@@ -933,6 +933,22 @@ const char kGpuDriverBugListJson[] = LONG_STRING_CONST(
"max_varying_vectors_16",
"max_vertex_uniform_vectors_256"
]
+ },
+ {
+ "id": 70,
+ "description": "Disable D3D11 on older nVidia drivers",
+ "cr_bugs": [349929],
+ "os": {
+ "type": "win"
+ },
+ "vendor_id": "0x10de",
+ "driver_version": {
+ "op": "<=",
+ "value": "8.17.12.6973"
+ },
+ "features": [
+ "disable_d3d11"
+ ]
}
]
}
diff --git a/gpu/config/gpu_driver_bug_list_unittest.cc b/gpu/config/gpu_driver_bug_list_unittest.cc
index 798cdbb..34a911e 100644
--- a/gpu/config/gpu_driver_bug_list_unittest.cc
+++ b/gpu/config/gpu_driver_bug_list_unittest.cc
@@ -156,5 +156,56 @@ TEST_F(GpuDriverBugListTest, AppendForceGPUWorkaround) {
EXPECT_EQ(1u, workarounds.count(FORCE_DISCRETE_GPU));
}
+TEST_F(GpuDriverBugListTest, NVIDIANumberingScheme) {
+ const std::string json = LONG_STRING_CONST(
+ {
+ "name": "gpu driver bug list",
+ "version": "0.1",
+ "entries": [
+ {
+ "id": 1,
+ "os": {
+ "type": "win"
+ },
+ "vendor_id": "0x10de",
+ "driver_version": {
+ "op": "<=",
+ "value": "8.17.12.6973"
+ },
+ "features": [
+ "disable_d3d11"
+ ]
+ }
+ ]
+ }
+ );
+
+ scoped_ptr<GpuDriverBugList> list(GpuDriverBugList::Create());
+ EXPECT_TRUE(list->LoadList(json, GpuControlList::kAllOs));
+
+ GPUInfo gpu_info;
+ gpu_info.gl_vendor = "NVIDIA";
+ gpu_info.gl_renderer = "NVIDIA GeForce GT 120 OpenGL Engine";
+ gpu_info.gpu.vendor_id = 0x10de;
+ gpu_info.gpu.device_id = 0x0640;
+
+ // test the same driver version number
+ gpu_info.driver_version = "8.17.12.6973";
+ std::set<int> bugs = list->MakeDecision(
+ GpuControlList::kOsWin, "7.0", gpu_info);
+ EXPECT_EQ(1u, bugs.count(DISABLE_D3D11));
+
+ // test a lower driver version number
+ gpu_info.driver_version = "8.15.11.8647";
+
+ bugs = list->MakeDecision(GpuControlList::kOsWin, "7.0", gpu_info);
+ EXPECT_EQ(1u, bugs.count(DISABLE_D3D11));
+
+ // test a higher driver version number
+ gpu_info.driver_version = "9.18.13.2723";
+ bugs = list->MakeDecision(GpuControlList::kOsWin, "7.0", gpu_info);
+ EXPECT_EQ(0u, bugs.count(DISABLE_D3D11));
+}
+
} // namespace gpu