debug.h (867B)
1 #ifndef _DEBUG 2 #define ASSERT(c) do { (void)(c); } while(0) 3 #define DEBUG_EXPORT static 4 5 #define BEGIN_CYCLE_COUNT(a) 6 #define END_CYCLE_COUNT(a) 7 8 #else 9 10 #define ASSERT(c) do { if (!(c)) asm("int3; nop"); } while(0) 11 #define DEBUG_EXPORT 12 13 /* NOTE: Performance Counters */ 14 enum clock_counts { 15 CC_RENDER_FRAMEBUFFER, 16 CC_RENDER_GLYPH, 17 CC_BLIT_LINES, 18 CC_SPLIT_LINES, 19 CC_LAST 20 }; 21 22 static struct { 23 i64 cpu_cycles[CC_LAST]; 24 i64 total_cycles[CC_LAST]; 25 i64 hit_count[CC_LAST]; 26 } g_debug_clock_counts; 27 28 #define BEGIN_CYCLE_COUNT(cc_name) \ 29 g_debug_clock_counts.cpu_cycles[cc_name] = __rdtsc(); \ 30 g_debug_clock_counts.hit_count[cc_name]++ 31 32 #define END_CYCLE_COUNT(cc_name) \ 33 g_debug_clock_counts.cpu_cycles[cc_name] = __rdtsc() - g_debug_clock_counts.cpu_cycles[cc_name]; \ 34 g_debug_clock_counts.total_cycles[cc_name] += g_debug_clock_counts.cpu_cycles[cc_name] 35 36 #endif