PSP: improve performance counter res to us granularity

This commit is contained in:
rofl0r
2024-03-23 16:28:58 +00:00
committed by Sam Lantinga
parent fa18c9bf4a
commit 82b449611a
+5 -19
View File
@@ -30,35 +30,21 @@
#include <time.h> #include <time.h>
#include <sys/time.h> #include <sys/time.h>
#include <pspthreadman.h> #include <pspthreadman.h>
#include <psprtc.h>
static struct timeval start;
static SDL_bool ticks_started = SDL_FALSE;
void SDL_TicksInit(void) void SDL_TicksInit(void)
{ {
if (ticks_started) {
return;
}
ticks_started = SDL_TRUE;
gettimeofday(&start, NULL);
} }
void SDL_TicksQuit(void) void SDL_TicksQuit(void)
{ {
ticks_started = SDL_FALSE;
} }
Uint64 SDL_GetTicks64(void) Uint64 SDL_GetTicks64(void)
{ {
struct timeval now; Uint64 ticks;
sceRtcGetCurrentTick(&ticks);
if (!ticks_started) { return ticks;
SDL_TicksInit();
}
gettimeofday(&now, NULL);
return (Uint64)(((Sint64)(now.tv_sec - start.tv_sec) * 1000) + ((now.tv_usec - start.tv_usec) / 1000));
} }
Uint64 SDL_GetPerformanceCounter(void) Uint64 SDL_GetPerformanceCounter(void)
@@ -68,7 +54,7 @@ Uint64 SDL_GetPerformanceCounter(void)
Uint64 SDL_GetPerformanceFrequency(void) Uint64 SDL_GetPerformanceFrequency(void)
{ {
return 1000; return sceRtcGetTickResolution();
} }
void SDL_Delay(Uint32 ms) void SDL_Delay(Uint32 ms)