summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/app/breakpad_linux.cc11
-rw-r--r--chrome/browser/metrics/metrics_log.cc2
-rw-r--r--chrome/common/child_process_logging.h2
-rw-r--r--chrome/common/child_process_logging_posix.cc6
-rw-r--r--chrome/common/metrics/proto/system_profile.proto8
5 files changed, 29 insertions, 0 deletions
diff --git a/chrome/app/breakpad_linux.cc b/chrome/app/breakpad_linux.cc
index 07e1511..b4cca7b 100644
--- a/chrome/app/breakpad_linux.cc
+++ b/chrome/app/breakpad_linux.cc
@@ -1063,16 +1063,27 @@ void HandleCrashDump(const BreakpadInfo& info) {
// If GPU info is known, send it.
if (*child_process_logging::g_gpu_vendor_id) {
+#if !defined(OS_ANDROID)
static const char vendor_msg[] = "gpu-venid";
static const char device_msg[] = "gpu-devid";
+#endif
+ static const char gl_vendor_msg[] = "gpu-gl-vendor";
+ static const char gl_renderer_msg[] = "gpu-gl-renderer";
static const char driver_msg[] = "gpu-driver";
static const char psver_msg[] = "gpu-psver";
static const char vsver_msg[] = "gpu-vsver";
+#if !defined(OS_ANDROID)
writer.AddPairString(vendor_msg, child_process_logging::g_gpu_vendor_id);
writer.AddBoundary();
writer.AddPairString(device_msg, child_process_logging::g_gpu_device_id);
writer.AddBoundary();
+#endif
+ writer.AddPairString(gl_vendor_msg, child_process_logging::g_gpu_gl_vendor);
+ writer.AddBoundary();
+ writer.AddPairString(gl_renderer_msg,
+ child_process_logging::g_gpu_gl_renderer);
+ writer.AddBoundary();
writer.AddPairString(driver_msg, child_process_logging::g_gpu_driver_ver);
writer.AddBoundary();
writer.AddPairString(psver_msg, child_process_logging::g_gpu_ps_ver);
diff --git a/chrome/browser/metrics/metrics_log.cc b/chrome/browser/metrics/metrics_log.cc
index 246880e..a63fc2d 100644
--- a/chrome/browser/metrics/metrics_log.cc
+++ b/chrome/browser/metrics/metrics_log.cc
@@ -846,6 +846,8 @@ void MetricsLog::RecordEnvironmentProto(
gpu_performance->set_graphics_score(gpu_info.performance_stats.graphics);
gpu_performance->set_gaming_score(gpu_info.performance_stats.gaming);
gpu_performance->set_overall_score(gpu_info.performance_stats.overall);
+ gpu->set_gl_vendor(gpu_info.gl_vendor);
+ gpu->set_gl_renderer(gpu_info.gl_renderer);
const gfx::Size display_size = GetScreenSize();
hardware->set_primary_screen_width(display_size.width());
diff --git a/chrome/common/child_process_logging.h b/chrome/common/child_process_logging.h
index a9958d0..3d0f078 100644
--- a/chrome/common/child_process_logging.h
+++ b/chrome/common/child_process_logging.h
@@ -56,6 +56,8 @@ extern char g_client_id[];
extern char g_extension_ids[];
extern char g_gpu_vendor_id[];
extern char g_gpu_device_id[];
+extern char g_gpu_gl_vendor[];
+extern char g_gpu_gl_renderer[];
extern char g_gpu_driver_ver[];
extern char g_gpu_ps_ver[];
extern char g_gpu_vs_ver[];
diff --git a/chrome/common/child_process_logging_posix.cc b/chrome/common/child_process_logging_posix.cc
index d9e8485..76b7493 100644
--- a/chrome/common/child_process_logging_posix.cc
+++ b/chrome/common/child_process_logging_posix.cc
@@ -33,6 +33,8 @@ char g_channel[kChannelSize] = "";
static const size_t kGpuStringSize = 32;
char g_gpu_vendor_id[kGpuStringSize] = "";
char g_gpu_device_id[kGpuStringSize] = "";
+char g_gpu_gl_vendor[kGpuStringSize] = "";
+char g_gpu_gl_renderer[kGpuStringSize] = "";
char g_gpu_driver_ver[kGpuStringSize] = "";
char g_gpu_ps_ver[kGpuStringSize] = "";
char g_gpu_vs_ver[kGpuStringSize] = "";
@@ -98,6 +100,10 @@ void SetGpuInfo(const content::GPUInfo& gpu_info) {
gpu_info.gpu.vendor_id);
snprintf(g_gpu_device_id, arraysize(g_gpu_device_id), "0x%04x",
gpu_info.gpu.device_id);
+ base::strlcpy(g_gpu_gl_vendor, gpu_info.gl_vendor.c_str(),
+ arraysize(g_gpu_gl_vendor));
+ base::strlcpy(g_gpu_gl_renderer, gpu_info.gl_renderer.c_str(),
+ arraysize(g_gpu_gl_renderer));
base::strlcpy(g_gpu_driver_ver, gpu_info.driver_version.c_str(),
arraysize(g_gpu_driver_ver));
base::strlcpy(g_gpu_ps_ver, gpu_info.pixel_shader_version.c_str(),
diff --git a/chrome/common/metrics/proto/system_profile.proto b/chrome/common/metrics/proto/system_profile.proto
index 53914fe..3b0fe4b 100644
--- a/chrome/common/metrics/proto/system_profile.proto
+++ b/chrome/common/metrics/proto/system_profile.proto
@@ -134,6 +134,14 @@ message SystemProfileProto {
optional float overall_score = 3;
}
optional PerformanceStatistics performance_statistics = 5;
+
+ // The GL_VENDOR string. An example of a gl_vendor string is
+ // "Imagination Technologies". "" if we are not using OpenGL.
+ optional string gl_vendor = 6;
+
+ // The GL_RENDERER string. An example of a gl_renderer string is
+ // "PowerVR SGX 540". "" if we are not using OpenGL.
+ optional string gl_renderer = 7;
}
optional Graphics gpu = 8;
}