亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gfx_stress.c

?? SigmDesign SMP8634 media decode chip development SDK
?? C
字號:
/* * * Copyright (c) Sigma Designs, Inc. 2002. All rights reserved. * */#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <sys/time.h>#define ALLOW_OS_CODE 1#include "common.h"#include "../rmrtk/include/rmrtk.h"#define KEYFLAGS (SET_KEY_DISPLAY | SET_KEY_PLAYBACK)#define TIMEOUT_US 1000000#define FONT_FILE "Vera.ttf"RMuint32 gfx_dram_controller = 0;/*  *  use the SEND_GFX_COMMAND if you don't want a continuos polling *  otherwise you can just write *  while( RUASetProperty(pRUA, moduleID, propertyID, pValue, ValueSize, 0) == RM_PENDING); * *  uncomment the following line if you want the application to wait for the completion of commands *  before going on (otherwise the command is queued, and the application only waits if the command *  queue is full) *  *//* #define WAIT_FOR_COMMANDS */#define SEND_GFX_COMMAND(pRUA, moduleID, propertyID, pValue, ValueSize)					\{													\	RMstatus err;											\	RMuint32 n;											\	n = 1005;											\	do{												\		err = RUASetProperty(pRUA, moduleID, propertyID, pValue, ValueSize, 0);			\		if ((err == RM_PENDING)) {								\ 			struct RUAEvent evt;								\			evt.ModuleID = moduleID;							\			evt.Mask = RUAEVENT_COMMANDCOMPLETION;						\			while (RUAWaitForMultipleEvents(pRUA, &evt, 1, TIMEOUT_US, NULL) != RM_OK)	\				RMDBGLOG((ENABLE, "Waiting for a command to finish\n"));		\                }											\                        n--;										\													\	}while((n>0) && (err == RM_PENDING));								\													\	if (err != RM_OK) {										\		RMDBGLOG((ENABLE, "Can't send command to command fifo\n" ));				\		return err;										\	}												\													\}char *filename = (char *) NULL;struct playback_cmdline play_opt;struct display_cmdline disp_opt;struct video_cmdline video_opt;static struct dcc_context dcc_info = {0,};static void show_usage(char *progname){	show_display_options();	show_video_options();		fprintf(stderr, "------------------------------------------------------------\n");	fprintf(stderr, "Minimum cmd line: %s <filename.jpg/filename.bmp>\n", progname);	fprintf(stderr, "Image should be 256x256 or bigger and true color\n");	fprintf(stderr, "------------------------------------------------------------\n");	exit(1);}static void parse_cmdline(int argc, char *argv[]){	int i;	i = 1;	while ((argc > i)) {		if ( ! strcmp(argv[i], "-gfxdram")) {			if (argc > i+1) {				gfx_dram_controller = strtol(argv[i+1], NULL, 10);				i+=2;			}			else				show_usage(argv[0]);		}	}}static RMstatus gfx_test( struct RUA *pRUA, RMuint32 osd_addr, struct DCCOSDProfile *osd_profile){	RMstatus err;	RMuint32 gfx;	RMuint32 dram_buf = 0;	struct GFXEngine_Open_type gfx_profile;	struct timeval init, final;	RMuint32 elapsed;		RMuint32 total_bytes;		RMuint32 transfer_count = 0;	fprintf(stderr, "osd allocated at 0x%08lx\n", osd_addr); 		/* init the gfx_engine */	{		RMuint32 chip_num;		RMuint32 gfx_count; 				struct GFXEngine_DRAMSize_in_type  dramSizeIn;		struct GFXEngine_DRAMSize_out_type dramSizeOut;				RMint32 i;				chip_num = 0;				dramSizeIn.CommandFIFOCount = 10;		err = RUAExchangeProperty(pRUA, EMHWLIB_MODULE(GFXEngine,0), RMGFXEnginePropertyID_DRAMSize,					  &dramSizeIn, sizeof(dramSizeIn), &dramSizeOut, sizeof(dramSizeOut));		if (RMFAILED(err)) {			fprintf(stderr, "Error getting dram size for gfx engine\n");			return -1;		}				gfx_profile.CommandFIFOCount = dramSizeIn.CommandFIFOCount;		gfx_profile.Priority = 1;		gfx_profile.CachedSize = dramSizeOut.CachedSize;		gfx_profile.UncachedSize = dramSizeOut.UncachedSize;			if (gfx_profile.CachedSize > 0) {			fprintf(stderr, "about to malloc cached, size %ld\n", gfx_profile.CachedSize);			gfx_profile.CachedAddress = RUAMalloc(pRUA, gfx_dram_controller, RUA_DRAM_CACHED, gfx_profile.CachedSize);		} else {			gfx_profile.CachedAddress = 0;		}				gfx_profile.UncachedSize = dramSizeOut.UncachedSize;		if (gfx_profile.UncachedSize > 0) {			gfx_profile.UncachedAddress = RUAMalloc(pRUA, gfx_dram_controller, RUA_DRAM_UNCACHED, gfx_profile.UncachedSize);		} else {			gfx_profile.UncachedAddress = 0;		}		fprintf(stderr, "gfx engine task structure allocated at 0x%08lx\n", gfx_profile.UncachedAddress); 		gfx = GFXEngine;				err = RUAExchangeProperty(pRUA, EMHWLIB_MODULE(Enumerator,0),  RMEnumeratorPropertyID_CategoryIDToNumberOfInstances, 					  &gfx, sizeof(gfx), &gfx_count, sizeof(gfx_count));		if (RMFAILED(err)) {			fprintf(stderr, "Error getting gfx engine count\n");			return -1;		}					for (i=0 ; i<(RMint32) gfx_count ; i++) {			gfx = EMHWLIB_MODULE(GFXEngine, i);			err = RUASetProperty(pRUA, gfx, RMGFXEnginePropertyID_Open, &gfx_profile, sizeof(gfx_profile), 0);			if (err == RM_OK) 				break;		}				if (i==(RMint32)gfx_count) {			fprintf(stderr, "Cannot open a gfx engine [0..%lu[\n", gfx_count);			return -1;		}	}//*/			/* setup NX  */	{		struct GFXEngine_Surface_type surface_param;		struct GFXEngine_ColorFormat_type format_param;		format_param.SurfaceID = GFX_SURFACE_ID_NX;		format_param.MainMode = osd_profile->ColorMode; //wont care!		format_param.SubMode = osd_profile->ColorFormat;		format_param.SamplingMode = osd_profile->SamplingMode;		format_param.ColorSpace = osd_profile->ColorSpace;		SEND_GFX_COMMAND(pRUA, gfx, RMGFXEnginePropertyID_ColorFormat, &format_param, sizeof(format_param));				surface_param.SurfaceID = GFX_SURFACE_ID_NX;		surface_param.StartAddress = osd_addr;		surface_param.TotalWidth = osd_profile->Width;		surface_param.Tiled = FALSE;		SEND_GFX_COMMAND(pRUA, gfx, RMGFXEnginePropertyID_Surface, &surface_param, sizeof(surface_param));	}//*/		/* just move (Y)  */	{		struct GFXEngine_Surface_type surface_param;		struct GFXEngine_ColorFormat_type format_param;		struct GFXEngine_MoveReplaceRectangle_type move_param;		RMuint32 test_id = 0;		RMuint32 test_transfer_count;				format_param.SurfaceID = GFX_SURFACE_ID_Y;		surface_param.SurfaceID = GFX_SURFACE_ID_Y;				format_param.MainMode = osd_profile->ColorMode;		format_param.SubMode = osd_profile->ColorFormat;		format_param.SamplingMode = osd_profile->SamplingMode;		format_param.ColorSpace = osd_profile->ColorSpace;				surface_param.StartAddress = osd_addr;		surface_param.TotalWidth = osd_profile->Width;		surface_param.Tiled = FALSE;		SEND_GFX_COMMAND(pRUA, gfx, RMGFXEnginePropertyID_ColorFormat, &format_param, sizeof(format_param));		SEND_GFX_COMMAND(pRUA, gfx, RMGFXEnginePropertyID_Surface, &surface_param, sizeof(surface_param));		move_param.SrcX = 0;		move_param.SrcY = 0;		move_param.Width = osd_profile->Width;//osd_profile->Width/2;		move_param.Height = osd_profile->Height;//osd_profile->Height/2;		move_param.DstX = 0;		move_param.DstY = 0;//osd_profile->Height/2;		move_param.AlphaX = 0;		move_param.AlphaY = 0;		move_param.Merge = FALSE;		total_bytes = move_param.Width * move_param.Height;  /* read */		total_bytes *= 2;  /* write */		total_bytes *= 4; /* 32bpp */		test_transfer_count = (512*1024*1024)/total_bytes;		gettimeofday(&init, NULL);		while(TRUE){			if(transfer_count == test_transfer_count){				gettimeofday(&final, NULL);				elapsed = final.tv_sec - init.tv_sec;				elapsed *= 1000000;				elapsed += (RMint32)final.tv_usec - init.tv_usec;				fprintf(stderr, "%ldkB/s (%ld ops per second) chunks are (%ld x %ld)\n", 					(RMuint32) (((((RMuint64)transfer_count*total_bytes)/elapsed)*1000000)>>10), 					(transfer_count*1000)/(elapsed/1000),					move_param.Width,					move_param.Height					);				move_param.Width -= (move_param.Width + 7)/8;				move_param.Height -= (move_param.Height + 7)/8;				if((!move_param.Width) ||				   (!move_param.Height)){					move_param.Width = osd_profile->Width;					move_param.Height = osd_profile->Height;				}				total_bytes = move_param.Width * move_param.Height;  /* read */				total_bytes *= 2;  /* write */				total_bytes *= 4; /* 32bpp */				/* calculate this here so that we don't need to make an extra multiplication on every command*/				test_transfer_count = (512*1024*1024)/total_bytes;				transfer_count=0;				test_id++;				gettimeofday(&init, NULL);			}			SEND_GFX_COMMAND(pRUA, gfx, RMGFXEnginePropertyID_MoveRectangle, &move_param, sizeof(move_param));			transfer_count++;		}	}//*/	/* just move (Y)  */	{		struct GFXEngine_Surface_type surface_param;		struct GFXEngine_ColorFormat_type format_param;		struct GFXEngine_MoveReplaceRectangle_type move_param;				format_param.SurfaceID = GFX_SURFACE_ID_Y;		surface_param.SurfaceID = GFX_SURFACE_ID_Y;				format_param.MainMode = osd_profile->ColorMode;		format_param.SubMode = osd_profile->ColorFormat;		format_param.SamplingMode = osd_profile->SamplingMode;		format_param.ColorSpace = osd_profile->ColorSpace;				surface_param.StartAddress = osd_addr;		surface_param.TotalWidth = osd_profile->Width;		surface_param.Tiled = FALSE;		SEND_GFX_COMMAND(pRUA, gfx, RMGFXEnginePropertyID_ColorFormat, &format_param, sizeof(format_param));		SEND_GFX_COMMAND(pRUA, gfx, RMGFXEnginePropertyID_Surface, &surface_param, sizeof(surface_param));		move_param.SrcX = 0;		move_param.SrcY = 0;		move_param.Width = osd_profile->Width;//osd_profile->Width/2;		move_param.Height = osd_profile->Height;//osd_profile->Height/2;		move_param.DstX = 0;		move_param.DstY = 0;//osd_profile->Height/2;		move_param.AlphaX = 0;		move_param.AlphaY = 0;		move_param.Merge = FALSE;		total_bytes = move_param.Width * move_param.Height;  /* read */		total_bytes *= 2;  /* write */		total_bytes *= 4; /* 32bpp */				while(TRUE){			if(transfer_count ==500)/* move_param.SrcX >  (osd_profile->Width - move_param.Width)) */{				gettimeofday(&final, NULL);				elapsed = final.tv_sec - init.tv_sec;				elapsed *= 1000000;				elapsed += (RMint32)final.tv_usec - init.tv_usec;				gettimeofday(&init, NULL);				fprintf(stderr, "elapsed usecs %ld : %ldkB/s (transfer count %ld)\n", 					elapsed,					(RMuint32) (((((RMuint64)transfer_count*total_bytes)/elapsed)*1000000)>>10), transfer_count);				transfer_count=0;				move_param.SrcX  = 0;			}			SEND_GFX_COMMAND(pRUA, gfx, RMGFXEnginePropertyID_MoveRectangle, &move_param, sizeof(move_param));/* 			move_param.SrcX++; */			transfer_count++;		}	}//*/		/* wait for all commands to be finished */	{		struct RUAEvent evt;		RMbool empty_queue = FALSE;		evt.ModuleID = gfx;		evt.Mask = RUAEVENT_COMMANDCOMPLETION;		while(!empty_queue){			RUAGetProperty(pRUA, gfx, RMGFXEnginePropertyID_CommandQueueEmpty, &empty_queue, sizeof(empty_queue));			/* the following lines could be removed if you don't care about a continuous polling */			if(!empty_queue) {				while( RUAWaitForMultipleEvents(pRUA, &evt, 1, TIMEOUT_US, NULL)!=RM_OK){					RMDBGLOG((ENABLE, "Waiting for a command to finish\n"));				}			}		}	}			/* close the gfx accelerator */ 	{ 		RMuint32 close_profile = 0;		 		err = RUASetProperty(pRUA, gfx, RMGFXEnginePropertyID_Close, &close_profile, sizeof(close_profile), 0); 		if (RMFAILED(err)) fprintf(stderr, "Cannot close de gfx accelerator\n");		if(dram_buf != 0)				RUAFree(pRUA, dram_buf);		if(gfx_profile.CachedAddress)					RUAFree(pRUA, gfx_profile.CachedAddress);		if(gfx_profile.UncachedAddress)					RUAFree(pRUA, gfx_profile.UncachedAddress); 	}//*/	dram_buf = 0;	return 0;}int main(int argc, char *argv[]){	struct DCC *pDCC = NULL;	struct RUA *pRUA = NULL;	RMuint32 osd_addr;	RMstatus err;	struct DCCOSDProfile  osd_profile;/* 	RMuint32 mixer = 0, scaler, src_index, mixer_src; */	struct display_context disp_info;	struct dh_context dh_info = {0,};		init_display_options(&disp_opt);	init_video_options(&video_opt);	init_playback_options(&play_opt);	disp_opt.dh_info = &dh_info;	parse_cmdline(argc, argv);	err = RUACreateInstance(&pRUA, play_opt.chip_num);	if (RMFAILED(err)) {		fprintf(stderr, "Error creating RUA instance! %d\n", err);		return -1;	}		err = DCCOpen(pRUA, &pDCC);	if (RMFAILED(err)) {		fprintf(stderr, "Error Opening DCC! %d\n", err);		return err;	}	dcc_info.pRUA = pRUA; 	dcc_info.pDCC = pDCC;	dcc_info.route = DCCRoute_Main;	dcc_info.disp_info = &disp_info;/* 	fprintf( stdout, "press any key\n\n\n"); */	osd_profile.ColorSpace = EMhwlibColorSpace_RGB_0_255;	osd_profile.ColorFormat = EMhwlibColorFormat_32BPP;	osd_profile.ColorMode = EMhwlibColorMode_TrueColor;	osd_profile.SamplingMode = EMhwlibSamplingMode_444;	osd_profile.Width = 1024;	osd_profile.Height = 1024;	osd_profile.PixelAspectRatio.X = 1;	osd_profile.PixelAspectRatio.Y = 1;	osd_addr = RUAMalloc(pRUA, gfx_dram_controller, RUA_DRAM_UNCACHED, osd_profile.Width*osd_profile.Height*4);	gfx_test(dcc_info.pRUA, osd_addr, &osd_profile);	fprintf( stdout, "gfx test done, press any key to quit\n");	RMGetKey();	err = RUADestroyInstance(pRUA);	if (RMFAILED(err)) {		fprintf(stderr, "Cannot destroy RUA instance %d\n", err);		return -1;	}		return 0;	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美日韩亚州综合 | 亚洲高清免费视频| 337p粉嫩大胆噜噜噜噜噜91av | 91蜜桃免费观看视频| 麻豆91免费观看| 一区二区三区四区亚洲| 精品久久久久久久一区二区蜜臀| 在线精品视频一区二区三四| 国产精品91xxx| 激情综合色播激情啊| 亚洲va在线va天堂| 一区二区三区四区在线播放| 国产精品女主播在线观看| 欧美一级精品在线| 欧美日韩视频在线一区二区| 91女厕偷拍女厕偷拍高清| 国产精品一区一区三区| 久久精品av麻豆的观看方式| 亚洲电影一区二区| 亚洲精品视频一区二区| 中文字幕在线观看一区| 亚洲国产精品ⅴa在线观看| 精品国偷自产国产一区| 欧美一区二区精美| 7777精品伊人久久久大香线蕉超级流畅| 99久久99久久精品免费看蜜桃| 国产福利一区二区三区| 韩国av一区二区| 精品一区二区三区在线播放| 麻豆91在线播放| 免费在线观看成人| 久久国产福利国产秒拍| 奇米色一区二区三区四区| 日韩在线观看一区二区| 日本在线不卡一区| 午夜成人免费视频| 三级在线观看一区二区| 午夜精品aaa| 日本va欧美va精品发布| 麻豆freexxxx性91精品| 韩国精品在线观看| 国产寡妇亲子伦一区二区| 国产精品伊人色| 成人免费观看av| 91免费国产视频网站| 色偷偷88欧美精品久久久| 91久久人澡人人添人人爽欧美| 色综合久久88色综合天天| 一本色道久久综合亚洲aⅴ蜜桃| 色94色欧美sute亚洲线路二| 欧美无乱码久久久免费午夜一区 | 日本网站在线观看一区二区三区| 亚洲国产sm捆绑调教视频| 亚洲国产精品一区二区久久| 五月婷婷欧美视频| 精品影视av免费| 国产精品一区二区视频| 91视频www| 欧美亚洲一区二区在线观看| 欧美男人的天堂一二区| 欧美大白屁股肥臀xxxxxx| 久久久久国产精品免费免费搜索| 国产精品视频第一区| 亚洲激情在线激情| 奇米影视一区二区三区小说| 国产电影一区在线| 色94色欧美sute亚洲线路一ni| 91精品国产一区二区| 久久九九影视网| 亚洲蜜臀av乱码久久精品 | 91亚洲男人天堂| 精品视频资源站| 久久久精品国产99久久精品芒果| 亚洲视频精选在线| 麻豆中文一区二区| 99久久精品国产观看| 国产拍欧美日韩视频二区| 中文字幕在线播放不卡一区| 天堂久久久久va久久久久| 国产91精品露脸国语对白| 欧美日韩亚洲综合一区二区三区| 精品国产凹凸成av人网站| 一区二区三区四区精品在线视频 | 高清免费成人av| 欧美无人高清视频在线观看| 久久综合国产精品| 亚洲精品日韩专区silk| 国产在线观看免费一区| 欧美亚洲国产一区二区三区 | 亚洲欧洲性图库| 日本不卡视频一二三区| 色综合久久综合网欧美综合网 | 欧美欧美欧美欧美首页| 国产三级久久久| 日欧美一区二区| 99久精品国产| 欧美精品一区二区三| 亚洲一级电影视频| 国产v日产∨综合v精品视频| 在线成人小视频| 亚洲男同性恋视频| 国产九色sp调教91| 欧美猛男男办公室激情| 国产91在线观看| 国产91精品免费| 欧美日本视频在线| 亚洲视频你懂的| 丁香网亚洲国际| 日韩欧美亚洲一区二区| 亚洲色欲色欲www| 国产成人av福利| 日韩精品一区二区三区视频播放| 一区二区三区欧美激情| 成人av资源网站| 久久久久久久久久久久电影| 爽好久久久欧美精品| 亚洲国产精品自拍| 亚洲美女在线国产| 日韩国产欧美三级| 欧美在线你懂得| 一区二区视频在线看| 播五月开心婷婷综合| 国产女主播一区| 从欧美一区二区三区| 国产午夜精品久久久久久免费视| 黄色日韩网站视频| 精品国产一区二区三区久久影院 | 懂色av一区二区三区蜜臀 | 一区二区三区中文在线| 91亚洲精品乱码久久久久久蜜桃 | 精品影院一区二区久久久| 欧美一级艳片视频免费观看| 日韩精品1区2区3区| 欧美日本一区二区三区| 亚洲成av人影院在线观看网| 欧美色综合网站| 亚洲综合色区另类av| 欧美日韩视频在线一区二区| 亚洲成人tv网| 91精品国模一区二区三区| 日本va欧美va欧美va精品| 欧美一区二区三区系列电影| 免费的国产精品| 精品国精品自拍自在线| 国产伦精一区二区三区| 国产精品丝袜一区| 色94色欧美sute亚洲13| 午夜一区二区三区视频| 欧美一区二区三区视频在线| 久久9热精品视频| 国产偷国产偷精品高清尤物| 不卡一卡二卡三乱码免费网站| 亚洲欧美日韩国产手机在线 | 国产精品国产自产拍在线| 成人a区在线观看| 亚洲精品成人精品456| 欧美妇女性影城| 狠狠色丁香婷婷综合久久片| 日本一区二区高清| 色婷婷综合久色| 亚洲成人激情自拍| 精品美女在线观看| 91在线观看成人| 青娱乐精品在线视频| 国产午夜亚洲精品午夜鲁丝片 | 国产激情视频一区二区在线观看| 欧美国产精品一区二区| 在线免费av一区| 韩国女主播一区| 亚洲激情男女视频| 日韩丝袜美女视频| 99精品视频在线观看| 水野朝阳av一区二区三区| 国产视频视频一区| 欧美性猛交一区二区三区精品| 美女视频网站久久| 亚洲天堂中文字幕| 欧美大白屁股肥臀xxxxxx| 欧美高清视频一二三区| 成人午夜在线视频| 午夜一区二区三区视频| 国产欧美一区视频| 欧美日本国产一区| 成人精品电影在线观看| 五月天丁香久久| 国产精品女人毛片| 欧美日韩国产高清一区二区| 国产91精品免费| 日韩电影免费在线看| 国产精品二三区| 色94色欧美sute亚洲线路一ni | 久草热8精品视频在线观看| 久久不见久久见免费视频1| 欧洲人成人精品| 国产精品一二三区在线| 亚洲成人激情综合网| 自拍偷在线精品自拍偷无码专区| 日韩亚洲欧美综合| 91福利社在线观看| 不卡一区二区中文字幕|