#ifndef GPU_INFO_UTIL_SYSTEM_INFO_H_
#define GPU_INFO_UTIL_SYSTEM_INFO_H_
#include <cstdint>
#include <optional>
#include <string>
#include <vector>
namespace angle
{
VendorID;
DeviceID;
RevisionID;
SystemDeviceID;
DriverID;
struct VersionInfo
{ … };
struct GPUDeviceInfo
{ … };
struct SystemInfo
{ … };
bool GetSystemInfo(SystemInfo *info);
bool GetSystemInfoVulkan(SystemInfo *info);
constexpr VendorID kVendorID_AMD = …;
constexpr VendorID kVendorID_ARM = …;
constexpr VendorID kVendorID_Broadcom = …;
constexpr VendorID kVendorID_GOOGLE = …;
constexpr VendorID kVendorID_ImgTec = …;
constexpr VendorID kVendorID_Intel = …;
constexpr VendorID kVendorID_NVIDIA = …;
constexpr VendorID kVendorID_Qualcomm = …;
constexpr VendorID kVendorID_Samsung = …;
constexpr VendorID kVendorID_VMWare = …;
constexpr VendorID kVendorID_Apple = …;
constexpr VendorID kVendorID_Microsoft = …;
constexpr VendorID kVendorID_VirtIO = …;
constexpr VendorID kVendorID_Vivante = …;
constexpr VendorID kVendorID_VeriSilicon = …;
constexpr VendorID kVendorID_Kazan = …;
constexpr VendorID kVendorID_CodePlay = …;
constexpr VendorID kVendorID_Mesa = …;
constexpr VendorID kVendorID_PoCL = …;
constexpr DeviceID kDeviceID_Swiftshader = …;
constexpr DeviceID kDeviceID_Adreno540 = …;
constexpr DeviceID kDeviceID_Adreno750 = …;
constexpr DeviceID kDeviceID_UHD630Mobile = …;
bool IsAMD(VendorID vendorId);
bool IsARM(VendorID vendorId);
bool IsBroadcom(VendorID vendorId);
bool IsImgTec(VendorID vendorId);
bool IsIntel(VendorID vendorId);
bool IsKazan(VendorID vendorId);
bool IsNVIDIA(VendorID vendorId);
bool IsQualcomm(VendorID vendorId);
bool IsSamsung(VendorID vendorId);
bool IsGoogle(VendorID vendorId);
bool IsSwiftshader(VendorID vendorId);
bool IsVeriSilicon(VendorID vendorId);
bool IsVMWare(VendorID vendorId);
bool IsVirtIO(VendorID vendorId);
bool IsVivante(VendorID vendorId);
bool IsAppleGPU(VendorID vendorId);
bool IsMicrosoft(VendorID vendorId);
std::string VendorName(VendorID vendor);
void GetDualGPUInfo(SystemInfo *info);
void PrintSystemInfo(const SystemInfo &info);
VersionInfo ParseNvidiaDriverVersion(uint32_t version);
VersionInfo ParseMesaDriverVersion(uint32_t version);
uint64_t GetSystemDeviceIdFromParts(uint32_t highPart, uint32_t lowPart);
uint32_t GetSystemDeviceIdHighPart(uint64_t systemDeviceId);
uint32_t GetSystemDeviceIdLowPart(uint64_t systemDeviceId);
std::string GetPreferredDeviceString();
}
#endif