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

📄 metrics.c

📁 Lido PXA270平台开发板的最新BSP,包括源代码
💻 C
📖 第 1 页 / 共 3 页
字号:
		DPFMETRIC((" Total State Emission                   %10d/%10d", gc->asTimes[GLES_TIMER_TOTAL_STATE_TIME].ui32Count/ui32Frames, (int)(10000.0f*gc->asTimes[GLES_TIMER_TOTAL_STATE_TIME].ui32Total*gc->fCPUSpeed/ui32Frames)));
		DPFMETRIC((" Total Primitive Draw                   %10d/%10d", ui32TotalDrawCalls/ui32Frames, (int)(10000.0f*fTotalDrawTime/ui32Frames)));
		DPFMETRIC(("     inc: Slaveport writes              %10d/%10d", gc->asTimes[GLES_TIMER_TOTAL_SLAVEPORT_COPY_TIME].ui32Count/ui32Frames, (int)(10000.0f*gc->asTimes[GLES_TIMER_TOTAL_SLAVEPORT_COPY_TIME].ui32Total * gc->fCPUSpeed/ui32Frames)));
		DPFMETRIC(("         inc: Slaveport acquire         %10d/%10d", gc->asTimes[GLES_TIMES_ACQUIRE_SLAVEPORT].ui32Count/ui32Frames, (int)(10000.0f*gc->asTimes[GLES_TIMES_ACQUIRE_SLAVEPORT].ui32Total * gc->fCPUSpeed/ui32Frames)));

		if(gc->asTimes[GLES_TIMER_POINTLIST_TIME].ui32Count) {DPFMETRIC((" Core Points                            %10d/%10d", gc->asTimes[GLES_TIMER_POINTLIST_TIME].ui32Count/ui32Frames, (int)(10000.0f*gc->asTimes[GLES_TIMER_POINTLIST_TIME].ui32Total * gc->fCPUSpeed/ui32Frames)));}
		if(gc->asTimes[GLES_TIMER_LINES_TIME].ui32Count)	 {DPFMETRIC((" Core Lines                             %10d/%10d", gc->asTimes[GLES_TIMER_LINES_TIME].ui32Count/ui32Frames, (int)(10000.0f*gc->asTimes[GLES_TIMER_LINES_TIME].ui32Total * gc->fCPUSpeed/ui32Frames)));}
		if(gc->asTimes[GLES_TIMER_LINESTRIP_TIME].ui32Count) {DPFMETRIC((" Core Line Strips                       %10d/%10d", gc->asTimes[GLES_TIMER_LINESTRIP_TIME].ui32Count/ui32Frames, (int)(10000.0f*gc->asTimes[GLES_TIMER_LINESTRIP_TIME].ui32Total * gc->fCPUSpeed/ui32Frames)));}
		if(gc->asTimes[GLES_TIMER_LINELOOP_TIME].ui32Count)	 {DPFMETRIC((" Core Line Loops                        %10d/%10d", gc->asTimes[GLES_TIMER_LINELOOP_TIME].ui32Count/ui32Frames, (int)(10000.0f*gc->asTimes[GLES_TIMER_LINELOOP_TIME].ui32Total * gc->fCPUSpeed/ui32Frames)));}
		if(gc->asTimes[GLES_TIMER_TRILIST_TIME].ui32Count)	 {DPFMETRIC((" Core Triangles                         %10d/%10d", gc->asTimes[GLES_TIMER_TRILIST_TIME].ui32Count/ui32Frames, (int)(10000.0f*gc->asTimes[GLES_TIMER_TRILIST_TIME].ui32Total * gc->fCPUSpeed/ui32Frames)));}
		if(gc->asTimes[GLES_TIMER_TRISTRIP_TIME].ui32Count)	 {DPFMETRIC((" Core Strips                            %10d/%10d", gc->asTimes[GLES_TIMER_TRISTRIP_TIME].ui32Count/ui32Frames, (int)(10000.0f*gc->asTimes[GLES_TIMER_TRISTRIP_TIME].ui32Total * gc->fCPUSpeed/ui32Frames)));}
		if(gc->asTimes[GLES_TIMER_TRIFAN_TIME].ui32Count)	 {DPFMETRIC((" Core Fans                              %10d/%10d", gc->asTimes[GLES_TIMER_TRIFAN_TIME].ui32Count/ui32Frames, (int)(10000.0f*gc->asTimes[GLES_TIMER_TRIFAN_TIME].ui32Total * gc->fCPUSpeed/ui32Frames)));}
		
		DPFMETRIC(("\n"));
		DPFMETRIC((" State Statistics                         [  Bytes/Bytes per Frame  ]"));

		if (gc->asTimes[GLES_TIMER_TOTAL_STATE_COUNT].ui32Count)
		{
			IMG_FLOAT fB;
			fB = (IMG_FLOAT)gc->asTimes[GLES_TIMER_TOTAL_STATE_COUNT].ui32Total;
			DPFMETRIC((" Total State                            %10d/%10d", (int)fB, (int)(fB/ui32Frames) ));
		}

