diff options
author | jmadill@chromium.org <jmadill@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-17 19:20:17 +0000 |
---|---|---|
committer | jmadill@chromium.org <jmadill@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-17 19:20:17 +0000 |
commit | 1640d9b302e2fc5765f88a3f17414baf4ac6bbd3 (patch) | |
tree | faa7bacd4ba7979164c2ac1e9a978bd09c2c374c | |
parent | 5be879c60a8f4a481d553f8a6a8dbc75c9f4b5a0 (diff) | |
download | chromium_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.cc | 18 | ||||
-rw-r--r-- | gpu/config/gpu_driver_bug_list_unittest.cc | 51 |
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 |