diff options
author | Tobias Hunger <tobias.hunger@qt.io> | 2019-04-16 16:32:08 +0200 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@qt.io> | 2019-04-16 16:32:08 +0200 |
commit | 6630937e63ae5797487b86743a7733c8ae5cc42c (patch) | |
tree | 3d53dacf6430f9099e1fb20835881205de674961 /src/3rdparty/angle/src/gpu_info_util/SystemInfo.h | |
parent | 37ed6dae00640f9cc980ffda05347c12a7eb5d7e (diff) | |
parent | c7af193d2e49e9f10b86262e63d8d13abf72b5cf (diff) |
Merge commit 'dev' into 'wip/cmake-merge'
Change-Id: I176c40d031be26a1dd1cf08843e448a660598783
Diffstat (limited to 'src/3rdparty/angle/src/gpu_info_util/SystemInfo.h')
-rw-r--r-- | src/3rdparty/angle/src/gpu_info_util/SystemInfo.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/src/3rdparty/angle/src/gpu_info_util/SystemInfo.h b/src/3rdparty/angle/src/gpu_info_util/SystemInfo.h new file mode 100644 index 0000000000..ada43f0a15 --- /dev/null +++ b/src/3rdparty/angle/src/gpu_info_util/SystemInfo.h @@ -0,0 +1,73 @@ +// +// Copyright (c) 2013-2017 The ANGLE Project Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +// + +// SystemInfo.h: gathers information available without starting a GPU driver. + +#ifndef GPU_INFO_UTIL_SYSTEM_INFO_H_ +#define GPU_INFO_UTIL_SYSTEM_INFO_H_ + +#include <cstdint> +#include <string> +#include <vector> + +namespace angle +{ + +using VendorID = uint32_t; +using DeviceID = uint32_t; + +constexpr VendorID kVendorID_AMD = 0x1002; +constexpr VendorID kVendorID_Intel = 0x8086; +constexpr VendorID kVendorID_Nvidia = 0x10DE; +constexpr VendorID kVendorID_Qualcomm = 0x5143; + +struct GPUDeviceInfo +{ + GPUDeviceInfo(); + ~GPUDeviceInfo(); + + GPUDeviceInfo(const GPUDeviceInfo &other); + + VendorID vendorId = 0; + DeviceID deviceId = 0; + + std::string driverVendor; + std::string driverVersion; + std::string driverDate; +}; + +struct SystemInfo +{ + SystemInfo(); + ~SystemInfo(); + + SystemInfo(const SystemInfo &other); + + std::vector<GPUDeviceInfo> gpus; + int primaryGPUIndex = -1; + int activeGPUIndex = -1; + + bool isOptimus = false; + bool isAMDSwitchable = false; + + // Only available on macOS + std::string machineModelName; + std::string machineModelVersion; + + // Only available on Windows, set even on failure. + std::string primaryDisplayDeviceId; +}; + +bool GetSystemInfo(SystemInfo *info); + +bool IsAMD(VendorID vendorId); +bool IsIntel(VendorID vendorId); +bool IsNvidia(VendorID vendorId); +bool IsQualcomm(VendorID vendorId); + +} // namespace angle + +#endif // GPU_INFO_UTIL_SYSTEM_INFO_H_ |