#if (defined(SUPPORT_VGP) || defined(SUPPORT_VGP_LITE)) && !defined(PASSTHROUGH_BUILD)

		if (gc->asTimes[GLES_TIMER_VGP_CONSTANTS_COUNT].ui32Count)
		{
			IMG_FLOAT fB;
			fB = (IMG_FLOAT)gc->asTimes[GLES_TIMER_VGP_CONSTANTS_COUNT].ui32Total;
			DPFMETRIC((" VGP constants                          %10d/%10d", (int)fB, (int)(fB/ui32Frames) ));
		}

		if (gc->asTimes[GLES_TIMER_VGP_CODE_COUNT].ui32Count)
		{
			IMG_FLOAT fB;

			fB = (IMG_FLOAT)gc->asTimes[GLES_TIMER_VGP_CODE_COUNT].ui32Total;

			DPFMETRIC((" VGP code                               %10d/%10d", (int)fB, (int)(fB/ui32Frames) ));
		}

		if (gc->asTimes[GLES_TIMER_VGP_SECTIONS_COUNT].ui32Count)
		{
			IMG_FLOAT fB;

			fB = (IMG_FLOAT)gc->asTimes[GLES_TIMER_VGP_SECTIONS_COUNT].ui32Total;

			DPFMETRIC((" VGP sections                           %10d/%10d", (int)fB, (int)(fB/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); /* In kB not not MB - printf %f workaround*/
			if(fSlavePortSeconds)
			DPFMETRIC((" Slaveport writes - Total kB and kB/s   %10d/%10d", (int)fSlavePortMB, (int)(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 kPixels/s                 %10d", (int)(1000.0f*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 kPixels/s              %10d", (int)(1000.0f*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 kPixels/s                 %10d", (int)(1000.0f*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             %10d", (int)(1000.0f*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/%12d/%8d/%14d/%8d",
				   gc->asTimes[GLES_TIMER_TEXIMAGE_TIME].ui32Count, 
				   (int)(10000.0f*fLoadCall), (int)(GLES_PIXELS_PER_CALL(GLES_TIMER_TEXIMAGE_TIME)), 
				   (int)(10000.0f*fLoadFrame), (int)(GLES_PIXELS_PER_FRAME(GLES_TIMER_TEXIMAGE_TIME))));
		DPFMETRIC(("    TexSubImage              %7d/%12d/%8d/%14d/%8d",
				   gc->asTimes[GLES_TIMER_TEXSUBIMAGE_TIME].ui32Count, 
				   (int)(10000.0f*fSubLoadCall), (int)(GLES_PIXELS_PER_CALL(GLES_TIMER_TEXSUBIMAGE_TIME)), 
				   (int)(10000.0f*fSubLoadFrame), (int)(GLES_PIXELS_PER_FRAME(GLES_TIMER_TEXSUBIMAGE_TIME))));
		if(fCompLoadCall)
		{
			DPFMETRIC(("    CompTex                 %7d/%12d/%8d/%14d/%8d",
				   gc->asTimes[GLES_TIMER_COMPRESSTEXIMAGE_TIME].ui32Count, 
				   (int)(10000.0f*fCompLoadCall), (int)(GLES_PIXELS_PER_CALL(GLES_TIMER_COMPRESSTEXIMAGE_TIME)),
				   (int)(10000.0f*fCompLoadFrame), (int)(GLES_PIXELS_PER_FRAME(GLES_TIMER_COMPRESSTEXIMAGE_TIME))));
		}
		if(fCompSubLoadCall)
		{
			DPFMETRIC(("    CompSubTex              %7d/%12d/%8d/%14d/%8d",
				   gc->asTimes[GLES_TIMER_COMPRESSTEXSUBIMAGE_TIME].ui32Count, 
				   (int)(10000.0f*fCompSubLoadCall), (int)(GLES_PIXELS_PER_CALL(GLES_TIMER_COMPRESSTEXSUBIMAGE_TIME)), 
				   (int)(10000.0f*fCompSubLoadFrame), (int)(GLES_PIXELS_PER_FRAME(GLES_TIMER_COMPRESSTEXSUBIMAGE_TIME))));
		}
		DPFMETRIC((" Texture Statistics         [  Calls/Time per Call/Time per Frame]"));
		DPFMETRIC(("    CopyImage                %7d/%13d/%15d",
				   gc->asTimes[GLES_TIMER_COPYTEXIMAGE_TIME].ui32Count, (int)(10000.0f*fCopyImgCall), (int)(10000.0f*fCopyImgFrame)));
		DPFMETRIC(("    AllocateTexture          %7d/%13d/%15d",
				   gc->asTimes[GLES_TIMER_TEXTURE_ALLOCATE_TIME].ui32Count, (int)(10000.0f*fTexAllocateCall), (int)(10000.0f*fTexAllocateFrame)));
		DPFMETRIC(("    TranslateLoadTexture     %7d/%13d/%15d",
				   gc->asTimes[GLES_TIMER_TEXTURE_TRANSLATE_LOAD_TIME].ui32Count, (int)(10000.0f*fTexTranslateCall), (int)(10000.0f*fTexTranslateFrame)));
		DPFMETRIC(("    Load Ghost Texture       %7d/%13d/%15d",
				   gc->asTimes[GLES_TIMER_TEXTURE_GHOST_LOAD_TIME].ui32Count, (int)(10000.0f*fTexLoadGhostCall), (int)(10000.0f*fTexLoadGhostFrame)));
		DPFMETRIC(("    Texture Readback         %7d/%13d/%15d",
				   gc->asTimes[GLES_TIMER_TEXTURE_READBACK_TIME].ui32Count, (int)(10000.0f*fTexReadbackCall), (int)(10000.0f*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/%12d/%8d/%14d/%8d",
						   GLES_CALLS(GLES_TIMER_READPIXELS_TIME), 
						   (int)(10000.0f*GLES_TIME_PER_CALL(GLES_TIMER_READPIXELS_TIME)), (int)(GLES_PIXELS_PER_CALL(GLES_TIMER_READPIXELS_TIME)),
						   (int)(10000.0f*GLES_TIME_PER_FRAME(GLES_TIMER_READPIXELS_TIME)), (int)(GLES_PIXELS_PER_FRAME(GLES_TIMER_READPIXELS_TIME))));
		}

		DPFMETRIC((" Maths Stats [  Calls/perCall-Time ]"));
		DPFMETRIC(("                %d      %d",
					gc->asTimes[GLES_TIMES_MATRIXMATHS].ui32Count,
					(int)(10000.0f*GLES_TIME_PER_CALL(GLES_TIMES_MATRIXMATHS))));
	}
#else
   	if(ui32Frames)
	{
		DPFMETRIC((" Total Frames                                    %10d", ui32Frames));
		DPFMETRIC((" Average Elapsed Time per Frame (ms)             %10.4f", gc->asTimes[GLES_TIMER_TOTAL_FRAME_TIME].fStack / ui32Frames));
		DPFMETRIC((" Average Driver Time per Frame (ms)              %10.4f", fTotalDriverTime / ui32Frames));
		
		if(gc->asTimes[GLES_TIMER_TOTAL_FRAME_TIME].fStack)
			DPFMETRIC((" Estimated FPS                                   %10.4f", 1000.0f*ui32Frames/gc->asTimes[GLES_TIMER_TOTAL_FRAME_TIME].fStack));
		DPFMETRIC(("            Statistics per frame            [Calls/Time(ms)]"));
		DPFMETRIC((" Total Prepare to draw                  %10d/%10.4f", gc->asTimes[GLES_TIMER_PREPARE_TO_DRAW_TIME].ui32Count/ui32Frames, gc->asTimes[GLES_TIMER_PREPARE_TO_DRAW_TIME].ui32Total*gc->fCPUSpeed/ui32Frames));
		DPFMETRIC(("     inc: Total Wait for HW             %10d/%10.4f", gc->asTimes[GLES_TIMES_WAIT_FOR_ACQUIRE].ui32Count/ui32Frames, fWaitForHW/ui32Frames));
		DPFMETRIC((" Total Validates                        %10d/%10.4f", gc->asTimes[GLES_TIMER_VALIDATE_TIME].ui32Count/ui32Frames, gc->asTimes[GLES_TIMER_VALIDATE_TIME].ui32Total*gc->fCPUSpeed/ui32Frames));
		DPFMETRIC((" Total State Emission                   %10d/%10.4f", gc->asTimes[GLES_TIMER_TOTAL_STATE_TIME].ui32Count/ui32Frames, gc->asTimes[GLES_TIMER_TOTAL_STATE_TIME].ui32Total*gc->fCPUSpeed/ui32Frames));
		DPFMETRIC((" Total Primitive Draw                   %10d/%10.4f", ui32TotalDrawCalls/ui32Frames, fTotalDrawTime/ui32Frames));
		DPFMETRIC(("     inc: Slaveport writes              %10d/%10.4f", gc->asTimes[GLES_TIMER_TOTAL_SLAVEPORT_COPY_TIME].ui32Count/ui32Frames, gc->asTimes[GLES_TIMER_TOTAL_SLAVEPORT_COPY_TIME].ui32Total * gc->fCPUSpeed/ui32Frames));
		DPFMETRIC(("         inc: Slaveport acquire         %10d/%10.4f", gc->asTimes[GLES_TIMES_ACQUIRE_SLAVEPORT].ui32Count/ui32Frames, gc->asTimes[GLES_TIMES_ACQUIRE_SLAVEPORT].ui32Total * gc->fCPUSpeed/ui32Frames));

		if(gc->asTimes[GLES_TIMER_POINTLIST_TIME].ui32Count) {DPFMETRIC((" Core Points                            %10d/%10.4f", gc->asTimes[GLES_TIMER_POINTLIST_TIME].ui32Count/ui32Frames, gc->asTimes[GLES_TIMER_POINTLIST_TIME].ui32Total * gc->fCPUSpeed/ui32Frames));}
		if(gc->asTimes[GLES_TIMER_LINES_TIME].ui32Count)	 {DPFMETRIC((" Core Lines                             %10d/%10.4f", gc->asTimes[GLES_TIMER_LINES_TIME].ui32Count/ui32Frames, gc->asTimes[GLES_TIMER_LINES_TIME].ui32Total * gc->fCPUSpeed/ui32Frames));}
		if(gc->asTimes[GLES_TIMER_LINESTRIP_TIME].ui32Count) {DPFMETRIC((" Core Line Strips                       %10d/%10.4f", gc->asTimes[GLES_TIMER_LINESTRIP_TIME].ui32Count/ui32Frames, gc->asTimes[GLES_TIMER_LINESTRIP_TIME].ui32Total * gc->fCPUSpeed/ui32Frames));}
		if(gc->asTimes[GLES_TIMER_LINELOOP_TIME].ui32Count)	 {DPFMETRIC((" Core Line Loops                        %10d/%10.4f", gc->asTimes[GLES_TIMER_LINELOOP_TIME].ui32Count/ui32Frames, gc->asTimes[GLES_TIMER_LINELOOP_TIME].ui32Total * gc->fCPUSpeed/ui32Frames));}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -