{
const char *name;
- float samples[ VG_PROFILE_SAMPLE_COUNT ];
- u32 buffer_count, buffer_current;
+ u64 samples[ VG_PROFILE_SAMPLE_COUNT ];
+ u32 buffer_count, buffer_current;
enum profile_mode
{
if( profile->buffer_current >= VG_PROFILE_SAMPLE_COUNT )
profile->buffer_current = 0;
- profile->samples[ profile->buffer_current ] = 0.0f;
+ profile->samples[ profile->buffer_current ] = 0;
}
VG_STATIC void vg_profile_end( struct vg_profile *profile )
if( profile->mode == k_profile_mode_frame )
{
- profile->samples[ profile->buffer_current ] = (float)delta;
+ profile->samples[ profile->buffer_current ] = delta;
vg_profile_increment( profile );
}
else
}
}
-VG_STATIC void vg_profile_graph_sample( struct vg_profile *profile, float s )
-{
- profile->samples[ profile->buffer_current ] = s;
- vg_profile_increment( profile );
-}
-
VG_STATIC void vg_profile_drawn( struct vg_profile **profiles, u32 count,
float budget, ui_rect panel, u32 colour_offset )
{
ui_fill_rect( panel, 0xa0000000 );
assert( count <= 8 );
- float avgs[8];
- int ptrs[8];
+ double avgs[8];
+ int ptrs[8];
for( int i=0; i<count; i++ )
{
u32 colours[] = { 0xff0000ff, 0xff00ff00, 0xff00ffff, 0xffff0000,
0xffff00ff, 0xffffff00 };
- float rate_mul = 1000.0f / (float)SDL_GetPerformanceFrequency();
+ double rate_mul = 1000.0 / (double)SDL_GetPerformanceFrequency();
for( int i=0; i<VG_PROFILE_SAMPLE_COUNT-1; i++ )
{
- float total = 0.0f;
+ double total = 0.0;
for( int j=0; j<count; j++ )
{
if( ptrs[j] < 0 )
ptrs[j] = VG_PROFILE_SAMPLE_COUNT-1;
- float sample = profiles[j]->samples[ptrs[j]] * rate_mul,
- px = (total / (budget)) * sw,
- wx = (sample / (budget)) * sw;
+ double sample = (double)profiles[j]->samples[ptrs[j]] * rate_mul,
+ px = (total / (budget)) * sw,
+ wx = (sample / (budget)) * sw;
ui_rect block = { panel[0] + px, panel[1] + (float)i*sh,
wx, sh };
char infbuf[64];
+ snprintf( infbuf, 64, "accuracy: %.7fms", rate_mul );
+ ui_text( (ui_rect){ panel[0] + 4,
+ panel[1] + 0 * 14, 0, 0 },
+ infbuf,
+ 1,
+ k_text_align_left );
+
for( int i=0; i<count; i++ )
{
snprintf( infbuf, 64, "%.4fms %s",