8#if PL_ENABLED(PL_PLATFORM_ARCH_X86)
10 bool Vendor_AMD =
false;
11 bool Vendor_Intel =
false;
16 bool OS_AVX512 =
false;
22 bool HW_RDRAND =
false;
23 bool HW_RDSEED =
false;
28 bool HW_PREFETCHW =
false;
29 bool HW_PREFETCHWT1 =
false;
30 bool HW_RDPID =
false;
36 bool HW_SSSE3 =
false;
37 bool HW_SSE41 =
false;
38 bool HW_SSE42 =
false;
39 bool HW_SSE4a =
false;
51 bool HW_AVX512_F =
false;
52 bool HW_AVX512_CD =
false;
55 bool HW_AVX512_PF =
false;
56 bool HW_AVX512_ER =
false;
59 bool HW_AVX512_VL =
false;
60 bool HW_AVX512_BW =
false;
61 bool HW_AVX512_DQ =
false;
64 bool HW_AVX512_IFMA =
false;
65 bool HW_AVX512_VBMI =
false;
68 bool HW_AVX512_VPOPCNTDQ =
false;
69 bool HW_AVX512_4FMAPS =
false;
70 bool HW_AVX512_4VNNIW =
false;
73 bool HW_AVX512_VNNI =
false;
76 bool HW_AVX512_BF16 =
false;
79 bool HW_AVX512_VBMI2 =
false;
82 bool HW_AVX512_VPCLMUL =
false;
83 bool HW_AVX512_BITALG =
false;
85 bool IsAvx1Available()
const {
return OS_AVX && HW_AVX; }
86 bool IsAvx2Available()
const {
return OS_AVX && HW_AVX2; }
103 plUInt64 GetAvailableMainMemory()
const;
112 float GetCPUUtilization()
const;
117 const char* GetPlatformName()
const {
return m_szPlatformName; }
119 const char* GetHostName()
const {
return m_sHostName; }
121 const char* GetBuildConfiguration()
const {
return m_szBuildConfiguration; }
128 static bool IsDebuggerAttached();
133 if (!s_SystemInformation.m_bIsInitialized)
136 return s_SystemInformation;
140 plUInt64 m_uiInstalledMainMemory;
141 plUInt32 m_uiMemoryPageSize;
142 plUInt32 m_uiCPUCoreCount;
143 const char* m_szPlatformName =
nullptr;
144 const char* m_szBuildConfiguration =
nullptr;
145 char m_sHostName[256];
147 bool m_bIsInitialized;
150 static void Initialize();
Flags that tell you which SIMD features are available on this processor / OS.
Definition SystemInformation.h:7
void Detect()
CPU feature detection code copied from https://github.com/Mysticial/FeatureDetector.
Definition SystemInformation.cpp:168