gpu_device.py revision 3551c9c881056c480085172ff9840cab31610854
1# Copyright 2013 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5class GPUDevice(object): 6 """Provides information about an individual GPU device. 7 8 On platforms which support them, the vendor_id and device_id are 9 PCI IDs. On other platforms, the vendor_string and device_string 10 are platform-dependent strings. 11 """ 12 13 def __init__(self, vendor_id, device_id, vendor_string, device_string): 14 self._vendor_id = vendor_id 15 self._device_id = device_id 16 self._vendor_string = vendor_string 17 self._device_string = device_string 18 19 @classmethod 20 def FromDict(cls, attrs): 21 """Constructs a GPUDevice from a dictionary. Requires the 22 following attributes to be present in the dictionary: 23 24 vendor_id 25 device_id 26 vendor_string 27 device_string 28 29 Raises an exception if any attributes are missing. 30 """ 31 return cls(attrs["vendor_id"], attrs["device_id"], 32 attrs["vendor_string"], attrs["device_string"]) 33 34 @property 35 def vendor_id(self): 36 """The GPU vendor's PCI ID as a number, or 0 if not available. 37 38 Most desktop machines supply this information rather than the 39 vendor and device strings.""" 40 return self._vendor_id 41 42 @property 43 def device_id(self): 44 """The GPU device's PCI ID as a number, or 0 if not available. 45 46 Most desktop machines supply this information rather than the 47 vendor and device strings.""" 48 return self._device_id 49 50 @property 51 def vendor_string(self): 52 """The GPU vendor's name as a string, or the empty string if not 53 available. 54 55 Most mobile devices supply this information rather than the PCI 56 IDs.""" 57 return self._vendor_string 58 59 @property 60 def device_string(self): 61 """The GPU device's name as a string, or the empty string if not 62 available. 63 64 Most mobile devices supply this information rather than the PCI 65 IDs.""" 66 return self._device_string 67