summaryrefslogtreecommitdiffstats
path: root/content/test/gpu
diff options
context:
space:
mode:
authorzmo@chromium.org <zmo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-10 23:02:42 +0000
committerzmo@chromium.org <zmo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-10 23:02:42 +0000
commita094e2cb67f9c134163a4418315d8d245e406fbe (patch)
tree47f0ee5de8d8216bcb12c2dbd5c65569b13fe200 /content/test/gpu
parente9165b203749b1b3b37a93d3e640781384191cb9 (diff)
downloadchromium_src-a094e2cb67f9c134163a4418315d8d245e406fbe.zip
chromium_src-a094e2cb67f9c134163a4418315d8d245e406fbe.tar.gz
chromium_src-a094e2cb67f9c134163a4418315d8d245e406fbe.tar.bz2
Change GPUInfo to handle multiple GPUs.
At the moment we always select one GPU as primary and the others as secondary. In preliminary GPU info collection (without creating a GL context and collect GL VENDOR/RENDERER strings), we actually don't know which GPU is in use. The current logic is that if one GPU is Intel, we assume the other is primary. I agree a better logic is needed. However, at the moment, logging/crash reports all requires ONE GPU vendor_id/device_id, so even though we don't know which GPU is active, we still need to randomly select one. This needs more thinking and design, so I think it's reasonable to leave it to a possible future CL. Also, the logic on collecting GPU info through libpci is changed to collect multiple GPUs. If one is Intel and one is NVIDIA, we assume it's optimus and we disable GPU features. This logic is hardwired in Chrome in this CL. The plan is to push the logic to blacklist, but I'll leave it to a seperate CL. BUG=126307,75220 TEST=about:gpu page on a Linux system with optimus GPU R=kbr TBR=jam Review URL: https://chromiumcodereview.appspot.com/10389051 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@136429 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/test/gpu')
-rw-r--r--content/test/gpu/gpu_test_config.cc6
-rw-r--r--content/test/gpu/gpu_test_config_unittest.cc20
2 files changed, 13 insertions, 13 deletions
diff --git a/content/test/gpu/gpu_test_config.cc b/content/test/gpu/gpu_test_config.cc
index 946c6a2..b76debe 100644
--- a/content/test/gpu/gpu_test_config.cc
+++ b/content/test/gpu/gpu_test_config.cc
@@ -128,11 +128,11 @@ void GPUTestBotConfig::AddGPUVendor(uint32 gpu_vendor) {
}
bool GPUTestBotConfig::SetGPUInfo(const content::GPUInfo& gpu_info) {
- if (gpu_info.device_id == 0 || gpu_info.vendor_id == 0)
+ if (gpu_info.gpu.device_id == 0 || gpu_info.gpu.vendor_id == 0)
return false;
ClearGPUVendor();
- AddGPUVendor(gpu_info.vendor_id);
- set_gpu_device_id(gpu_info.device_id);
+ AddGPUVendor(gpu_info.gpu.vendor_id);
+ set_gpu_device_id(gpu_info.gpu.device_id);
return true;
}
diff --git a/content/test/gpu/gpu_test_config_unittest.cc b/content/test/gpu/gpu_test_config_unittest.cc
index 7c0a3b0..6f47b64 100644
--- a/content/test/gpu/gpu_test_config_unittest.cc
+++ b/content/test/gpu/gpu_test_config_unittest.cc
@@ -28,20 +28,20 @@ TEST_F(GPUTestConfigTest, EmptyValues) {
TEST_F(GPUTestConfigTest, SetGPUInfo) {
content::GPUInfo gpu_info;
- gpu_info.vendor_id = 0x10de;
- gpu_info.device_id = 0x0640;
+ gpu_info.gpu.vendor_id = 0x10de;
+ gpu_info.gpu.device_id = 0x0640;
GPUTestBotConfig config;
EXPECT_TRUE(config.SetGPUInfo(gpu_info));
EXPECT_EQ(1u, config.gpu_vendor().size());
- EXPECT_EQ(gpu_info.vendor_id, config.gpu_vendor()[0]);
- EXPECT_EQ(gpu_info.device_id, config.gpu_device_id());
+ EXPECT_EQ(gpu_info.gpu.vendor_id, config.gpu_vendor()[0]);
+ EXPECT_EQ(gpu_info.gpu.device_id, config.gpu_device_id());
- gpu_info.vendor_id = 0x8086;
- gpu_info.device_id = 0x0046;
+ gpu_info.gpu.vendor_id = 0x8086;
+ gpu_info.gpu.device_id = 0x0046;
EXPECT_TRUE(config.SetGPUInfo(gpu_info));
EXPECT_EQ(1u, config.gpu_vendor().size());
- EXPECT_EQ(gpu_info.vendor_id, config.gpu_vendor()[0]);
- EXPECT_EQ(gpu_info.device_id, config.gpu_device_id());
+ EXPECT_EQ(gpu_info.gpu.vendor_id, config.gpu_vendor()[0]);
+ EXPECT_EQ(gpu_info.gpu.device_id, config.gpu_device_id());
}
TEST_F(GPUTestConfigTest, IsValid) {
@@ -212,8 +212,8 @@ TEST_F(GPUTestConfigTest, OverlapsWith) {
TEST_F(GPUTestConfigTest, LoadCurrentConfig) {
GPUTestBotConfig config;
content::GPUInfo gpu_info;
- gpu_info.vendor_id = 0x10de;
- gpu_info.device_id = 0x0640;
+ gpu_info.gpu.vendor_id = 0x10de;
+ gpu_info.gpu.device_id = 0x0640;
EXPECT_TRUE(config.LoadCurrentConfig(&gpu_info));
EXPECT_TRUE(config.IsValid());
}