📄 metrics.c
字号:
if(gc->asTimes[GLES_TIMER_TRILIST_TIME].ui32Count) {DPFMETRIC((" Core Triangles %10d/%10.4f", gc->asTimes[GLES_TIMER_TRILIST_TIME].ui32Count/ui32Frames, gc->asTimes[GLES_TIMER_TRILIST_TIME].ui32Total * gc->fCPUSpeed/ui32Frames));}
if(gc->asTimes[GLES_TIMER_TRISTRIP_TIME].ui32Count) {DPFMETRIC((" Core Strips %10d/%10.4f", gc->asTimes[GLES_TIMER_TRISTRIP_TIME].ui32Count/ui32Frames, gc->asTimes[GLES_TIMER_TRISTRIP_TIME].ui32Total * gc->fCPUSpeed/ui32Frames));}
if(gc->asTimes[GLES_TIMER_TRIFAN_TIME].ui32Count) {DPFMETRIC((" Core Fans %10d/%10.4f", gc->asTimes[GLES_TIMER_TRIFAN_TIME].ui32Count/ui32Frames, gc->asTimes[GLES_TIMER_TRIFAN_TIME].ui32Total * gc->fCPUSpeed/ui32Frames));}
DPFMETRIC(("\n"));
DPFMETRIC((" State Statistics [ kB/kB per Frame ]"));
if (gc->asTimes[GLES_TIMER_TOTAL_STATE_COUNT].ui32Count)
{
IMG_FLOAT fkB;
fkB = (IMG_FLOAT)gc->asTimes[GLES_TIMER_TOTAL_STATE_COUNT].ui32Total;
fkB /= 1024.0f;
DPFMETRIC((" Total State %10.4f/%10.4f", fkB, fkB/ui32Frames ));
}
#if (defined(SUPPORT_VGP) || defined(SUPPORT_VGP_LITE)) && !defined(PASSTHROUGH_BUILD)
if (gc->asTimes[GLES_TIMER_VGP_CONSTANTS_COUNT].ui32Count)
{
IMG_FLOAT fkB;
fkB = (IMG_FLOAT)gc->asTimes[GLES_TIMER_VGP_CONSTANTS_COUNT].ui32Total;
fkB /= 1024.0f;
DPFMETRIC((" VGP constants %10.4f/%10.4f", fkB, fkB/ui32Frames ));
}
if (gc->asTimes[GLES_TIMER_VGP_CODE_COUNT].ui32Count)
{
IMG_FLOAT fkB;
fkB = (IMG_FLOAT)gc->asTimes[GLES_TIMER_VGP_CODE_COUNT].ui32Total;
fkB /= 1024.0f;
DPFMETRIC((" VGP code %10.4f/%10.4f", fkB, fkB/ui32Frames ));
}
if (gc->asTimes[GLES_TIMER_VGP_SECTIONS_COUNT].ui32Count)
{
IMG_FLOAT fkB;
fkB = (IMG_FLOAT)gc->asTimes[GLES_TIMER_VGP_SECTIONS_COUNT].ui32Total;
fkB /= 1024.0f;
DPFMETRIC((" VGP sections %10.4f/%10.4f", fkB, fkB/ui32Frames ));
}
DPFMETRIC((""));
#endif
if (gc->asTimes[GLES_TIMER_TOTAL_SLAVEPORT_COPY_TIME].ui32Count)
{
fSlavePortSeconds = (IMG_FLOAT)gc->asTimes[GLES_TIMER_TOTAL_SLAVEPORT_COPY_TIME].ui32Total;
fSlavePortSeconds *= (gc->fCPUSpeed/1000.0f);
fSlavePortMB = (IMG_FLOAT)gc->asTimes[GLES_TIMER_TOTAL_SLAVEPORT_COPY_COUNT].ui32Total;
fSlavePortMB /= (1024.0f*1024.0f);
if(fSlavePortSeconds)
DPFMETRIC((" Slaveport writes - Total MB and MB/s %10.2f/%10.2f", fSlavePortMB, fSlavePortMB/fSlavePortSeconds ));
}
DPFMETRIC((""));
if(gc->asTimes[GLES_TIMER_TEXIMAGE_TIME].ui32Total)
{
fLoadCall = gc->asTimes[GLES_TIMER_TEXIMAGE_TIME].ui32Total*gc->fCPUSpeed/
gc->asTimes[GLES_TIMER_TEXIMAGE_TIME].ui32Count;
fLoadFrame = gc->asTimes[GLES_TIMER_TEXIMAGE_TIME].ui32Total*gc->fCPUSpeed/ui32Frames;
fLoadRate = gc->asTimes[GLES_TIMER_TEXIMAGE_TIME].fStack/
(gc->asTimes[GLES_TIMER_TEXIMAGE_TIME].ui32Total*gc->fCPUSpeed);
DPFMETRIC((" Average TexImage Load MPixels/s %10.4f", fLoadRate));
}
if(gc->asTimes[GLES_TIMER_TEXSUBIMAGE_TIME].ui32Total)
{
fSubLoadCall = gc->asTimes[GLES_TIMER_TEXSUBIMAGE_TIME].ui32Total*gc->fCPUSpeed/
gc->asTimes[GLES_TIMER_TEXSUBIMAGE_TIME].ui32Count;
fSubLoadFrame = gc->asTimes[GLES_TIMER_TEXSUBIMAGE_TIME].ui32Total*gc->fCPUSpeed/ui32Frames;
fSubLoadRate = gc->asTimes[GLES_TIMER_TEXSUBIMAGE_TIME].fStack/
(gc->asTimes[GLES_TIMER_TEXSUBIMAGE_TIME].ui32Total*gc->fCPUSpeed);
DPFMETRIC((" Average TexSubImage Load MPixels/s %10.4f", fSubLoadRate));
}
if(gc->asTimes[GLES_TIMER_COMPRESSTEXIMAGE_TIME].ui32Total)
{
fCompLoadCall = gc->asTimes[GLES_TIMER_COMPRESSTEXIMAGE_TIME].ui32Total*gc->fCPUSpeed/
gc->asTimes[GLES_TIMER_COMPRESSTEXIMAGE_TIME].ui32Count;
fCompLoadFrame = gc->asTimes[GLES_TIMER_COMPRESSTEXIMAGE_TIME].ui32Total*gc->fCPUSpeed/ui32Frames;
fCompLoadRate = gc->asTimes[GLES_TIMER_COMPRESSTEXIMAGE_TIME].fStack/
(gc->asTimes[GLES_TIMER_COMPRESSTEXIMAGE_TIME].ui32Total*gc->fCPUSpeed);
DPFMETRIC((" Average Compress Load MPixels/s %10.4f", fCompLoadRate));
}
if(gc->asTimes[GLES_TIMER_COMPRESSTEXSUBIMAGE_TIME].ui32Total)
{
fCompSubLoadCall = gc->asTimes[GLES_TIMER_COMPRESSTEXSUBIMAGE_TIME].ui32Total*gc->fCPUSpeed/
gc->asTimes[GLES_TIMER_COMPRESSTEXSUBIMAGE_TIME].ui32Count;
fCompSubLoadFrame = gc->asTimes[GLES_TIMER_COMPRESSTEXSUBIMAGE_TIME].ui32Total*gc->fCPUSpeed/ui32Frames;
fCompSubLoadRate = gc->asTimes[GLES_TIMER_COMPRESSTEXSUBIMAGE_TIME].fStack/
(gc->asTimes[GLES_TIMER_COMPRESSTEXSUBIMAGE_TIME].ui32Total*gc->fCPUSpeed);
DPFMETRIC((" Average Compress Sub Load MPixels/s %10.4f", fCompSubLoadRate));
}
if(gc->asTimes[GLES_TIMER_COPYTEXIMAGE_TIME].ui32Total)
{
fCopyImgCall = gc->asTimes[GLES_TIMER_COPYTEXIMAGE_TIME].ui32Total*gc->fCPUSpeed/
gc->asTimes[GLES_TIMER_COPYTEXIMAGE_TIME].ui32Count;
fCopyImgFrame = gc->asTimes[GLES_TIMER_COPYTEXIMAGE_TIME].ui32Total*gc->fCPUSpeed/ui32Frames;
}
if(gc->asTimes[GLES_TIMER_TEXTURE_ALLOCATE_TIME].ui32Total)
{
fTexAllocateCall = gc->asTimes[GLES_TIMER_TEXTURE_ALLOCATE_TIME].ui32Total*gc->fCPUSpeed/
gc->asTimes[GLES_TIMER_TEXTURE_ALLOCATE_TIME].ui32Count;
fTexAllocateFrame = gc->asTimes[GLES_TIMER_TEXTURE_ALLOCATE_TIME].ui32Total*gc->fCPUSpeed/ui32Frames;
}
if(gc->asTimes[GLES_TIMER_TEXTURE_TRANSLATE_LOAD_TIME].ui32Total)
{
fTexTranslateCall = gc->asTimes[GLES_TIMER_TEXTURE_TRANSLATE_LOAD_TIME].ui32Total*gc->fCPUSpeed/
gc->asTimes[GLES_TIMER_TEXTURE_TRANSLATE_LOAD_TIME].ui32Count;
fTexTranslateFrame = gc->asTimes[GLES_TIMER_TEXTURE_TRANSLATE_LOAD_TIME].ui32Total*gc->fCPUSpeed/ui32Frames;
fTexTranslateRate = gc->asTimes[GLES_TIMER_TEXTURE_TRANSLATE_LOAD_TIME].fStack/
(gc->asTimes[GLES_TIMER_TEXTURE_TRANSLATE_LOAD_TIME].ui32Total*gc->fCPUSpeed);
}
if(gc->asTimes[GLES_TIMER_TEXTURE_GHOST_LOAD_TIME].ui32Total)
{
fTexLoadGhostCall = gc->asTimes[GLES_TIMER_TEXTURE_GHOST_LOAD_TIME].ui32Total*gc->fCPUSpeed/
gc->asTimes[GLES_TIMER_TEXTURE_GHOST_LOAD_TIME].ui32Count;
fTexLoadGhostFrame = gc->asTimes[GLES_TIMER_TEXTURE_GHOST_LOAD_TIME].ui32Total*gc->fCPUSpeed/ui32Frames;
}
if(gc->asTimes[GLES_TIMER_TEXTURE_READBACK_TIME].ui32Total)
{
fTexReadbackCall = gc->asTimes[GLES_TIMER_TEXTURE_READBACK_TIME].ui32Total*gc->fCPUSpeed/
gc->asTimes[GLES_TIMER_TEXTURE_READBACK_TIME].ui32Count;
fTexReadbackFrame = gc->asTimes[GLES_TIMER_TEXTURE_READBACK_TIME].ui32Total*gc->fCPUSpeed/ui32Frames;
}
DPFMETRIC((" Texture Statistics [ Calls/perCall-Time|Pixels / perFrame-Time/Pixels ]"));
DPFMETRIC((" TexImage %7d/%12.4f/%8.0f/%14.4f/%8.2f",
gc->asTimes[GLES_TIMER_TEXIMAGE_TIME].ui32Count,
fLoadCall, GLES_PIXELS_PER_CALL(GLES_TIMER_TEXIMAGE_TIME),
fLoadFrame, GLES_PIXELS_PER_FRAME(GLES_TIMER_TEXIMAGE_TIME)));
DPFMETRIC((" TexSubImage %7d/%12.4f/%8.0f/%14.4f/%8.2f",
gc->asTimes[GLES_TIMER_TEXSUBIMAGE_TIME].ui32Count,
fSubLoadCall, GLES_PIXELS_PER_CALL(GLES_TIMER_TEXSUBIMAGE_TIME),
fSubLoadFrame, GLES_PIXELS_PER_FRAME(GLES_TIMER_TEXSUBIMAGE_TIME)));
if(fCompLoadCall)
{
DPFMETRIC((" CompTex %7d/%12.4f/%8.0f/%14.4f/%8.2f",
gc->asTimes[GLES_TIMER_COMPRESSTEXIMAGE_TIME].ui32Count,
fCompLoadCall, GLES_PIXELS_PER_CALL(GLES_TIMER_COMPRESSTEXIMAGE_TIME),
fCompLoadFrame, GLES_PIXELS_PER_FRAME(GLES_TIMER_COMPRESSTEXIMAGE_TIME)));
}
if(fCompSubLoadCall)
{
DPFMETRIC((" CompSubTex %7d/%12.4f/%8.0f/%14.4f/%8.2f",
gc->asTimes[GLES_TIMER_COMPRESSTEXSUBIMAGE_TIME].ui32Count,
fCompSubLoadCall, GLES_PIXELS_PER_CALL(GLES_TIMER_COMPRESSTEXSUBIMAGE_TIME),
fCompSubLoadFrame, GLES_PIXELS_PER_FRAME(GLES_TIMER_COMPRESSTEXSUBIMAGE_TIME)));
}
DPFMETRIC((" Texture Statistics [ Calls/Time per Call/Time per Frame]"));
DPFMETRIC((" CopyImage %7d/%13.4f/%15.4f",
gc->asTimes[GLES_TIMER_COPYTEXIMAGE_TIME].ui32Count, fCopyImgCall, fCopyImgFrame));
DPFMETRIC((" AllocateTexture %7d/%13.4f/%15.4f",
gc->asTimes[GLES_TIMER_TEXTURE_ALLOCATE_TIME].ui32Count, fTexAllocateCall, fTexAllocateFrame));
DPFMETRIC((" TranslateLoadTexture %7d/%13.4f/%15.4f",
gc->asTimes[GLES_TIMER_TEXTURE_TRANSLATE_LOAD_TIME].ui32Count, fTexTranslateCall, fTexTranslateFrame));
DPFMETRIC((" Load Ghost Texture %7d/%13.4f/%15.4f",
gc->asTimes[GLES_TIMER_TEXTURE_GHOST_LOAD_TIME].ui32Count, fTexLoadGhostCall, fTexLoadGhostFrame));
DPFMETRIC((" Texture Readback %7d/%13.4f/%15.4f",
gc->asTimes[GLES_TIMER_TEXTURE_READBACK_TIME].ui32Count, fTexReadbackCall, fTexReadbackFrame));
/* Output read pixels stats */
if(gc->asTimes[GLES_TIMER_READPIXELS_TIME].ui32Count)
{
DPFMETRIC((" Read Pixel Stats [ Calls/perCall-Time|Pixels / perFrame-Time|Pixels ]"));
DPFMETRIC((" Color %7d/%12.4f/%8.0f/%14.4f/%8.2f",
GLES_CALLS(GLES_TIMER_READPIXELS_TIME),
GLES_TIME_PER_CALL(GLES_TIMER_READPIXELS_TIME),
GLES_PIXELS_PER_CALL(GLES_TIMER_READPIXELS_TIME),
GLES_TIME_PER_FRAME(GLES_TIMER_READPIXELS_TIME),
GLES_PIXELS_PER_FRAME(GLES_TIMER_READPIXELS_TIME)));
}
DPFMETRIC((" Maths Stats [ Calls/perCall-Time ]"));
DPFMETRIC((" %d %f",
gc->asTimes[GLES_TIMES_MATRIXMATHS].ui32Count,
GLES_TIME_PER_CALL(GLES_TIMES_MATRIXMATHS)));
}
#endif
DPFMETRIC((""));
#if !defined(__SYMBIAN32__)
DPFMETRIC((" Texture allocation HWM = %u bytes",ui32TextureMemHWM));
#endif
if (gc->sAppHints.bDumpProfileData)
{
ProfileOutputTotals(gc);
}
}
#endif /* defined (TIMING) || defined (DEBUG) */
/**************************************************************************
End of file (metrics.c)
**************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -