Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(157)

Unified Diff: tools/telemetry/telemetry/core/gpu_device.py

Issue 21682002: Expose GPU information to Telemetry. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removed more unnecessary includes. Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/telemetry/core/gpu_device.py
diff --git a/tools/telemetry/telemetry/core/gpu_device.py b/tools/telemetry/telemetry/core/gpu_device.py
new file mode 100644
index 0000000000000000000000000000000000000000..047460a9cde5a960f16486d7256323b4cd4aa471
--- /dev/null
+++ b/tools/telemetry/telemetry/core/gpu_device.py
@@ -0,0 +1,71 @@
+# Copyright (c) 2013 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+class GPUDevice(object):
+ """Provides information about an individual GPU device.
+
+ On platforms which support them, the vendor_id and device_id are
+ PCI IDs. On other platforms, the vendor_string and device_string
+ are platform-dependent strings.
+ """
+
+ def __init__(self, vendor_id, device_id, vendor_string, device_string):
+ self._vendor_id = vendor_id
+ self._device_id = device_id
+ self._vendor_string = vendor_string
+ self._device_string = device_string
+
+ @classmethod
+ def FromDict(cls, attrs):
+ """Constructs a GPUDevice from a dictionary. Requires the
+ following attributes to be present in the dictionary:
+
+ vendor_id
+ device_id
+ vendor_string
+ device_string
+
+ Raises an exception if any attributes are missing.
+ """
+ required_attributes = ['vendor_id', 'device_id',
+ 'vendor_string', 'device_string']
+ for a in required_attributes:
+ if not a in attrs:
+ raise Exception('Missing required attribute "%s" in dictionary' % a)
+ return cls(attrs['vendor_id'], attrs['device_id'],
+ attrs['vendor_string'], attrs['device_string'])
+
+ @property
+ def vendor_id(self):
+ """The GPU vendor's PCI ID as a number, or 0 if not available.
+
+ Most desktop machines supply this information rather than the
+ vendor and device strings."""
+ return self._vendor_id
+
+ @property
+ def device_id(self):
+ """The GPU device's PCI ID as a number, or 0 if not available.
+
+ Most desktop machines supply this information rather than the
+ vendor and device strings."""
+ return self._device_id
+
+ @property
+ def vendor_string(self):
+ """The GPU vendor's name as a string, or the empty string if not
+ available.
+
+ Most mobile devices supply this information rather than the PCI
+ IDs."""
+ return self._vendor_string
+
+ @property
+ def device_string(self):
+ """The GPU device's name as a string, or the empty string if not
+ available.
+
+ Most mobile devices supply this information rather than the PCI
+ IDs."""
+ return self._device_string

Powered by Google App Engine
This is Rietveld 408576698