diff --git a/public/tier0/platform.h b/public/tier0/platform.h index 926be167..e9f5af37 100644 --- a/public/tier0/platform.h +++ b/public/tier0/platform.h @@ -860,10 +860,13 @@ PLATFORM_INTERFACE uint32_t Plat_MSTime(); // Time in milliseconds. // Processor Information: -struct CPUInformation +struct CPUInformation // Size: Win32=64, Win64=72 { int m_Size; // Size of this structure, for forward compatability. + uint8 m_nLogicalProcessors; // Number op logical processors. + uint8 m_nPhysicalProcessors; // Number of physical processors + bool m_bRDTSC : 1, // Is RDTSC supported? m_bCMOV : 1, // Is CMOV supported? m_bFCMOV : 1, // Is FCMOV supported? @@ -873,12 +876,29 @@ struct CPUInformation m_bMMX : 1, // Is MMX supported? m_bHT : 1; // Is HyperThreading supported? - uint8 m_nLogicalProcessors; // Number op logical processors. - uint8 m_nPhysicalProcessors; // Number of physical processors + + bool m_bSSE3 : 1, + m_bSSSE3 : 1, + m_bSSE4a : 1, + m_bSSE41 : 1, + m_bSSE42 : 1, + m_bAVX : 1; int64 m_Speed; // In cycles per second. tchar* m_szProcessorID; // Processor vendor Identification. + tchar* m_szProcessorBrand; + + uint32 m_nModel; + uint32 m_nFeatures[ 3 ]; + uint32 m_nL1CacheSizeKb; + uint32 m_nL1CacheDesc; + uint32 m_nL2CacheSizeKb; + uint32 m_nL2CacheDesc; + uint32 m_nL3CacheSizeKb; + uint32 m_nL3CacheDesc; + + CPUInformation(): m_Size(0){} }; #ifdef __clang__ @@ -889,9 +909,6 @@ struct CPUInformation PLATFORM_INTERFACE const CPUInformation& GetCPUInformation(); -#ifdef __clang__ -#pragma clang diagnostic pop -#endif PLATFORM_INTERFACE void GetCurrentDate( int *pDay, int *pMonth, int *pYear );