aboutsummaryrefslogtreecommitdiff
path: root/frontend/pcnt.h
diff options
context:
space:
mode:
authornotaz2012-11-30 02:51:45 +0200
committernotaz2012-12-02 02:37:10 +0200
commitda710571b75db7031b82924ab3ad47eb645ce215 (patch)
tree91c3c707a6133fa371dae5a9c60a121d18ab55a5 /frontend/pcnt.h
parentc02c3b656781a406fc4f586ac0923529de186916 (diff)
downloadpcsx_rearmed-da710571b75db7031b82924ab3ad47eb645ce215.tar.gz
pcsx_rearmed-da710571b75db7031b82924ab3ad47eb645ce215.tar.bz2
pcsx_rearmed-da710571b75db7031b82924ab3ad47eb645ce215.zip
mave plugin and core shared includes to single location
Diffstat (limited to 'frontend/pcnt.h')
-rw-r--r--frontend/pcnt.h132
1 files changed, 0 insertions, 132 deletions
diff --git a/frontend/pcnt.h b/frontend/pcnt.h
deleted file mode 100644
index 9ddd500..0000000
--- a/frontend/pcnt.h
+++ /dev/null
@@ -1,132 +0,0 @@
-
-enum pcounters {
- PCNT_ALL,
- PCNT_GPU,
- PCNT_SPU,
- PCNT_BLIT,
- PCNT_GTE,
- PCNT_TEST,
- PCNT_CNT
-};
-
-#ifdef PCNT
-
-#if defined(__ARM_ARCH_7A__) || defined(ARM1176)
-#define PCNT_DIV 1000
-#else
-#include <sys/time.h>
-#define PCNT_DIV 1
-#endif
-
-static const char *pcnt_names[PCNT_CNT] = { "", "gpu", "spu", "blit", "gte", "test" };
-
-#define PCNT_FRAMES 10
-
-extern unsigned int pcounters[PCNT_CNT];
-extern unsigned int pcounter_starts[PCNT_CNT];
-
-#define pcnt_start(id) \
- pcounter_starts[id] = pcnt_get()
-
-#define pcnt_end(id) \
- pcounters[id] += pcnt_get() - pcounter_starts[id]
-
-void pcnt_hook_plugins(void);
-
-static inline void pcnt_print(float fps)
-{
- static int print_counter;
- unsigned int total, rem;
- int i;
-
- for (i = 0; i < PCNT_CNT; i++)
- pcounters[i] /= PCNT_DIV * PCNT_FRAMES;
-
- rem = total = pcounters[PCNT_ALL];
- for (i = 1; i < PCNT_CNT; i++)
- rem -= pcounters[i];
- if (!total)
- total++;
-
- if (--print_counter < 0) {
- printf(" ");
- for (i = 1; i < PCNT_CNT; i++)
- printf("%5s ", pcnt_names[i]);
- printf("%5s\n", "rem");
- print_counter = 30;
- }
-
- printf("%4.1f ", fps);
-#if 0
- static float pcounters_all[PCNT_CNT+1];
- static int pcounter_samples;
- pcounter_samples++;
-
- for (i = 1; i < PCNT_CNT; i++) {
- pcounters_all[i] += pcounters[i];
- printf("%5.0f ", pcounters_all[i] / pcounter_samples);
- }
- pcounters_all[i] += rem;
- printf("%5.0f\n", pcounters_all[i] / pcounter_samples);
-#else
- for (i = 1; i < PCNT_CNT; i++)
- printf("%5u ", pcounters[i]);
- printf("%5u (", rem);
- for (i = 1; i < PCNT_CNT; i++)
- printf("%2u ", pcounters[i] * 100 / total);
- printf("%2u) %u\n", rem * 100 / total, total);
-#endif
- memset(pcounters, 0, sizeof(pcounters));
-}
-
-static inline unsigned int pcnt_get(void)
-{
- unsigned int val;
-#ifdef __ARM_ARCH_7A__
- __asm__ volatile("mrc p15, 0, %0, c9, c13, 0"
- : "=r"(val));
-#elif defined(ARM1176)
- __asm__ volatile("mrc p15, 0, %0, c15, c12, 1"
- : "=r"(val));
-#else
- // all slow on ARM :(
- //struct timespec tv;
- //clock_gettime(CLOCK_MONOTONIC_RAW, &tv);
- //val = tv.tv_sec * 1000000000 + tv.tv_nsec;
- struct timeval tv;
- gettimeofday(&tv, NULL);
- val = tv.tv_sec * 1000000 + tv.tv_usec;
-#endif
- return val;
-}
-
-static inline void pcnt_init(void)
-{
-#ifdef __ARM_ARCH_7A__
- int v;
- asm volatile("mrc p15, 0, %0, c9, c12, 0" : "=r"(v));
- v |= 5; // master enable, ccnt reset
- v &= ~8; // ccnt divider 0
- asm volatile("mcr p15, 0, %0, c9, c12, 0" :: "r"(v));
- // enable cycle counter
- asm volatile("mcr p15, 0, %0, c9, c12, 1" :: "r"(1<<31));
-#elif defined(ARM1176)
- int v;
- asm volatile("mrc p15, 0, %0, c15, c12, 0" : "=r"(v));
- v |= 5; // master enable, ccnt reset
- v &= ~8; // ccnt divider 0
- asm volatile("mcr p15, 0, %0, c15, c12, 0" :: "r"(v));
-#endif
-}
-
-void pcnt_gte_start(int op);
-void pcnt_gte_end(int op);
-
-#else
-
-#define pcnt_start(id)
-#define pcnt_end(id)
-#define pcnt_hook_plugins()
-#define pcnt_print(fps)
-
-#endif