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

📄 s3v_regs.h

📁 Mesa is an open-source implementation of the OpenGL specification - a system for rendering interacti
💻 H
字号:
/* * Author: Max Lingua <sunmax@libero.it> */#ifndef _S3V_REG_H#define _S3V_REG_H#define S3V_REGS_NUM 256/************ * DMA REGS * ************/#define S3V_DMA_ID				0#define S3V_DMA_REG				0x8590#define S3V_DMA_WRITEP_ID			1#define S3V_DMA_WRITEP_REG			0x8594#define S3V_DMA_READP_ID			2#define S3V_DMA_READP_REG			0x8598#define S3V_DMA_ENABLE_ID			3#define S3V_DMA_ENABLE_REG			0x859C#define S3V_DMA_UPDATE_ID			4#define S3V_DMA_UPDATE_REG			0x10000/*************** * STATUS REGS * ***************/#define S3V_STAT_ID				10#define S3V_STAT_REG				0x8504#define S3V_STAT_VSYNC_ID			11#define S3V_STAT_VSYNC_REG			0x8505#define S3V_STAT_3D_DONE_ID			12#define S3V_STAT_3D_DONE_REG			0x8506#define S3V_STAT_FIFO_OVER_ID			13#define S3V_STAT_FIFO_OVER_REG			0x8508#define S3V_STAT_FIFO_EMPTY_ID			14#define S3V_STAT_FIFO_EMPTY_REG			0x850C#define S3V_STAT_HDMA_DONE_ID			15#define S3V_STAT_HDMA_DONE_REG			0x8514#define S3V_STAT_CDMA_DONE_ID			16#define S3V_STAT_CDMA_DONE_REG			0x8524#define S3V_STAT_3D_FIFO_EMPTY_ID		17#define S3V_STAT_3D_FIFO_EMPTY_REG		0x8544#define S3V_STAT_LPB_ID				18#define S3V_STAT_LPB_REG			0x8584#define S3V_STAT_3D_BUSY_ID			19#define S3V_STAT_3D_BUSY_REG			0x8704/*********** * 2D REGS * ***********/#define S3V_BITBLT_ID				30#define S3V_BITBLT_REG				0xA400#define S3V_BITBLT_SRC_BASE_ID			31#define S3V_BITBLT_SRC_BASE_REG			0xA4D4#define S3V_BITBLT_DEST_BASE_ID			32#define S3V_BITBLT_DEST_BASE_REG		0xA4D8#define S3V_BITBLT_CLIP_L_R_ID			33#define S3V_BITBLT_CLIP_L_R_REG			0xA4DC#define S3V_BITBLT_CLIP_T_B_ID			34#define S3V_BITBLT_CLIP_T_B_REG			0xA4E0#define S3V_BITBLT_DEST_SRC_STRIDE_ID		35#define S3V_BITBLT_DEST_SRC_STRIDE_REG		0xA4E4#define S3V_BITBLT_MONO_PAT0_ID			36#define S3V_BITBLT_MONO_PAT0_REG		0xA4E8#define S3V_BITBLT_MONO_PAT1_ID			37#define S3V_BITBLT_MONO_PAT1_REG		0xA4EC#define S3V_BITBLT_PAT_BG_COLOR_ID		38#define S3V_BITBLT_PAT_BG_COLOR_REG		0xA4F0#define S3V_BITBLT_PAT_FG_COLOR_ID		39#define S3V_BITBLT_PAT_FG_COLOR_REG		0xA4F4#define S3V_BITBLT_CMDSET_ID			40#define S3V_BITBLT_CMDSET_REG			0xA500#define S3V_BITBLT_WIDTH_HEIGHT_ID		41#define S3V_BITBLT_WIDTH_HEIGHT_REG		0xA504#define S3V_BITBLT_SRC_X_Y_ID			42#define S3V_BITBLT_SRC_X_Y_REG			0xA508#define S3V_BITBLT_DEST_X_Y_ID			43#define S3V_BITBLT_DEST_X_Y_REG			0xA50C#define S3V_2DLINE_ID				44#define S3V_2DLINE_REG				0xA800#define S3V_2DPOLY_ID				45#define S3V_2DPOLY_REG				0xAC00/*************** * 3DLINE REGS * ***************//* base regs */#define S3V_3DLINE_ID                  		50#define S3V_3DLINE_REG				0xB000#define S3V_3DLINE_Z_BASE_ID           		51#define S3V_3DLINE_Z_BASE_REG			0xB0D4#define S3V_3DLINE_SRC_BASE_ID         		52   /* it is the same reg */#define S3V_3DLINE_SRC_BASE_REG			0xB0D4#define S3V_3DLINE_DEST_BASE_ID        		53#define S3V_3DLINE_DEST_BASE_REG		0xB0D8#define S3V_3DLINE_CLIP_L_R_ID         		54#define S3V_3DLINE_CLIP_L_R_REG			0xB0DC#define S3V_3DLINE_CLIP_T_B_ID			55#define S3V_3DLINE_CLIP_T_B_REG         	0xB0E0#define S3V_3DLINE_DEST_SRC_STRIDE_ID		56#define S3V_3DLINE_DEST_SRC_STRIDE_REG  	0xB0E4#define S3V_3DLINE_Z_STRIDE_ID       		57#define S3V_3DLINE_Z_STRIDE_REG  		0xB0E8#define S3V_3DLINE_TEX_BASE_ID			58#define S3V_3DLINE_TEX_BASE_REG         	0xB0EC#define S3V_3DLINE_TEX_B_COLOR_ID		59#define S3V_3DLINE_TEX_B_COLOR_REG      	0xB0F0#define S3V_3DLINE_FOG_COLOR_ID  		60#define S3V_3DLINE_FOG_COLOR_REG      		0xB0F4#define S3V_3DLINE_COLOR0_ID   			61#define S3V_3DLINE_COLOR0_REG        		0xB0F8#define S3V_3DLINE_COLOR1_ID			62#define S3V_3DLINE_COLOR1_REG           	0xB0FC#define S3V_3DLINE_CMDSET_ID			63#define S3V_3DLINE_CMDSET_REG            	0xB100 /* special *//* tex regs *//* FIXME: shouldn't it be a 1D tex for lines? */#define S3V_3DLINE_BASEV_ID 			64#define S3V_3DLINE_BASEV_REG          		0xB104 #define S3V_3DLINE_BASEU_ID			65#define S3V_3DLINE_BASEU_REG            	0xB108#define S3V_3DLINE_WXD_ID  			66#define S3V_3DLINE_WXD_REG             		0xB10C#define S3V_3DLINE_WYD_ID 			67#define S3V_3DLINE_WYD_REG              	0xB110#define S3V_3DLINE_WSTART_ID			68#define S3V_3DLINE_WSTART_REG          		0xB114#define S3V_3DLINE_DXD_ID   			69#define S3V_3DLINE_DXD_REG          		0xB118#define S3V_3DLINE_VXD_ID			70#define S3V_3DLINE_VXD_REG              	0xB11C#define S3V_3DLINE_UXD_ID			71#define S3V_3DLINE_UXD_REG              	0xB120#define S3V_3DLINE_DYD_ID			72#define S3V_3DLINE_DYD_REG              	0xB124#define S3V_3DLINE_VYD_ID			73#define S3V_3DLINE_VYD_REG              	0xB128#define S3V_3DLINE_UYD_ID			74#define S3V_3DLINE_UYD_REG              	0xB12C#define S3V_3DLINE_DSTART_ID			75#define S3V_3DLINE_DSTART_REG           	0xB130#define S3V_3DLINE_VSTART_ID			76#define S3V_3DLINE_VSTART_REG           	0xB134#define S3V_3DLINE_USTART_ID			77#define S3V_3DLINE_USTART_REG           	0xB138/* gourad regs */#define S3V_3DLINE_GBD_ID   			78#define S3V_3DLINE_GBD_REG            		0xB144#define S3V_3DLINE_ARD_ID 			79#define S3V_3DLINE_ARD_REG             		0xB148#define S3V_3DLINE_GS_BS_ID			80#define S3V_3DLINE_GS_BS_REG            	0xB14C#define S3V_3DLINE_AS_RS_ID			81#define S3V_3DLINE_AS_RS_REG             	0xB150/* vertex regs */#define S3V_3DLINE_DZ_ID    			82#define S3V_3DLINE_DZ_REG            		0xB158#define S3V_3DLINE_ZSTART_ID			83#define S3V_3DLINE_ZSTART_REG            	0xB15C#define S3V_3DLINE_XEND0_END1_ID		84#define S3V_3DLINE_XEND0_END1_REG       	0xB16C#define S3V_3DLINE_DX_ID        		85#define S3V_3DLINE_DX_REG        		0xB170#define S3V_3DLINE_XSTART_ID			86#define S3V_3DLINE_XSTART_REG           	0xB174#define S3V_3DLINE_YSTART_ID 			87#define S3V_3DLINE_YSTART_REG          		0xB178#define S3V_3DLINE_YCNT_ID  			88#define S3V_3DLINE_YCNT_REG           		0xB17C/************** * 3DTRI REGS * **************//* base regs */#define S3V_3DTRI_ID                   		100#define S3V_3DTRI_REG				0xB400#define S3V_3DTRI_Z_BASE_ID			101#define S3V_3DTRI_Z_BASE_REG            	0xB4D4#define S3V_3DTRI_SRC_BASE_ID          		102 /* it is the same reg */#define S3V_3DTRI_SRC_BASE_REG			0xB4D4#define S3V_3DTRI_DEST_BASE_ID         		103#define S3V_3DTRI_DEST_BASE_REG			0xB4D8#define S3V_3DTRI_CLIP_L_R_ID          		104#define S3V_3DTRI_CLIP_L_R_REG 			0xB4DC#define S3V_3DTRI_CLIP_T_B_ID          		105#define S3V_3DTRI_CLIP_T_B_REG			0xB4E0#define S3V_3DTRI_DEST_SRC_STRIDE_ID   		106#define S3V_3DTRI_DEST_SRC_STRIDE_REG		0xB4E4#define S3V_3DTRI_Z_STRIDE_ID          		107#define S3V_3DTRI_Z_STRIDE_REG			0xB4E8#define S3V_3DTRI_TEX_BASE_ID          		108#define S3V_3DTRI_TEX_BASE_REG			0xB4EC#define S3V_3DTRI_TEX_B_COLOR_ID       		109#define S3V_3DTRI_TEX_B_COLOR_REG		0xB4F0#define S3V_3DTRI_FOG_COLOR_ID         		110#define S3V_3DTRI_FOG_COLOR_REG			0xB4F4#define S3V_3DTRI_COLOR0_ID            		111#define S3V_3DTRI_COLOR0_REG			0xB4F8#define S3V_3DTRI_COLOR1_ID            		112#define S3V_3DTRI_COLOR1_REG			0xB4FC#define S3V_3DTRI_CMDSET_ID            		113  /* special */#define S3V_3DTRI_CMDSET_REG			0xB500/* tex regs */#define S3V_3DTRI_BASEV_ID             		114#define S3V_3DTRI_BASEV_REG			0xB504#define S3V_3DTRI_BASEU_ID             		115#define S3V_3DTRI_BASEU_REG			0xB508#define S3V_3DTRI_WXD_ID               		116#define S3V_3DTRI_WXD_REG			0xB50C#define S3V_3DTRI_WYD_ID               		117#define S3V_3DTRI_WYD_REG			0xB510#define S3V_3DTRI_WSTART_ID            		118#define S3V_3DTRI_WSTART_REG 			0xB514#define S3V_3DTRI_DXD_ID               		119#define S3V_3DTRI_DXD_REG			0xB518#define S3V_3DTRI_VXD_ID               		120#define S3V_3DTRI_VXD_REG			0xB51C#define S3V_3DTRI_UXD_ID            		121#define S3V_3DTRI_UXD_REG			0xB520#define S3V_3DTRI_DYD_ID            		122#define S3V_3DTRI_DYD_REG			0xB524#define S3V_3DTRI_VYD_ID            		123#define S3V_3DTRI_VYD_REG			0xB528#define S3V_3DTRI_UYD_ID            		124#define S3V_3DTRI_UYD_REG			0xB52C#define S3V_3DTRI_DSTART_ID         		125#define S3V_3DTRI_DSTART_REG			0xB530#define S3V_3DTRI_VSTART_ID         		126#define S3V_3DTRI_VSTART_REG			0xB534#define S3V_3DTRI_USTART_ID         		127#define S3V_3DTRI_USTART_REG			0xB538/* gourad regs */#define S3V_3DTRI_GBX_ID               		128#define S3V_3DTRI_GBX_REG			0xB53C#define S3V_3DTRI_ARX_ID               		129#define S3V_3DTRI_ARX_REG			0xB540#define S3V_3DTRI_GBY_ID			130#define S3V_3DTRI_GBY_REG               	0xB544#define S3V_3DTRI_ARY_ID			131#define S3V_3DTRI_ARY_REG               	0xB548#define S3V_3DTRI_GS_BS_ID			132#define S3V_3DTRI_GS_BS_REG             	0xB54C#define S3V_3DTRI_AS_RS_ID			133#define S3V_3DTRI_AS_RS_REG             	0xB550/* vertex regs */#define S3V_3DTRI_ZXD_ID               		134#define S3V_3DTRI_ZXD_REG			0xB554#define S3V_3DTRI_ZYD_ID               		135#define S3V_3DTRI_ZYD_REG			0xB558#define S3V_3DTRI_ZSTART_ID            		136#define S3V_3DTRI_ZSTART_REG			0xB55C#define S3V_3DTRI_TXDELTA12_ID         		137#define S3V_3DTRI_TXDELTA12_REG			0xB560#define S3V_3DTRI_TXEND12_ID           		138#define S3V_3DTRI_TXEND12_REG			0xB564#define S3V_3DTRI_TXDELTA01_ID         		139#define S3V_3DTRI_TXDELTA01_REG			0xB568#define S3V_3DTRI_TXEND01_ID           		140#define S3V_3DTRI_TXEND01_REG			0xB56C#define S3V_3DTRI_TXDELTA02_ID         		141#define S3V_3DTRI_TXDELTA02_REG			0xB570#define S3V_3DTRI_TXSTART02_ID         		142#define S3V_3DTRI_TXSTART02_REG			0xB574#define S3V_3DTRI_TYS_ID               		143#define S3V_3DTRI_TYS_REG			0xB578#define S3V_3DTRI_TY01_Y12_ID          		144#define S3V_3DTRI_TY01_Y12_REG			0xB57C/* COMMANDS (to 0xB100 [lines] or 0xB500 [tris]) *//* Auto execute */#define AUTO_EXEC_MASK		0x00000001#define AUTO_EXEC_OFF		(0x0)#define AUTO_EXEC_ON		(0x1)/* HW clipping */#define HW_CLIP_MASK		0x00000002#define HW_CLIP_OFF		(0x0 << 1)#define HW_CLIP_ON		(0x1 << 1)/* Destination color */#define DEST_COL_MASK		0x0000001c#define DEST_COL_PAL		(0x0 << 2)	/* 8 bpp - palettized */#define DEST_COL_1555		(0x1 << 2)	/* 16 bpp - ZRGB */#define DEST_COL_888  		(0x2 << 2)	/* 24 bpp - RGB *//* Texture color */#define TEX_COL_MASK		0x000000e0#define TEX_COL_ARGB8888	(0x0 << 5)	/* 32 bpp - ARGB */#define TEX_COL_ARGB4444	(0x1 << 5)  	/* 16 bpp - ARGB */#define TEX_COL_ARGB1555	(0x2 << 5)  	/* 16 bpp - ARGB */#define TEX_COL_ALPHA4		(0x3 << 5)  	/* 8 bpp - ALPHA4 */#define TEX_COL_BLEND4_LOW 	(0x4 << 5)  	/* 4 bpp - BLEND4 low nibble */#define TEX_COL_BLEND4_HIGH	(0x5 << 5)  	/* 4 bpp - BLEND4 high nibble */#define TEX_COL_PAL		(0x6 << 5)	/* 8 bpp - palettized */#define TEX_COL_YUV		(0x7 << 5)	/* 16 bpp - YUV *//* Mipmap level */#define MIP_MASK		0x00000f00#define MIPMAP_LEVEL(s)		(s << 8)	/* 8 -> 11 bits *//* Texture filtering */#define TEX_FILTER_MASK		0x00007000#define MIP_NEAREST		(0x0 << 12)#define LINEAR_MIP_NEAREST  	(0x1 << 12)#define MIP_LINEAR	        (0x2 << 12)#define LINEAR_MIP_LINEAR   	(0x3 << 12)#define NEAREST		        (0x4 << 12)#define FAST_BILINEAR       	(0x5 << 12)#define LINEAR		        (0x6 << 12)/* Texture blending */#define TEX_BLEND_MAKS		0x00018000#define TEX_REFLECT		(0x0 << 15)#define TEX_MODULATE    	(0x1 << 15)#define TEX_DECAL	        (0x2 << 15)/* Fog */#define FOG_MASK		0x00020000#define FOG_OFF			(0x0 << 17)#define FOG_ON              	(0x1 << 17)/* Alpha blending */#define ALPHA_BLEND_MASK	0x000c0000#define ALPHA_OFF		(0x0 << 18) | (0x0 << 19)#define ALPHA_TEX		(0x2 << 18)#define ALPHA_SRC           	(0x3 << 18)/* Depth compare mode */#define Z_MODE_MASK		0x00700000#define Z_NEVER     		(0x0 << 20)#define Z_GREATER   		(0x1 << 20)#define Z_EQUAL     		(0x2 << 20)#define Z_GEQUAL    		(0x3 << 20)#define Z_LESS      		(0x4 << 20)#define Z_NOTEQUAL  		(0x5 << 20)#define Z_LEQUAL    		(0x6 << 20) #define Z_ALWAYS   		(0x7 << 20)/* Depth update */#define Z_UPDATE_MASK		0x00800000#define Z_UPDATE_OFF		(0x0 << 23)	/* disable z update */#define Z_UPDATE_ON         	(0x1 << 23)/* Depth buffering mode */#define Z_BUFFER_MASK		0x03000000#define Z_BUFFER		(0x0 << 24) | (0x0 << 25)#define Z_MUX_BUF		(0x1 << 24) | (0x0 << 25)#define Z_MUX_DRAW		(0x2 << 24)#define Z_OFF			(0x3 << 24) /* no z buffering *//* Texture wrapping */#define TEX_WRAP_MASK		0x04000000#define TEX_WRAP_OFF		(0x0 << 26)#define TEX_WRAP_ON		(0x1 << 26)/* 3d command */#define DO_MASK			0x78000000#define DO_GOURAUD_TRI		(0x0 << 27)#define DO_TEX_LIT_TRI_OLD	(0x1 << 27) #define DO_TEX_UNLIT_TRI_OLD 	(0x2 << 27)#define DO_TEX_LIT_TRI		(0x5 << 27)#define DO_TEX_UNLIT_TRI	(0x6 << 27)#define DO_3D_LINE		(0x8 << 27)#define	DO_NOP			(0xf << 27) /* turn on autoexec *//* status */#define CMD_MASK		0x80000000#define CMD_2D			(0x0 << 31) /* execute a 2d cmd */#define CMD_3D			(0x1 << 31) /* execute a 3d cmd *//* global masks */#define TEX_MASK		( TEX_COL_MASK | TEX_WRAP_MASK | MIP_MASK \				| TEX_FILTER_MASK | TEX_BLEND_MAKS \				| TEX_WRAP_MASK )#define Z_MASK			( Z_MODE_MASK | Z_UPDATE_MASK | Z_BUFFER_MASK )#endif /* _S3V_REG_H */

⌨️ 快捷键说明

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