⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 metrics.c

📁 Lido PXA270平台开发板的最新BSP,包括源代码
💻 C
📖 第 1 页 / 共 3 页
字号:
		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 + -