diff options
author | notaz | 2012-01-19 01:33:12 +0200 |
---|---|---|
committer | notaz | 2012-01-19 01:38:45 +0200 |
commit | 62d7fa9555924ab8e152b546711d27add640b102 (patch) | |
tree | 28c231a8f642d28d357bbdce9edb2b79e199764e /plugins/gpu_neon/test.c | |
parent | 5d834c089ea695dba7643cba8686ce2ac06d8db4 (diff) | |
download | pcsx_rearmed-62d7fa9555924ab8e152b546711d27add640b102.tar.gz pcsx_rearmed-62d7fa9555924ab8e152b546711d27add640b102.tar.bz2 pcsx_rearmed-62d7fa9555924ab8e152b546711d27add640b102.zip |
refactor gpu plugins and Makefiles
name common gpu code gpulib, reduce amount of copy-paste
in plugin Makefiles
Diffstat (limited to 'plugins/gpu_neon/test.c')
-rw-r--r-- | plugins/gpu_neon/test.c | 109 |
1 files changed, 0 insertions, 109 deletions
diff --git a/plugins/gpu_neon/test.c b/plugins/gpu_neon/test.c deleted file mode 100644 index e523e20..0000000 --- a/plugins/gpu_neon/test.c +++ /dev/null @@ -1,109 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include "gpu.h" - -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)); -#else - val = 0; -#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)); -#endif -} - -const unsigned char cmd_lengths[256] = -{ - 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 3, 3, 3, 6, 6, 6, 6, 4, 4, 4, 4, 8, 8, 8, 8, // 20 - 5, 5, 5, 5, 8, 8, 8, 8, 7, 7, 7, 7, 11, 11, 11, 11, - 2, 2, 2, 2, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, // 40 - 3, 3, 3, 3, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, - 2, 2, 2, 2, 3, 3, 3, 3, 1, 1, 1, 1, 2, 2, 2, 2, // 60 - 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 80 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // a0 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // c0 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // e0 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - -struct psx_gpu gpu __attribute__((aligned(64))); - -typedef struct -{ - uint16_t vram[1024 * 512]; - uint32_t gpu_register[15]; - uint32_t status; -} gpu_dump_struct; - -static gpu_dump_struct state; - -int main(int argc, char *argv[]) -{ - unsigned int start_cycles; - uint32_t *list; - int size; - FILE *state_file; - FILE *list_file; - FILE *out_file; - - if (argc != 3 && argc != 4) - { - printf("usage:\n%s <state> <list> [vram_out]\n", argv[0]); - return 1; - } - - state_file = fopen(argv[1], "rb"); - fread(&state, 1, sizeof(gpu_dump_struct), state_file); - fclose(state_file); - - list_file = fopen(argv[2], "rb"); - fseek(list_file, 0, SEEK_END); - size = ftell(list_file); - fseek(list_file, 0, SEEK_SET); - - list = (uint32_t *)malloc(size); - fread(list, 1, size, list_file); - fclose(list_file); - - pcnt_init(); - renderer_init(); - memcpy(gpu.vram, state.vram, sizeof(gpu.vram)); - if ((state.gpu_register[8] & 0x24) == 0x24) - renderer_set_interlace(1, !(state.status >> 31)); - - start_cycles = pcnt_get(); - - do_cmd_list(list, size / 4); - renderer_flush_queues(); - - printf("%u\n", pcnt_get() - start_cycles); - - if (argc >= 4) { - out_file = fopen(argv[3], "wb"); - fwrite(gpu.vram, 1, sizeof(gpu.vram), out_file); - fclose(out_file); - } - - return 0; -} |