vtgl

terminal emulator implemented in OpenGL
git clone anongit@rnpnr.xyz:vtgl.git
Log | Files | Refs | Feed | LICENSE

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