#ifndef __R300_REGS_H__ #define __R300_REGS_H__ #define R300_GB_VAP_RASTER_VTX_FMT_0 0x4000 #define R300_GB_VAP_RASTER_VTX_FMT_0__POS_PRESENT (1<<0) #define R300_GB_VAP_RASTER_VTX_FMT_0__COLOR_0_PRESENT (1<<1) #define R300_GB_VAP_RASTER_VTX_FMT_0__COLOR_1_PRESENT (1<<2) #define R300_GB_VAP_RASTER_VTX_FMT_0__COLOR_2_PRESENT (1<<3) #define R300_GB_VAP_RASTER_VTX_FMT_0__COLOR_3_PRESENT (1<<4) #define R300_GB_VAP_RASTER_VTX_FMT_0__COLOR_SPACE (0xf<<5) #define R300_GB_VAP_RASTER_VTX_FMT_0__PT_SIZE_PRESENT (0x1<<16) #define R300_GB_VAP_RASTER_VTX_FMT_1 0x4004 /* each of the following is 3 bits wide, specifies number of components */ #define R300_GB_VAP_RASTER_VTX_FMT_1__TEX_0_COMP_CNT_SHIFT 0 #define R300_GB_VAP_RASTER_VTX_FMT_1__TEX_1_COMP_CNT_SHIFT 3 #define R300_GB_VAP_RASTER_VTX_FMT_1__TEX_2_COMP_CNT_SHIFT 6 #define R300_GB_VAP_RASTER_VTX_FMT_1__TEX_3_COMP_CNT_SHIFT 9 #define R300_GB_VAP_RASTER_VTX_FMT_1__TEX_4_COMP_CNT_SHIFT 12 #define R300_GB_VAP_RASTER_VTX_FMT_1__TEX_5_COMP_CNT_SHIFT 15 #define R300_GB_VAP_RASTER_VTX_FMT_1__TEX_6_COMP_CNT_SHIFT 18 #define R300_GB_VAP_RASTER_VTX_FMT_1__TEX_7_COMP_CNT_SHIFT 21 #define R300_GB_MSPOS0 0x4010 /* shifts - each of the fields is 4 bits */ #define R300_GB_MSPOS0__MS_X0_SHIFT 0 #define R300_GB_MSPOS0__MS_Y0_SHIFT 4 #define R300_GB_MSPOS0__MS_X1_SHIFT 8 #define R300_GB_MSPOS0__MS_Y1_SHIFT 12 #define R300_GB_MSPOS0__MS_X2_SHIFT 16 #define R300_GB_MSPOS0__MS_Y2_SHIFT 20 #define R300_GB_MSPOS0__MSBD0_Y 24 #define R300_GB_MSPOS0__MSBD0_X 28 #define R300_GB_MSPOS0 0x4014 #define R300_GB_MSPOS0__MS_X3_SHIFT 0 #define R300_GB_MSPOS0__MS_Y3_SHIFT 4 #define R300_GB_MSPOS0__MS_X4_SHIFT 8 #define R300_GB_MSPOS0__MS_Y4_SHIFT 12 #define R300_GB_MSPOS0__MS_X5_SHIFT 16 #define R300_GB_MSPOS0__MS_Y5_SHIFT 20 #define R300_GB_MSPOS0__MSBD1 24 #define R300_GB_ENABLE 0x4008 #define R300_GB_POINT_STUFF_ENABLE (1<<0) #define R300_GB_LINE_STUFF_ENABLE (1<<1) #define R300_GB_TRIANGLE_STUFF_ENABLE (1<<2) #define R300_GB_STENCIL_AUTO_ENABLE (1<<4) /* each of the following is 2 bits wide */ #define R300_GB_TEX_REPLICATE 0 #define R300_GB_TEX_ST 1 #define R300_GB_TEX_STR 2 #define R300_GB_TEX0_SOURCE_SHIFT 16 #define R300_GB_TEX1_SOURCE_SHIFT 16 #define R300_GB_TEX2_SOURCE_SHIFT 16 #define R300_GB_TEX3_SOURCE_SHIFT 16 #define R300_GB_TEX4_SOURCE_SHIFT 16 #define R300_GB_TEX5_SOURCE_SHIFT 16 #define R300_GB_TEX6_SOURCE_SHIFT 16 #define R300_GB_TEX7_SOURCE_SHIFT 16 #define R300_GB_TILE_CONFIG 0x4018 #define R300_GB_TILE_ENABLE (1<<0) #define R300_GB_TILE_PIPE_COUNT_R300 0 #define R300_GB_TILE_PIPE_COUNT_RV300 (3<<1) #define R300_GB_TILE_SIZE_8 0 #define R300_GB_TILE_SIZE_16 (1<<4) #define R300_GB_TILE_SIZE_32 (2<<4) #define R300_GB_SUPER_SIZE_1 (0<<6) #define R300_GB_SUPER_SIZE_2 (1<<6) #define R300_GB_SUPER_SIZE_4 (2<<6) #define R300_GB_SUPER_SIZE_8 (3<<6) #define R300_GB_SUPER_SIZE_16 (4<<6) #define R300_GB_SUPER_SIZE_32 (5<<6) #define R300_GB_SUPER_SIZE_64 (6<<6) #define R300_GB_SUPER_SIZE_128 (7<<6) #define R300_GB_SUPER_X_SHIFT 9 /* 3 bits wide */ #define R300_GB_SUPER_Y_SHIFT 12 /* 3 bits wide */ #define R300_GB_SUPER_TILE_A 0 #define R300_GB_SUPER_TILE_B (1<<15) #define R300_GB_SUBPIXEL_1_12 0 #define R300_GB_SUBPIXEL_1_16 (1<<16) #define R300_GB_FIFO_SIZE 0x4024 /* each of the following is 2 bits wide */ #define R300_GB_FIFO_SIZE_32 0 #define R300_GB_FIFO_SIZE_64 1 #define R300_GB_FIFO_SIZE_128 2 #define R300_GB_FIFO_SIZE_256 3 #define R300_SC_IFIFO_SIZE_SHIFT 0 #define R300_SC_TZFIFO_SIZE_SHIFT 2 #define R300_SC_BFIFO_SIZE_SHIFT 4 #define R300_US_OFIFO_SIZE_SHIFT 12 #define R300_US_WFIFO_SIZE_SHIFT 12 /* the following use the same constants as above, but meaning is is times 2 (i.e. instead of 32 words it means 64 */ #define R300_RS_TFIFO_SIZE_SHIFT 6 #define R300_RS_CFIFO_SIZE_SHIFT 8 #define R300_US_RAM_SIZE_SHIFT 10 /* watermarks, 3 bits wide */ #define R300_RS_HIGHWATER_COL_SHIFT 16 #define R300_RS_HIGHWATER_TEX_SHIFT 19 #define R300_OFIFO_HIGHWATER_SHIFT 22 /* two bits only */ #define R300_CUBE_FIFO_HIGHWATER_COL_SHIFT 24 #define R300_GB_SELECT 0x401C #define R300_GB_FOG_SELECT_C0A 0 #define R300_GB_FOG_SELECT_C1A 1 #define R300_GB_FOG_SELECT_C2A 2 #define R300_GB_FOG_SELECT_C3A 3 #define R300_GB_FOG_SELECT_1_1_W 4 #define R300_GB_FOG_SELECT_Z 5 #define R300_GB_DEPTH_SELECT_Z 0 #define R300_GB_DEPTH_SELECT_1_1_W (1<<3) #define R300_GB_W_SELECT_1_W 0 #define R300_GB_W_SELECT_1 (1<<4) #define R300_GB_AA_CONFIG 0x4020 #define R300_AA_ENABLE 0x01 #define R300_AA_SUBSAMPLES_2 0 #define R300_AA_SUBSAMPLES_3 (1<<1) #define R300_AA_SUBSAMPLES_4 (2<<1) #define R300_AA_SUBSAMPLES_6 (3<<1) #endif