-/* $XFree86$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/r200/r200_reg.h,v 1.2 2002/12/16 16:18:54 dawes Exp $ */
/*
Copyright (C) The Weather Channel, Inc. 2002. All Rights Reserved.
#define R200_FOG_USE_DIFFUSE_ALPHA (2 << 25)
#define R200_FOG_USE_SPEC_ALPHA (3 << 25)
#define R200_FOG_USE_VTX_FOG (4 << 25)
+#define R200_FOG_USE_MASK (7 << 25)
#define R200_RE_SOLID_COLOR 0x1c1c
#define R200_RB3D_BLENDCNTL 0x1c20
#define R200_COMB_FCN_MASK (7 << 12)
#define R200_COMB_FCN_MAX (5 << 12)
#define R200_COMB_FCN_RSUB_CLAMP (6 << 12)
#define R200_COMB_FCN_RSUB_NOCLAMP (7 << 12)
-#define R200_SRC_BLEND_GL_ZERO (32 << 16)
-#define R200_SRC_BLEND_GL_ONE (33 << 16)
-#define R200_SRC_BLEND_GL_SRC_COLOR (34 << 16)
-#define R200_SRC_BLEND_GL_ONE_MINUS_SRC_COLOR (35 << 16)
-#define R200_SRC_BLEND_GL_DST_COLOR (36 << 16)
-#define R200_SRC_BLEND_GL_ONE_MINUS_DST_COLOR (37 << 16)
-#define R200_SRC_BLEND_GL_SRC_ALPHA (38 << 16)
-#define R200_SRC_BLEND_GL_ONE_MINUS_SRC_ALPHA (39 << 16)
-#define R200_SRC_BLEND_GL_DST_ALPHA (40 << 16)
-#define R200_SRC_BLEND_GL_ONE_MINUS_DST_ALPHA (41 << 16)
-#define R200_SRC_BLEND_GL_SRC_ALPHA_SATURATE (42 << 16)
-#define R200_SRC_BLEND_GL_CONST_COLOR (43 << 16)
-#define R200_SRC_BLEND_GL_ONE_MINUS_CONST_COLOR (44 << 16)
-#define R200_SRC_BLEND_GL_CONST_ALPHA (45 << 16)
-#define R200_SRC_BLEND_GL_ONE_MINUS_CONST_ALPHA (46 << 16)
-#define R200_SRC_BLEND_MASK (63 << 16)
-#define R200_DST_BLEND_GL_ZERO (32 << 24)
-#define R200_DST_BLEND_GL_ONE (33 << 24)
-#define R200_DST_BLEND_GL_SRC_COLOR (34 << 24)
-#define R200_DST_BLEND_GL_ONE_MINUS_SRC_COLOR (35 << 24)
-#define R200_DST_BLEND_GL_DST_COLOR (36 << 24)
-#define R200_DST_BLEND_GL_ONE_MINUS_DST_COLOR (37 << 24)
-#define R200_DST_BLEND_GL_SRC_ALPHA (38 << 24)
-#define R200_DST_BLEND_GL_ONE_MINUS_SRC_ALPHA (39 << 24)
-#define R200_DST_BLEND_GL_DST_ALPHA (40 << 24)
-#define R200_DST_BLEND_GL_ONE_MINUS_DST_ALPHA (41 << 24)
-#define R200_DST_BLEND_GL_CONST_COLOR (43 << 24)
-#define R200_DST_BLEND_GL_ONE_MINUS_CONST_COLOR (44 << 24)
-#define R200_DST_BLEND_GL_CONST_ALPHA (45 << 24)
-#define R200_DST_BLEND_GL_ONE_MINUS_CONST_ALPHA (46 << 24)
-#define R200_DST_BLEND_MASK (63 << 24)
-#define R200_RB3D_DEPTHOFFSET 0x1c24
-#define R200_RB3D_DEPTHPITCH 0x1c28
+#define R200_BLEND_GL_ZERO (32)
+#define R200_BLEND_GL_ONE (33)
+#define R200_BLEND_GL_SRC_COLOR (34)
+#define R200_BLEND_GL_ONE_MINUS_SRC_COLOR (35)
+#define R200_BLEND_GL_DST_COLOR (36)
+#define R200_BLEND_GL_ONE_MINUS_DST_COLOR (37)
+#define R200_BLEND_GL_SRC_ALPHA (38)
+#define R200_BLEND_GL_ONE_MINUS_SRC_ALPHA (39)
+#define R200_BLEND_GL_DST_ALPHA (40)
+#define R200_BLEND_GL_ONE_MINUS_DST_ALPHA (41)
+#define R200_BLEND_GL_SRC_ALPHA_SATURATE (42) /* src factor only */
+#define R200_BLEND_GL_CONST_COLOR (43)
+#define R200_BLEND_GL_ONE_MINUS_CONST_COLOR (44)
+#define R200_BLEND_GL_CONST_ALPHA (45)
+#define R200_BLEND_GL_ONE_MINUS_CONST_ALPHA (46)
+#define R200_BLEND_MASK (63)
+#define R200_SRC_BLEND_SHIFT (16)
+#define R200_DST_BLEND_SHIFT (24)
+#define R200_RB3D_DEPTHOFFSET 0x1c24
+#define R200_RB3D_DEPTHPITCH 0x1c28
#define R200_DEPTHPITCH_MASK 0x00001ff8
+#define R200_DEPTH_HYPERZ (3 << 16)
#define R200_DEPTH_ENDIAN_NO_SWAP (0 << 18)
#define R200_DEPTH_ENDIAN_WORD_SWAP (1 << 18)
#define R200_DEPTH_ENDIAN_DWORD_SWAP (2 << 18)
#define R200_Z_TEST_NEQUAL (6 << 4)
#define R200_Z_TEST_ALWAYS (7 << 4)
#define R200_Z_TEST_MASK (7 << 4)
+#define R200_Z_HIERARCHY_ENABLE (1 << 8)
#define R200_STENCIL_TEST_NEVER (0 << 12)
#define R200_STENCIL_TEST_LESS (1 << 12)
#define R200_STENCIL_TEST_LEQUAL (2 << 12)
#define R200_STENCIL_ZFAIL_INC_WRAP (6 << 24)
#define R200_STENCIL_ZFAIL_DEC_WRAP (7 << 24)
#define R200_STENCIL_ZFAIL_MASK (0x7 << 24)
+#define R200_Z_COMPRESSION_ENABLE (1 << 28)
+#define R200_FORCE_Z_DIRTY (1 << 29)
#define R200_Z_WRITE_ENABLE (1 << 30)
+#define R200_Z_DECOMPRESSION_ENABLE (1 << 31)
/*gap*/
#define R200_PP_CNTL 0x1c38
#define R200_TEX_0_ENABLE 0x00000010
#define R200_TEX_BLEND_4_ENABLE 0x00010000
#define R200_TEX_BLEND_5_ENABLE 0x00020000
#define R200_TEX_BLEND_6_ENABLE 0x00040000
+#define R200_TEX_BLEND_ENABLE_MASK 0x0007f800
+#define R200_TEX_BLEND_0_ENABLE_SHIFT (12)
#define R200_MULTI_PASS_ENABLE 0x00080000
#define R200_SPECULAR_ENABLE 0x00200000
#define R200_FOG_ENABLE 0x00400000
#define R200_RE_HEIGHT_SHIFT 16
#define R200_RB3D_COLORPITCH 0x1c48
#define R200_COLORPITCH_MASK 0x000001ff8
+#define R200_COLOR_TILE_ENABLE (1 << 16)
+#define R200_COLOR_MICROTILE_ENABLE (1 << 17)
#define R200_COLOR_ENDIAN_NO_SWAP (0 << 18)
#define R200_COLOR_ENDIAN_WORD_SWAP (1 << 18)
#define R200_COLOR_ENDIAN_DWORD_SWAP (2 << 18)
#define R200_OUTPUT_TEX_4 (1<<20)
#define R200_OUTPUT_TEX_5 (1<<21)
#define R200_OUTPUT_TEX_MASK (0x3f<<16)
+#define R200_OUTPUT_DISCRETE_FOG (1<<24)
#define R200_OUTPUT_PT_SIZE (1<<25)
#define R200_FORCE_INORDER_PROC (1<<31)
#define R200_SE_TCL_INPUT_VTX_VECTOR_ADDR_0 0x2254
#define R200_LIGHT_7_SHIFT (16)
/* gap */
#define R200_SE_TCL_TEX_PROC_CTL_2 0x22a8
+#define R200_TEXGEN_COMP_MASK (0xf)
+#define R200_TEXGEN_COMP_S (0x1)
+#define R200_TEXGEN_COMP_T (0x2)
+#define R200_TEXGEN_COMP_R (0x4)
+#define R200_TEXGEN_COMP_Q (0x8)
#define R200_TEXGEN_0_COMP_MASK_SHIFT (0)
#define R200_TEXGEN_1_COMP_MASK_SHIFT (4)
#define R200_TEXGEN_2_COMP_MASK_SHIFT (8)
#define R200_CULL_FRONT (1<<29)
#define R200_CULL_BACK (1<<30)
#define R200_SE_TCL_POINT_SPRITE_CNTL 0x22c4
+#define R200_POINTSIZE_SEL_STATE (1<<16)
/* gap */
#define R200_SE_VTX_ST_POS_0_X_4 0x2300
#define R200_SE_VTX_ST_POS_0_Y_4 0x2304
#define R200_TXFORMAT_DXT1 (12 << 0)
#define R200_TXFORMAT_DXT23 (14 << 0)
#define R200_TXFORMAT_DXT45 (15 << 0)
+#define R200_TXFORMAT_DVDU88 (18 << 0)
+#define R200_TXFORMAT_LDVDU655 (19 << 0)
+#define R200_TXFORMAT_LDVDU8888 (20 << 0)
+#define R200_TXFORMAT_GR1616 (21 << 0)
+#define R200_TXFORMAT_ABGR8888 (22 << 0)
+#define R200_TXFORMAT_BGR111110 (23 << 0)
#define R200_TXFORMAT_FORMAT_MASK (31 << 0)
#define R200_TXFORMAT_FORMAT_SHIFT 0
+#define R200_TXFORMAT_APPLE_YUV (1 << 5)
#define R200_TXFORMAT_ALPHA_IN_MAP (1 << 6)
#define R200_TXFORMAT_NON_POWER2 (1 << 7)
#define R200_TXFORMAT_WIDTH_MASK (15 << 8)
#define R200_TXFORMAT_ST_ROUTE_STQ5 (5 << 24)
#define R200_TXFORMAT_ST_ROUTE_MASK (7 << 24)
#define R200_TXFORMAT_ST_ROUTE_SHIFT 24
+#define R200_TXFORMAT_LOOKUP_DISABLE (1 << 27)
#define R200_TXFORMAT_ALPHA_MASK_ENABLE (1 << 28)
#define R200_TXFORMAT_CHROMA_KEY_ENABLE (1 << 29)
#define R200_TXFORMAT_CUBIC_MAP_ENABLE (1 << 30)
#define R200_FACE_HEIGHT_4_SHIFT 28
#define R200_FACE_WIDTH_4_MASK (0xf << 24)
#define R200_FACE_HEIGHT_4_MASK (0xf << 28)
-#define R200_PP_TXFILTER_1 0x2c20
+#define R200_PP_TXMULTI_CTL_0 0x2c1c /* name from ddx, rest RE... */
+#define R200_PASS1_TXFORMAT_LOOKUP_DISABLE (1 << 0)
+#define R200_PASS1_TEXCOORD_NONPROJ (0 << 1)
+#define R200_PASS1_TEXCOORD_CUBIC_ENV (1 << 1)
+#define R200_PASS1_TEXCOORD_VOLUME (2 << 1)
+#define R200_PASS1_TEXCOORD_PROJ (3 << 1)
+#define R200_PASS1_TEXCOORD_DEPTH (4 << 1)
+#define R200_PASS1_TEXCOORD_1D_PROJ (5 << 1)
+#define R200_PASS1_TEXCOORD_1D (6 << 1) /* pass1 texcoords only */
+#define R200_PASS1_TEXCOORD_ZERO (7 << 1) /* verifed for 2d targets! */
+#define R200_PASS1_TEXCOORD_MASK (7 << 1) /* assumed same values as for pass2 */
+#define R200_PASS1_ST_ROUTE_STQ0 (0 << 4)
+#define R200_PASS1_ST_ROUTE_STQ1 (1 << 4)
+#define R200_PASS1_ST_ROUTE_STQ2 (2 << 4)
+#define R200_PASS1_ST_ROUTE_STQ3 (3 << 4)
+#define R200_PASS1_ST_ROUTE_STQ4 (4 << 4)
+#define R200_PASS1_ST_ROUTE_STQ5 (5 << 4)
+#define R200_PASS1_ST_ROUTE_MASK (7 << 4)
+#define R200_PASS1_ST_ROUTE_SHIFT (4)
+#define R200_PASS2_COORDS_REG_0 (2 << 24)
+#define R200_PASS2_COORDS_REG_1 (3 << 24)
+#define R200_PASS2_COORDS_REG_2 (4 << 24)
+#define R200_PASS2_COORDS_REG_3 (5 << 24)
+#define R200_PASS2_COORDS_REG_4 (6 << 24)
+#define R200_PASS2_COORDS_REG_5 (7 << 24)
+#define R200_PASS2_COORDS_REG_MASK (0x7 << 24)
+#define R200_PASS2_COORDS_REG_SHIFT (24)
+#define R200_PP_TXFILTER_1 0x2c20
#define R200_PP_TXFORMAT_1 0x2c24
#define R200_PP_TXFORMAT_X_1 0x2c28
#define R200_PP_TXSIZE_1 0x2c2c
#define R200_PP_TXPITCH_1 0x2c30
#define R200_PP_BORDER_COLOR_1 0x2c34
#define R200_PP_CUBIC_FACES_1 0x2c38
-#define R200_PP_TXFILTER_2 0x2c40
+#define R200_PP_TXMULTI_CTL_1 0x2c3c
+#define R200_PP_TXFILTER_2 0x2c40
#define R200_PP_TXFORMAT_2 0x2c44
#define R200_PP_TXSIZE_2 0x2c4c
#define R200_PP_TXFORMAT_X_2 0x2c48
#define R200_PP_TXPITCH_2 0x2c50
#define R200_PP_BORDER_COLOR_2 0x2c54
#define R200_PP_CUBIC_FACES_2 0x2c58
-#define R200_PP_TXFILTER_3 0x2c60
+#define R200_PP_TXMULTI_CTL_2 0x2c5c
+#define R200_PP_TXFILTER_3 0x2c60
#define R200_PP_TXFORMAT_3 0x2c64
#define R200_PP_TXSIZE_3 0x2c6c
#define R200_PP_TXFORMAT_X_3 0x2c68
#define R200_PP_TXPITCH_3 0x2c70
#define R200_PP_BORDER_COLOR_3 0x2c74
#define R200_PP_CUBIC_FACES_3 0x2c78
-#define R200_PP_TXFILTER_4 0x2c80
+#define R200_PP_TXMULTI_CTL_3 0x2c7c
+#define R200_PP_TXFILTER_4 0x2c80
#define R200_PP_TXFORMAT_4 0x2c84
#define R200_PP_TXSIZE_4 0x2c8c
#define R200_PP_TXFORMAT_X_4 0x2c88
#define R200_PP_TXPITCH_4 0x2c90
#define R200_PP_BORDER_COLOR_4 0x2c94
#define R200_PP_CUBIC_FACES_4 0x2c98
-#define R200_PP_TXFILTER_5 0x2ca0
+#define R200_PP_TXMULTI_CTL_4 0x2c9c
+#define R200_PP_TXFILTER_5 0x2ca0
#define R200_PP_TXFORMAT_5 0x2ca4
#define R200_PP_TXSIZE_5 0x2cac
#define R200_PP_TXFORMAT_X_5 0x2ca8
#define R200_PP_TXPITCH_5 0x2cb0
#define R200_PP_BORDER_COLOR_5 0x2cb4
#define R200_PP_CUBIC_FACES_5 0x2cb8
+#define R200_PP_TXMULTI_CTL_5 0x2cbc
/* gap */
-#define R200_PP_CNTL_X 0x2cc4
+#define R200_PP_CNTL_X 0x2cc4 /* Reveree engineered from fglrx */
+#define R200_PPX_TEX_0_ENABLE (1 << 0)
+#define R200_PPX_TEX_1_ENABLE (1 << 1)
+#define R200_PPX_TEX_2_ENABLE (1 << 2)
+#define R200_PPX_TEX_3_ENABLE (1 << 3)
+#define R200_PPX_TEX_4_ENABLE (1 << 4)
+#define R200_PPX_TEX_5_ENABLE (1 << 5)
+#define R200_PPX_TEX_ENABLE_MASK (0x3f << 0)
+#define R200_PPX_OUTPUT_REG_0 (1 << 6)
+#define R200_PPX_OUTPUT_REG_1 (1 << 7)
+#define R200_PPX_OUTPUT_REG_2 (1 << 8)
+#define R200_PPX_OUTPUT_REG_3 (1 << 9)
+#define R200_PPX_OUTPUT_REG_4 (1 << 10)
+#define R200_PPX_OUTPUT_REG_5 (1 << 11)
+#define R200_PPX_OUTPUT_REG_MASK (0x3f << 6)
+#define R200_PPX_OUTPUT_REG_0_SHIFT (6)
+#define R200_PPX_PFS_INST0_ENABLE (1 << 12)
+#define R200_PPX_PFS_INST1_ENABLE (1 << 13)
+#define R200_PPX_PFS_INST2_ENABLE (1 << 14)
+#define R200_PPX_PFS_INST3_ENABLE (1 << 15)
+#define R200_PPX_PFS_INST4_ENABLE (1 << 16)
+#define R200_PPX_PFS_INST5_ENABLE (1 << 17)
+#define R200_PPX_PFS_INST6_ENABLE (1 << 18)
+#define R200_PPX_PFS_INST7_ENABLE (1 << 19)
+#define R200_PPX_PFS_INST_ENABLE_MASK (0xff << 12)
+#define R200_PPX_FPS_INST0_ENABLE_SHIFT (12)
/* gap */
+#define R200_PP_TRI_PERF 0x2cf8
+#define R200_TRI_CUTOFF_MASK (0x1f << 0)
+#define R200_PP_PERF_CNTL 0x2cfc
#define R200_PP_TXOFFSET_0 0x2d00
#define R200_TXO_ENDIAN_NO_SWAP (0 << 0)
#define R200_TXO_ENDIAN_BYTE_SWAP (1 << 0)
#define R200_TXO_ENDIAN_WORD_SWAP (2 << 0)
#define R200_TXO_ENDIAN_HALFDW_SWAP (3 << 0)
+#define R200_TXO_MACRO_TILE (1 << 2)
+#define R200_TXO_MICRO_TILE (1 << 3)
#define R200_TXO_OFFSET_MASK 0xffffffe0
#define R200_TXO_OFFSET_SHIFT 5
#define R200_PP_CUBIC_OFFSET_F1_0 0x2d04
#define R200_PP_TFACTOR_3 0x2eec
#define R200_PP_TFACTOR_4 0x2ef0
#define R200_PP_TFACTOR_5 0x2ef4
-/* gap */
+#define R200_PP_TFACTOR_6 0x2ef8
+#define R200_PP_TFACTOR_7 0x2efc
#define R200_PP_TXCBLEND_0 0x2f00
#define R200_TXC_ARG_A_ZERO (0)
#define R200_TXC_ARG_A_CURRENT_COLOR (2)
#define R200_TXC_CLAMP_WRAP (0 << 12)
#define R200_TXC_CLAMP_0_1 (1 << 12)
#define R200_TXC_CLAMP_8_8 (2 << 12)
+#define R200_TXC_OUTPUT_REG_SHIFT 16
#define R200_TXC_OUTPUT_REG_MASK (7 << 16)
#define R200_TXC_OUTPUT_REG_NONE (0 << 16)
#define R200_TXC_OUTPUT_REG_R0 (1 << 16)
#define R200_TXA_CLAMP_WRAP (0 << 12)
#define R200_TXA_CLAMP_0_1 (1 << 12)
#define R200_TXA_CLAMP_8_8 (2 << 12)
+#define R200_TXA_OUTPUT_REG_SHIFT 16
#define R200_TXA_OUTPUT_REG_MASK (7 << 16)
#define R200_TXA_OUTPUT_REG_NONE (0 << 16)
#define R200_TXA_OUTPUT_REG_R0 (1 << 16)
#define R200_PP_TXCBLEND2_7 0x2f74
#define R200_PP_TXABLEND_7 0x2f78
#define R200_PP_TXABLEND2_7 0x2f7c
+#define R200_PP_TXCBLEND_8 0x2f80
+#define R200_PP_TXCBLEND2_8 0x2f84
+#define R200_PP_TXABLEND_8 0x2f88
+#define R200_PP_TXABLEND2_8 0x2f8c
+#define R200_PP_TXCBLEND_9 0x2f90
+#define R200_PP_TXCBLEND2_9 0x2f94
+#define R200_PP_TXABLEND_9 0x2f98
+#define R200_PP_TXABLEND2_9 0x2f9c
+#define R200_PP_TXCBLEND_10 0x2fa0
+#define R200_PP_TXCBLEND2_10 0x2fa4
+#define R200_PP_TXABLEND_10 0x2fa8
+#define R200_PP_TXABLEND2_10 0x2fac
+#define R200_PP_TXCBLEND_11 0x2fb0
+#define R200_PP_TXCBLEND2_11 0x2fb4
+#define R200_PP_TXABLEND_11 0x2fb8
+#define R200_PP_TXABLEND2_11 0x2fbc
+#define R200_PP_TXCBLEND_12 0x2fc0
+#define R200_PP_TXCBLEND2_12 0x2fc4
+#define R200_PP_TXABLEND_12 0x2fc8
+#define R200_PP_TXABLEND2_12 0x2fcc
+#define R200_PP_TXCBLEND_13 0x2fd0
+#define R200_PP_TXCBLEND2_13 0x2fd4
+#define R200_PP_TXABLEND_13 0x2fd8
+#define R200_PP_TXABLEND2_13 0x2fdc
+#define R200_PP_TXCBLEND_14 0x2fe0
+#define R200_PP_TXCBLEND2_14 0x2fe4
+#define R200_PP_TXABLEND_14 0x2fe8
+#define R200_PP_TXABLEND2_14 0x2fec
+#define R200_PP_TXCBLEND_15 0x2ff0
+#define R200_PP_TXCBLEND2_15 0x2ff4
+#define R200_PP_TXABLEND_15 0x2ff8
+#define R200_PP_TXABLEND2_15 0x2ffc
/* gap */
+#define R200_RB3D_BLENDCOLOR 0x3218 /* ARGB 8888 */
#define R200_RB3D_ABLENDCNTL 0x321C /* see BLENDCTL */
#define R200_RB3D_CBLENDCNTL 0x3220 /* see BLENDCTL */
#define R200_CP_CMD_BITBLT_MULTI 0xC0009B00
#define R200_CP_CMD_TRANS_BITBLT 0xC0009C00
-
-#define R200_AGP_TEX_OFFSET 0x02000000
-
-
-
-
#endif