This commit is contained in:
Rachael Alexanderson 2017-01-31 23:04:56 -05:00
commit 4e45ea2300
19 changed files with 107 additions and 123 deletions

View file

@ -40,6 +40,8 @@
#include <intrin.h>
#define USE_WINDOWS_DWORD
#elif defined __APPLE__
#include <sys/sysctl.h>
#endif
#include "i_system.h"
@ -114,6 +116,15 @@ void gl_CalculateCPUSpeed ()
gl_SecondsPerCycle = 1.0 / CyclesPerSecond;
gl_MillisecPerCycle = 1000.0 / CyclesPerSecond;
}
#elif defined __APPLE__
long long frequency;
size_t size = sizeof frequency;
if (0 == sysctlbyname("machdep.tsc.frequency", &frequency, &size, nullptr, 0) && 0 != frequency)
{
gl_SecondsPerCycle = 1.0 / frequency;
gl_MillisecPerCycle = 1000.0 / frequency;
}
#endif
}

View file

@ -7,11 +7,11 @@
extern bool gl_benching;
#ifdef _MSC_VER
extern double gl_SecondsPerCycle;
extern double gl_MillisecPerCycle;
#ifdef _MSC_VER
__forceinline long long GetClockCycle ()
{
#if _M_X64
@ -21,10 +21,14 @@ __forceinline long long GetClockCycle ()
#endif
}
#elif defined(__GNUG__) && defined(__i386__)
#elif defined __APPLE__ && (defined __i386__ || defined __x86_64__)
extern double gl_SecondsPerCycle;
extern double gl_MillisecPerCycle;
inline long long GetClockCycle()
{
return __builtin_ia32_rdtsc();
}
#elif defined(__GNUG__) && defined(__i386__)
inline long long GetClockCycle()
{
@ -42,21 +46,12 @@ inline long long GetClockCycle()
#else
extern double gl_SecondsPerCycle;
extern double gl_MillisecPerCycle;
inline long long GetClockCycle ()
{
return 0;
}
#endif
#if defined (__APPLE__)
typedef cycle_t glcycle_t;
#else // !__APPLE__
class glcycle_t
{
public:
@ -100,8 +95,6 @@ private:
long long Counter;
};
#endif // __APPLE__
extern glcycle_t RenderWall,SetupWall,ClipWall;
extern glcycle_t RenderFlat,SetupFlat;
extern glcycle_t RenderSprite,SetupSprite;
@ -122,4 +115,4 @@ void CheckBench();
void checkBenchActive();
#endif
#endif