Index: gpu/config/gpu_info_collector.cc |
diff --git a/gpu/config/gpu_info_collector.cc b/gpu/config/gpu_info_collector.cc |
index 499d0fb625b4290ca0b8f05b768ac5d2a203a0af..3bfcc5b656229c9669518194bc366bdc1e57206d 100644 |
--- a/gpu/config/gpu_info_collector.cc |
+++ b/gpu/config/gpu_info_collector.cc |
@@ -10,6 +10,7 @@ |
#include <string> |
#include <vector> |
+#include "base/command_line.h" |
#include "base/logging.h" |
#include "base/metrics/sparse_histogram.h" |
#include "base/strings/string_number_conversions.h" |
@@ -17,6 +18,7 @@ |
#include "base/strings/string_split.h" |
#include "base/strings/string_util.h" |
#include "base/trace_event/trace_event.h" |
+#include "gpu/config/gpu_switches.h" |
#include "ui/gl/gl_bindings.h" |
#include "ui/gl/gl_context.h" |
#include "ui/gl/gl_implementation.h" |
@@ -117,8 +119,23 @@ CollectInfoResult CollectGraphicsInfoGL(GPUInfo* gpu_info) { |
gpu_info->gl_renderer = GetGLString(GL_RENDERER); |
gpu_info->gl_vendor = GetGLString(GL_VENDOR); |
- gpu_info->gl_extensions = gfx::GetGLExtensionsFromCurrentContext(); |
gpu_info->gl_version = GetGLString(GL_VERSION); |
+ |
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); |
+ if (command_line->HasSwitch(switches::kGpuTestingGLVendor)) { |
+ gpu_info->gl_vendor = |
+ command_line->GetSwitchValueASCII(switches::kGpuTestingGLVendor); |
+ } |
+ if (command_line->HasSwitch(switches::kGpuTestingGLRenderer)) { |
+ gpu_info->gl_renderer = |
+ command_line->GetSwitchValueASCII(switches::kGpuTestingGLRenderer); |
+ } |
+ if (command_line->HasSwitch(switches::kGpuTestingGLVersion)) { |
+ gpu_info->gl_version = |
+ command_line->GetSwitchValueASCII(switches::kGpuTestingGLVersion); |
+ } |
+ |
+ gpu_info->gl_extensions = gfx::GetGLExtensionsFromCurrentContext(); |
std::string glsl_version_string = GetGLString(GL_SHADING_LANGUAGE_VERSION); |
gfx::GLVersionInfo gl_info(gpu_info->gl_version.c_str(), |
@@ -214,17 +231,20 @@ void MergeGPUInfoGL(GPUInfo* basic_gpu_info, |
void IdentifyActiveGPU(GPUInfo* gpu_info) { |
const std::string kNVidiaName = "nvidia"; |
+ const std::string kNouveauName = "nouveau"; |
const std::string kIntelName = "intel"; |
const std::string kAMDName = "amd"; |
const std::string kATIName = "ati"; |
- const std::string kVendorNames[] = { |
- kNVidiaName, kIntelName, kAMDName, kATIName}; |
+ const std::string kRadeonName = "radeon"; |
Zhenyao Mo
2016/04/19 21:05:27
Really? We have drivers with "Radeon" as vendor s
Julien Isorce Samsung
2016/04/20 17:19:21
You are right it is wrong, I double checked in Mes
|
+ const std::string kVendorNames[] = {kNVidiaName, kNouveauName, kIntelName, |
+ kAMDName, kATIName, kRadeonName}; |
const uint32_t kNVidiaID = 0x10de; |
const uint32_t kIntelID = 0x8086; |
const uint32_t kAMDID = 0x1002; |
const uint32_t kATIID = 0x1002; |
- const uint32_t kVendorIDs[] = {kNVidiaID, kIntelID, kAMDID, kATIID}; |
+ const uint32_t kVendorIDs[] = {kNVidiaID, kNVidiaID, kIntelID, |
+ kAMDID, kATIID, kAMDID}; |
DCHECK(gpu_info); |
if (gpu_info->secondary_gpus.size() == 0) |