| // Copyright 2019 The Dawn Authors |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| #ifndef COMMON_GPUINFO_H |
| #define COMMON_GPUINFO_H |
| |
| #include <array> |
| #include <cstdint> |
| |
| using PCIVendorID = uint32_t; |
| using PCIDeviceID = uint32_t; |
| |
| namespace gpu_info { |
| |
| static constexpr PCIVendorID kVendorID_AMD = 0x1002; |
| static constexpr PCIVendorID kVendorID_ARM = 0x13B5; |
| static constexpr PCIVendorID kVendorID_ImgTec = 0x1010; |
| static constexpr PCIVendorID kVendorID_Intel = 0x8086; |
| static constexpr PCIVendorID kVendorID_Nvidia = 0x10DE; |
| static constexpr PCIVendorID kVendorID_Qualcomm = 0x5143; |
| static constexpr PCIVendorID kVendorID_Google = 0x1AE0; |
| static constexpr PCIVendorID kVendorID_Microsoft = 0x1414; |
| |
| static constexpr PCIDeviceID kDeviceID_Swiftshader = 0xC0DE; |
| static constexpr PCIDeviceID kDeviceID_WARP = 0x8c; |
| |
| bool IsAMD(PCIVendorID vendorId); |
| bool IsARM(PCIVendorID vendorId); |
| bool IsImgTec(PCIVendorID vendorId); |
| bool IsIntel(PCIVendorID vendorId); |
| bool IsNvidia(PCIVendorID vendorId); |
| bool IsQualcomm(PCIVendorID vendorId); |
| bool IsSwiftshader(PCIVendorID vendorId, PCIDeviceID deviceId); |
| bool IsWARP(PCIVendorID vendorId, PCIDeviceID deviceId); |
| |
| using D3DDriverVersion = std::array<uint16_t, 4>; |
| |
| // Do comparison between two driver versions. Currently we only support the comparison between |
| // Intel D3D driver versions. |
| // - Return -1 if build number of version1 is smaller |
| // - Return 1 if build number of version1 is bigger |
| // - Return 0 if version1 and version2 represent same driver version |
| int CompareD3DDriverVersion(PCIVendorID vendorId, |
| const D3DDriverVersion& version1, |
| const D3DDriverVersion& version2); |
| |
| // Intel architectures |
| bool IsSkylake(PCIDeviceID deviceId); |
| bool IsKabylake(PCIDeviceID deviceId); |
| bool IsCoffeelake(PCIDeviceID deviceId); |
| |
| } // namespace gpu_info |
| #endif // COMMON_GPUINFO_H |