1/* 2 Copyright (c) 2002, Thomas Kurschel 3 4 5 Part of Radeon driver 6 7 3D registers 8*/ 9 10 11#ifndef _3D_REGS_H 12#define _3D_REGS_H 13 14 15#define RADEON_PP_BORDER_COLOR_0 0x1d40 16#define RADEON_PP_BORDER_COLOR_1 0x1d44 17#define RADEON_PP_BORDER_COLOR_2 0x1d48 18#define RADEON_PP_CNTL 0x1c38 19# define RADEON_STIPPLE_ENABLE (1 << 0) 20# define RADEON_SCISSOR_ENABLE (1 << 1) 21# define RADEON_PATTERN_ENABLE (1 << 2) 22# define RADEON_SHADOW_ENABLE (1 << 3) 23# define RADEON_TEX_ENABLE_MASK (0xf << 4) 24# define RADEON_TEX_0_ENABLE (1 << 4) 25# define RADEON_TEX_1_ENABLE (1 << 5) 26# define RADEON_TEX_2_ENABLE (1 << 6) 27# define RADEON_TEX_3_ENABLE (1 << 7) 28# define RADEON_TEX_BLEND_ENABLE_MASK (0xf << 12) 29# define RADEON_TEX_BLEND_0_ENABLE (1 << 12) 30# define RADEON_TEX_BLEND_1_ENABLE (1 << 13) 31# define RADEON_TEX_BLEND_2_ENABLE (1 << 14) 32# define RADEON_TEX_BLEND_3_ENABLE (1 << 15) 33# define RADEON_PLANAR_YUV_ENABLE (1 << 20) 34# define RADEON_SPECULAR_ENABLE (1 << 21) 35# define RADEON_FOG_ENABLE (1 << 22) 36# define RADEON_ALPHA_TEST_ENABLE (1 << 23) 37# define RADEON_ANTI_ALIAS_NONE (0 << 24) 38# define RADEON_ANTI_ALIAS_LINE (1 << 24) 39# define RADEON_ANTI_ALIAS_POLY (2 << 24) 40# define RADEON_ANTI_ALIAS_LINE_POLY (3 << 24) 41# define RADEON_BUMP_MAP_ENABLE (1 << 26) 42# define RADEON_BUMPED_MAP_T0 (0 << 27) 43# define RADEON_BUMPED_MAP_T1 (1 << 27) 44# define RADEON_BUMPED_MAP_T2 (2 << 27) 45# define RADEON_TEX_3D_ENABLE_0 (1 << 29) 46# define RADEON_TEX_3D_ENABLE_1 (1 << 30) 47# define RADEON_MC_ENABLE (1 << 31) 48#define RADEON_PP_FOG_COLOR 0x1c18 49# define RADEON_FOG_COLOR_MASK 0x00ffffff 50# define RADEON_FOG_VERTEX (0 << 24) 51# define RADEON_FOG_TABLE (1 << 24) 52# define RADEON_FOG_USE_DEPTH (0 << 25) 53# define RADEON_FOG_USE_DIFFUSE_ALPHA (2 << 25) 54# define RADEON_FOG_USE_SPEC_ALPHA (3 << 25) 55#define RADEON_PP_LUM_MATRIX 0x1d00 56#define RADEON_PP_MISC 0x1c14 57# define RADEON_REF_ALPHA_MASK 0x000000ff 58# define RADEON_ALPHA_TEST_FAIL (0 << 8) 59# define RADEON_ALPHA_TEST_LESS (1 << 8) 60# define RADEON_ALPHA_TEST_LEQUAL (2 << 8) 61# define RADEON_ALPHA_TEST_EQUAL (3 << 8) 62# define RADEON_ALPHA_TEST_GEQUAL (4 << 8) 63# define RADEON_ALPHA_TEST_GREATER (5 << 8) 64# define RADEON_ALPHA_TEST_NEQUAL (6 << 8) 65# define RADEON_ALPHA_TEST_PASS (7 << 8) 66# define RADEON_ALPHA_TEST_OP_MASK (7 << 8) 67# define RADEON_CHROMA_FUNC_FAIL (0 << 16) 68# define RADEON_CHROMA_FUNC_PASS (1 << 16) 69# define RADEON_CHROMA_FUNC_NEQUAL (2 << 16) 70# define RADEON_CHROMA_FUNC_EQUAL (3 << 16) 71# define RADEON_CHROMA_KEY_NEAREST (0 << 18) 72# define RADEON_CHROMA_KEY_ZERO (1 << 18) 73# define RADEON_SHADOW_ID_AUTO_INC (1 << 20) 74# define RADEON_SHADOW_FUNC_EQUAL (0 << 21) 75# define RADEON_SHADOW_FUNC_NEQUAL (1 << 21) 76# define RADEON_SHADOW_PASS_1 (0 << 22) 77# define RADEON_SHADOW_PASS_2 (1 << 22) 78# define RADEON_RIGHT_HAND_CUBE_D3D (0 << 24) 79# define RADEON_RIGHT_HAND_CUBE_OGL (1 << 24) 80#define RADEON_PP_ROT_MATRIX_0 0x1d58 81#define RADEON_PP_ROT_MATRIX_1 0x1d5c 82#define RADEON_PP_TXFILTER_0 0x1c54 83#define RADEON_PP_TXFILTER_1 0x1c6c 84#define RADEON_PP_TXFILTER_2 0x1c84 85# define RADEON_MAG_FILTER_NEAREST (0 << 0) 86# define RADEON_MAG_FILTER_LINEAR (1 << 0) 87# define RADEON_MAG_FILTER_MASK (1 << 0) 88# define RADEON_MIN_FILTER_NEAREST (0 << 1) 89# define RADEON_MIN_FILTER_LINEAR (1 << 1) 90# define RADEON_MIN_FILTER_NEAREST_MIP_NEAREST (2 << 1) 91# define RADEON_MIN_FILTER_NEAREST_MIP_LINEAR (3 << 1) 92# define RADEON_MIN_FILTER_LINEAR_MIP_NEAREST (6 << 1) 93# define RADEON_MIN_FILTER_LINEAR_MIP_LINEAR (7 << 1) 94# define RADEON_MIN_FILTER_ANISO_NEAREST (8 << 1) 95# define RADEON_MIN_FILTER_ANISO_LINEAR (9 << 1) 96# define RADEON_MIN_FILTER_ANISO_NEAREST_MIP_NEAREST (10 << 1) 97# define RADEON_MIN_FILTER_ANISO_NEAREST_MIP_LINEAR (11 << 1) 98# define RADEON_MIN_FILTER_MASK (15 << 1) 99# define RADEON_LOD_BIAS_MASK (0xffff << 8) 100# define RADEON_LOD_BIAS_SHIFT 8 101# define RADEON_MAX_MIP_LEVEL_MASK (0x0f << 16) 102# define RADEON_MAX_MIP_LEVEL_SHIFT 16 103# define RADEON_WRAPEN_S (1 << 22) 104# define RADEON_CLAMP_S_WRAP (0 << 23) 105# define RADEON_CLAMP_S_MIRROR (1 << 23) 106# define RADEON_CLAMP_S_CLAMP_LAST (2 << 23) 107# define RADEON_CLAMP_S_MIRROR_CLAMP_LAST (3 << 23) 108# define RADEON_CLAMP_S_CLAMP_BORDER (4 << 23) 109# define RADEON_CLAMP_S_MIRROR_CLAMP_BORDER (5 << 23) 110# define RADEON_CLAMP_S_MASK (7 << 23) 111# define RADEON_WRAPEN_T (1 << 26) 112# define RADEON_CLAMP_T_WRAP (0 << 27) 113# define RADEON_CLAMP_T_MIRROR (1 << 27) 114# define RADEON_CLAMP_T_CLAMP_LAST (2 << 27) 115# define RADEON_CLAMP_T_MIRROR_CLAMP_LAST (3 << 27) 116# define RADEON_CLAMP_T_CLAMP_BORDER (4 << 27) 117# define RADEON_CLAMP_T_MIRROR_CLAMP_BORDER (5 << 27) 118# define RADEON_CLAMP_T_MASK (7 << 27) 119# define RADEON_BORDER_MODE_OGL (0 << 31) 120# define RADEON_BORDER_MODE_D3D (1 << 31) 121#define RADEON_PP_TXFORMAT_0 0x1c58 122#define RADEON_PP_TXFORMAT_1 0x1c70 123#define RADEON_PP_TXFORMAT_2 0x1c88 124# define RADEON_TXFORMAT_I8 (0 << 0) 125# define RADEON_TXFORMAT_AI88 (1 << 0) 126# define RADEON_TXFORMAT_RGB332 (2 << 0) 127# define RADEON_TXFORMAT_ARGB1555 (3 << 0) 128# define RADEON_TXFORMAT_RGB565 (4 << 0) 129# define RADEON_TXFORMAT_ARGB4444 (5 << 0) 130# define RADEON_TXFORMAT_ARGB8888 (6 << 0) 131# define RADEON_TXFORMAT_RGBA8888 (7 << 0) 132# define RADEON_TXFORMAT_Y8 (8 << 0) 133# define RADEON_TXFORMAT_FORMAT_MASK (31 << 0) 134# define RADEON_TXFORMAT_FORMAT_SHIFT 0 135# define RADEON_TXFORMAT_APPLE_YUV_MODE (1 << 5) 136# define RADEON_TXFORMAT_ALPHA_IN_MAP (1 << 6) 137# define RADEON_TXFORMAT_NON_POWER2 (1 << 7) 138# define RADEON_TXFORMAT_WIDTH_MASK (15 << 8) 139# define RADEON_TXFORMAT_WIDTH_SHIFT 8 140# define RADEON_TXFORMAT_HEIGHT_MASK (15 << 12) 141# define RADEON_TXFORMAT_HEIGHT_SHIFT 12 142# define RADEON_TXFORMAT_ST_ROUTE_STQ0 (0 << 24) 143# define RADEON_TXFORMAT_ST_ROUTE_MASK (3 << 24) 144# define RADEON_TXFORMAT_ST_ROUTE_STQ1 (1 << 24) 145# define RADEON_TXFORMAT_ST_ROUTE_STQ2 (2 << 24) 146# define RADEON_TXFORMAT_ENDIAN_NO_SWAP (0 << 26) 147# define RADEON_TXFORMAT_ENDIAN_16BPP_SWAP (1 << 26) 148# define RADEON_TXFORMAT_ENDIAN_32BPP_SWAP (2 << 26) 149# define RADEON_TXFORMAT_ENDIAN_HALFDW_SWAP (3 << 26) 150# define RADEON_TXFORMAT_ALPHA_MASK_ENABLE (1 << 28) 151# define RADEON_TXFORMAT_CHROMA_KEY_ENABLE (1 << 29) 152# define RADEON_TXFORMAT_CUBIC_MAP_ENABLE (1 << 30) 153# define RADEON_TXFORMAT_PERSPECTIVE_ENABLE (1 << 31) 154#define RADEON_PP_TXOFFSET_0 0x1c5c 155#define RADEON_PP_TXOFFSET_1 0x1c74 156#define RADEON_PP_TXOFFSET_2 0x1c8c 157# define RADEON_TXO_ENDIAN_NO_SWAP (0 << 0) 158# define RADEON_TXO_ENDIAN_BYTE_SWAP (1 << 0) 159# define RADEON_TXO_ENDIAN_WORD_SWAP (2 << 0) 160# define RADEON_TXO_ENDIAN_HALFDW_SWAP (3 << 0) 161# define RADEON_TXO_MACRO_LINEAR (0 << 2) 162# define RADEON_TXO_MACRO_TILE (1 << 2) 163# define RADEON_TXO_MICRO_LINEAR (0 << 3) 164# define RADEON_TXO_MICRO_TILE_X2 (1 << 3) 165# define RADEON_TXO_MICRO_TILE_OPT (2 << 3) 166# define RADEON_TXO_OFFSET_MASK 0xffffffe0 167# define RADEON_TXO_OFFSET_SHIFT 5 168#define RADEON_PP_TXCBLEND_0 0x1c60 169#define RADEON_PP_TXCBLEND_1 0x1c78 170#define RADEON_PP_TXCBLEND_2 0x1c90 171# define RADEON_COLOR_ARG_A_SHIFT 0 172# define RADEON_COLOR_ARG_A_MASK (0x1f << 0) 173# define RADEON_COLOR_ARG_A_ZERO (0 << 0) 174# define RADEON_COLOR_ARG_A_CURRENT_COLOR (2 << 0) 175# define RADEON_COLOR_ARG_A_CURRENT_ALPHA (3 << 0) 176# define RADEON_COLOR_ARG_A_DIFFUSE_COLOR (4 << 0) 177# define RADEON_COLOR_ARG_A_DIFFUSE_ALPHA (5 << 0) 178# define RADEON_COLOR_ARG_A_SPECULAR_COLOR (6 << 0) 179# define RADEON_COLOR_ARG_A_SPECULAR_ALPHA (7 << 0) 180# define RADEON_COLOR_ARG_A_TFACTOR_COLOR (8 << 0) 181# define RADEON_COLOR_ARG_A_TFACTOR_ALPHA (9 << 0) 182# define RADEON_COLOR_ARG_A_T0_COLOR (10 << 0) 183# define RADEON_COLOR_ARG_A_T0_ALPHA (11 << 0) 184# define RADEON_COLOR_ARG_A_T1_COLOR (12 << 0) 185# define RADEON_COLOR_ARG_A_T1_ALPHA (13 << 0) 186# define RADEON_COLOR_ARG_A_T2_COLOR (14 << 0) 187# define RADEON_COLOR_ARG_A_T2_ALPHA (15 << 0) 188# define RADEON_COLOR_ARG_A_T3_COLOR (16 << 0) 189# define RADEON_COLOR_ARG_A_T3_ALPHA (17 << 0) 190# define RADEON_COLOR_ARG_B_SHIFT 5 191# define RADEON_COLOR_ARG_B_MASK (0x1f << 5) 192# define RADEON_COLOR_ARG_B_ZERO (0 << 5) 193# define RADEON_COLOR_ARG_B_CURRENT_COLOR (2 << 5) 194# define RADEON_COLOR_ARG_B_CURRENT_ALPHA (3 << 5) 195# define RADEON_COLOR_ARG_B_DIFFUSE_COLOR (4 << 5) 196# define RADEON_COLOR_ARG_B_DIFFUSE_ALPHA (5 << 5) 197# define RADEON_COLOR_ARG_B_SPECULAR_COLOR (6 << 5) 198# define RADEON_COLOR_ARG_B_SPECULAR_ALPHA (7 << 5) 199# define RADEON_COLOR_ARG_B_TFACTOR_COLOR (8 << 5) 200# define RADEON_COLOR_ARG_B_TFACTOR_ALPHA (9 << 5) 201# define RADEON_COLOR_ARG_B_T0_COLOR (10 << 5) 202# define RADEON_COLOR_ARG_B_T0_ALPHA (11 << 5) 203# define RADEON_COLOR_ARG_B_T1_COLOR (12 << 5) 204# define RADEON_COLOR_ARG_B_T1_ALPHA (13 << 5) 205# define RADEON_COLOR_ARG_B_T2_COLOR (14 << 5) 206# define RADEON_COLOR_ARG_B_T2_ALPHA (15 << 5) 207# define RADEON_COLOR_ARG_B_T3_COLOR (16 << 5) 208# define RADEON_COLOR_ARG_B_T3_ALPHA (17 << 5) 209# define RADEON_COLOR_ARG_C_SHIFT 10 210# define RADEON_COLOR_ARG_C_MASK (0x1f << 10) 211# define RADEON_COLOR_ARG_C_ZERO (0 << 10) 212# define RADEON_COLOR_ARG_C_CURRENT_COLOR (2 << 10) 213# define RADEON_COLOR_ARG_C_CURRENT_ALPHA (3 << 10) 214# define RADEON_COLOR_ARG_C_DIFFUSE_COLOR (4 << 10) 215# define RADEON_COLOR_ARG_C_DIFFUSE_ALPHA (5 << 10) 216# define RADEON_COLOR_ARG_C_SPECULAR_COLOR (6 << 10) 217# define RADEON_COLOR_ARG_C_SPECULAR_ALPHA (7 << 10) 218# define RADEON_COLOR_ARG_C_TFACTOR_COLOR (8 << 10) 219# define RADEON_COLOR_ARG_C_TFACTOR_ALPHA (9 << 10) 220# define RADEON_COLOR_ARG_C_T0_COLOR (10 << 10) 221# define RADEON_COLOR_ARG_C_T0_ALPHA (11 << 10) 222# define RADEON_COLOR_ARG_C_T1_COLOR (12 << 10) 223# define RADEON_COLOR_ARG_C_T1_ALPHA (13 << 10) 224# define RADEON_COLOR_ARG_C_T2_COLOR (14 << 10) 225# define RADEON_COLOR_ARG_C_T2_ALPHA (15 << 10) 226# define RADEON_COLOR_ARG_C_T3_COLOR (16 << 10) 227# define RADEON_COLOR_ARG_C_T3_ALPHA (17 << 10) 228# define RADEON_COMP_ARG_A (1 << 15) 229# define RADEON_COMP_ARG_A_SHIFT 15 230# define RADEON_COMP_ARG_B (1 << 16) 231# define RADEON_COMP_ARG_B_SHIFT 16 232# define RADEON_COMP_ARG_C (1 << 17) 233# define RADEON_COMP_ARG_C_SHIFT 17 234# define RADEON_BLEND_CTL_MASK (7 << 18) 235# define RADEON_BLEND_CTL_ADD (0 << 18) 236# define RADEON_BLEND_CTL_SUBTRACT (1 << 18) 237# define RADEON_BLEND_CTL_ADDSIGNED (2 << 18) 238# define RADEON_BLEND_CTL_BLEND (3 << 18) 239# define RADEON_BLEND_CTL_DOT3 (4 << 18) 240# define RADEON_SCALE_SHIFT 21 241# define RADEON_SCALE_MASK (3 << 21) 242# define RADEON_SCALE_1X (0 << 21) 243# define RADEON_SCALE_2X (1 << 21) 244# define RADEON_SCALE_4X (2 << 21) 245# define RADEON_CLAMP_TX (1 << 23) 246# define RADEON_T0_EQ_TCUR (1 << 24) 247# define RADEON_T1_EQ_TCUR (1 << 25) 248# define RADEON_T2_EQ_TCUR (1 << 26) 249# define RADEON_T3_EQ_TCUR (1 << 27) 250# define RADEON_COLOR_ARG_MASK 0x1f 251# define RADEON_COMP_ARG_SHIFT 15 252#define RADEON_PP_TXABLEND_0 0x1c64 253#define RADEON_PP_TXABLEND_1 0x1c7c 254#define RADEON_PP_TXABLEND_2 0x1c94 255# define RADEON_ALPHA_ARG_A_SHIFT 0 256# define RADEON_ALPHA_ARG_A_MASK (0xf << 0) 257# define RADEON_ALPHA_ARG_A_ZERO (0 << 0) 258# define RADEON_ALPHA_ARG_A_CURRENT_ALPHA (1 << 0) 259# define RADEON_ALPHA_ARG_A_DIFFUSE_ALPHA (2 << 0) 260# define RADEON_ALPHA_ARG_A_SPECULAR_ALPHA (3 << 0) 261# define RADEON_ALPHA_ARG_A_TFACTOR_ALPHA (4 << 0) 262# define RADEON_ALPHA_ARG_A_T0_ALPHA (5 << 0) 263# define RADEON_ALPHA_ARG_A_T1_ALPHA (6 << 0) 264# define RADEON_ALPHA_ARG_A_T2_ALPHA (7 << 0) 265# define RADEON_ALPHA_ARG_A_T3_ALPHA (8 << 0) 266# define RADEON_ALPHA_ARG_B_SHIFT 4 267# define RADEON_ALPHA_ARG_B_MASK (0xf << 4) 268# define RADEON_ALPHA_ARG_B_ZERO (0 << 4) 269# define RADEON_ALPHA_ARG_B_CURRENT_ALPHA (1 << 4) 270# define RADEON_ALPHA_ARG_B_DIFFUSE_ALPHA (2 << 4) 271# define RADEON_ALPHA_ARG_B_SPECULAR_ALPHA (3 << 4) 272# define RADEON_ALPHA_ARG_B_TFACTOR_ALPHA (4 << 4) 273# define RADEON_ALPHA_ARG_B_T0_ALPHA (5 << 4) 274# define RADEON_ALPHA_ARG_B_T1_ALPHA (6 << 4) 275# define RADEON_ALPHA_ARG_B_T2_ALPHA (7 << 4) 276# define RADEON_ALPHA_ARG_B_T3_ALPHA (8 << 4) 277# define RADEON_ALPHA_ARG_C_SHIFT 8 278# define RADEON_ALPHA_ARG_C_MASK (0xf << 8) 279# define RADEON_ALPHA_ARG_C_ZERO (0 << 8) 280# define RADEON_ALPHA_ARG_C_CURRENT_ALPHA (1 << 8) 281# define RADEON_ALPHA_ARG_C_DIFFUSE_ALPHA (2 << 8) 282# define RADEON_ALPHA_ARG_C_SPECULAR_ALPHA (3 << 8) 283# define RADEON_ALPHA_ARG_C_TFACTOR_ALPHA (4 << 8) 284# define RADEON_ALPHA_ARG_C_T0_ALPHA (5 << 8) 285# define RADEON_ALPHA_ARG_C_T1_ALPHA (6 << 8) 286# define RADEON_ALPHA_ARG_C_T2_ALPHA (7 << 8) 287# define RADEON_ALPHA_ARG_C_T3_ALPHA (8 << 8) 288# define RADEON_DOT_ALPHA_DONT_REPLICATE (1 << 9) 289# define RADEON_ALPHA_ARG_MASK 0xf 290 291#define RADEON_PP_TFACTOR_0 0x1c68 292#define RADEON_PP_TFACTOR_1 0x1c80 293#define RADEON_PP_TFACTOR_2 0x1c98 294 295#define RADEON_RB3D_BLENDCNTL 0x1c20 296# define RADEON_COMB_FCN_ADD_CLAMP (0 << 12) 297# define RADEON_COMB_FCN_ADD_NOCLAMP (1 << 12) 298# define RADEON_COMB_FCN_SUB_CLAMP (2 << 12) 299# define RADEON_COMB_FCN_SUB_NOCLAMP (3 << 12) 300# define RADEON_SRC_BLEND_GL_ZERO (32 << 16) 301# define RADEON_SRC_BLEND_GL_ONE (33 << 16) 302# define RADEON_SRC_BLEND_GL_SRC_COLOR (34 << 16) 303# define RADEON_SRC_BLEND_GL_ONE_MINUS_SRC_COLOR (35 << 16) 304# define RADEON_SRC_BLEND_GL_DST_COLOR (36 << 16) 305# define RADEON_SRC_BLEND_GL_ONE_MINUS_DST_COLOR (37 << 16) 306# define RADEON_SRC_BLEND_GL_SRC_ALPHA (38 << 16) 307# define RADEON_SRC_BLEND_GL_ONE_MINUS_SRC_ALPHA (39 << 16) 308# define RADEON_SRC_BLEND_GL_DST_ALPHA (40 << 16) 309# define RADEON_SRC_BLEND_GL_ONE_MINUS_DST_ALPHA (41 << 16) 310# define RADEON_SRC_BLEND_GL_SRC_ALPHA_SATURATE (42 << 16) 311# define RADEON_SRC_BLEND_MASK (63 << 16) 312# define RADEON_DST_BLEND_GL_ZERO (32 << 24) 313# define RADEON_DST_BLEND_GL_ONE (33 << 24) 314# define RADEON_DST_BLEND_GL_SRC_COLOR (34 << 24) 315# define RADEON_DST_BLEND_GL_ONE_MINUS_SRC_COLOR (35 << 24) 316# define RADEON_DST_BLEND_GL_DST_COLOR (36 << 24) 317# define RADEON_DST_BLEND_GL_ONE_MINUS_DST_COLOR (37 << 24) 318# define RADEON_DST_BLEND_GL_SRC_ALPHA (38 << 24) 319# define RADEON_DST_BLEND_GL_ONE_MINUS_SRC_ALPHA (39 << 24) 320# define RADEON_DST_BLEND_GL_DST_ALPHA (40 << 24) 321# define RADEON_DST_BLEND_GL_ONE_MINUS_DST_ALPHA (41 << 24) 322# define RADEON_DST_BLEND_MASK (63 << 24) 323#define RADEON_RB3D_CNTL 0x1c3c 324# define RADEON_ALPHA_BLEND_ENABLE (1 << 0) 325# define RADEON_PLANE_MASK_ENABLE (1 << 1) 326# define RADEON_DITHER_ENABLE (1 << 2) 327# define RADEON_ROUND_ENABLE (1 << 3) 328# define RADEON_SCALE_DITHER_ENABLE (1 << 4) 329# define RADEON_DITHER_INIT (1 << 5) 330# define RADEON_ROP_ENABLE (1 << 6) 331# define RADEON_STENCIL_ENABLE (1 << 7) 332# define RADEON_Z_ENABLE (1 << 8) 333# define RADEON_DEPTH_XZ_OFFEST_ENABLE (1 << 9) 334# define RADEON_COLOR_FORMAT_ARGB1555 (3 << 10) 335# define RADEON_COLOR_FORMAT_RGB565 (4 << 10) 336# define RADEON_COLOR_FORMAT_ARGB8888 (6 << 10) 337# define RADEON_COLOR_FORMAT_RGB332 (7 << 10) 338# define RADEON_COLOR_FORMAT_Y8 (8 << 10) 339# define RADEON_COLOR_FORMAT_RGB8 (9 << 10) 340# define RADEON_COLOR_FORMAT_YUV422_VYUY (11 << 10) 341# define RADEON_COLOR_FORMAT_YUV422_YVYU (12 << 10) 342# define RADEON_COLOR_FORMAT_aYUV444 (14 << 10) 343# define RADEON_COLOR_FORMAT_ARGB4444 (15 << 10) 344# define RADEON_CLRCMP_FLIP_ENABLE (1 << 14) 345# define RADEON_ZBLOCK8 (0 << 15) 346# define RADEON_ZBLOCK16 (1 << 15) 347#define RADEON_RB3D_COLOROFFSET 0x1c40 348# define RADEON_COLOROFFSET_MASK 0xfffffff0 349#define RADEON_RB3D_COLORPITCH 0x1c48 350# define RADEON_COLORPITCH_MASK 0x000001ff8 351# define RADEON_COLOR_TILE_ENABLE (1 << 16) 352# define RADEON_COLOR_MICROTILE_ENABLE (1 << 17) 353# define RADEON_COLOR_ENDIAN_NO_SWAP (0 << 18) 354# define RADEON_COLOR_ENDIAN_WORD_SWAP (1 << 18) 355# define RADEON_COLOR_ENDIAN_DWORD_SWAP (2 << 18) 356#define RADEON_RB3D_DEPTHOFFSET 0x1c24 357#define RADEON_RB3D_DEPTHPITCH 0x1c28 358# define RADEON_DEPTHPITCH_MASK 0x00001ff8 359# define RADEON_DEPTH_ENDIAN_NO_SWAP (0 << 18) 360# define RADEON_DEPTH_ENDIAN_WORD_SWAP (1 << 18) 361# define RADEON_DEPTH_ENDIAN_DWORD_SWAP (2 << 18) 362#define RADEON_RB3D_PLANEMASK 0x1d84 363#define RADEON_RB3D_ROPCNTL 0x1d80 364#define RADEON_RB3D_STENCILREFMASK 0x1d7c 365# define RADEON_STENCIL_REF_SHIFT 0 366# define RADEON_STENCIL_MASK_SHIFT 16 367# define RADEON_STENCIL_WRITEMASK_SHIFT 24 368#define RADEON_RB3D_ZSTENCILCNTL 0x1c2c 369# define RADEON_DEPTH_FORMAT_MASK (0xf << 0) 370# define RADEON_DEPTH_FORMAT_16BIT_INT_Z (0 << 0) 371# define RADEON_DEPTH_FORMAT_24BIT_INT_Z (2 << 0) 372# define RADEON_DEPTH_FORMAT_24BIT_FLOAT_Z (3 << 0) 373# define RADEON_DEPTH_FORMAT_32BIT_INT_Z (4 << 0) 374# define RADEON_DEPTH_FORMAT_32BIT_FLOAT_Z (5 << 0) 375# define RADEON_DEPTH_FORMAT_16BIT_FLOAT_W (7 << 0) 376# define RADEON_DEPTH_FORMAT_24BIT_FLOAT_W (9 << 0) 377# define RADEON_DEPTH_FORMAT_32BIT_FLOAT_W (11 << 0) 378# define RADEON_Z_TEST_NEVER (0 << 4) 379# define RADEON_Z_TEST_LESS (1 << 4) 380# define RADEON_Z_TEST_LEQUAL (2 << 4) 381# define RADEON_Z_TEST_EQUAL (3 << 4) 382# define RADEON_Z_TEST_GEQUAL (4 << 4) 383# define RADEON_Z_TEST_GREATER (5 << 4) 384# define RADEON_Z_TEST_NEQUAL (6 << 4) 385# define RADEON_Z_TEST_ALWAYS (7 << 4) 386# define RADEON_Z_TEST_MASK (7 << 4) 387# define RADEON_HIERARCHICAL_Z_ENABLE (1 << 8) 388# define RADEON_STENCIL_TEST_NEVER (0 << 12) 389# define RADEON_STENCIL_TEST_LESS (1 << 12) 390# define RADEON_STENCIL_TEST_LEQUAL (2 << 12) 391# define RADEON_STENCIL_TEST_EQUAL (3 << 12) 392# define RADEON_STENCIL_TEST_GEQUAL (4 << 12) 393# define RADEON_STENCIL_TEST_GREATER (5 << 12) 394# define RADEON_STENCIL_TEST_NEQUAL (6 << 12) 395# define RADEON_STENCIL_TEST_ALWAYS (7 << 12) 396# define RADEON_STENCIL_S_FAIL_KEEP (0 << 16) 397# define RADEON_STENCIL_S_FAIL_ZERO (1 << 16) 398# define RADEON_STENCIL_S_FAIL_REPLACE (2 << 16) 399# define RADEON_STENCIL_S_FAIL_INC (3 << 16) 400# define RADEON_STENCIL_S_FAIL_DEC (4 << 16) 401# define RADEON_STENCIL_S_FAIL_INVERT (5 << 16) 402# define RADEON_STENCIL_ZPASS_KEEP (0 << 20) 403# define RADEON_STENCIL_ZPASS_ZERO (1 << 20) 404# define RADEON_STENCIL_ZPASS_REPLACE (2 << 20) 405# define RADEON_STENCIL_ZPASS_INC (3 << 20) 406# define RADEON_STENCIL_ZPASS_DEC (4 << 20) 407# define RADEON_STENCIL_ZPASS_INVERT (5 << 20) 408# define RADEON_STENCIL_ZFAIL_KEEP (0 << 20) 409# define RADEON_STENCIL_ZFAIL_ZERO (1 << 20) 410# define RADEON_STENCIL_ZFAIL_REPLACE (2 << 20) 411# define RADEON_STENCIL_ZFAIL_INC (3 << 20) 412# define RADEON_STENCIL_ZFAIL_DEC (4 << 20) 413# define RADEON_STENCIL_ZFAIL_INVERT (5 << 20) 414# define RADEON_Z_COMPRESSION_ENABLE (1 << 28) 415# define RADEON_FORCE_Z_DIRTY (1 << 29) 416# define RADEON_Z_WRITE_ENABLE (1 << 30) 417# define RADEON_Z_DECOMPRESSION_ENABLE (1 << 31) 418#define RADEON_RE_LINE_PATTERN 0x1cd0 419# define RADEON_LINE_PATTERN_MASK 0x0000ffff 420# define RADEON_LINE_REPEAT_COUNT_SHIFT 16 421# define RADEON_LINE_PATTERN_START_SHIFT 24 422# define RADEON_LINE_PATTERN_LITTLE_BIT_ORDER (0 << 28) 423# define RADEON_LINE_PATTERN_BIG_BIT_ORDER (1 << 28) 424# define RADEON_LINE_PATTERN_AUTO_RESET (1 << 29) 425#define RADEON_RE_LINE_STATE 0x1cd4 426# define RADEON_LINE_CURRENT_PTR_SHIFT 0 427# define RADEON_LINE_CURRENT_COUNT_SHIFT 8 428#define RADEON_RE_MISC 0x26c4 429# define RADEON_STIPPLE_COORD_MASK 0x1f 430# define RADEON_STIPPLE_X_OFFSET_SHIFT 0 431# define RADEON_STIPPLE_X_OFFSET_MASK (0x1f << 0) 432# define RADEON_STIPPLE_Y_OFFSET_SHIFT 8 433# define RADEON_STIPPLE_Y_OFFSET_MASK (0x1f << 8) 434# define RADEON_STIPPLE_LITTLE_BIT_ORDER (0 << 16) 435# define RADEON_STIPPLE_BIG_BIT_ORDER (1 << 16) 436#define RADEON_RE_SOLID_COLOR 0x1c1c 437#define RADEON_RE_TOP_LEFT 0x26c0 438# define RADEON_RE_LEFT_SHIFT 0 439# define RADEON_RE_TOP_SHIFT 16 440#define RADEON_RE_WIDTH_HEIGHT 0x1c44 441# define RADEON_RE_WIDTH_SHIFT 0 442# define RADEON_RE_HEIGHT_SHIFT 16 443 444#define RADEON_SE_CNTL 0x1c4c 445# define RADEON_FFACE_CULL_CW (0 << 0) 446# define RADEON_FFACE_CULL_CCW (1 << 0) 447# define RADEON_FFACE_CULL_DIR_MASK (1 << 0) 448# define RADEON_BFACE_CULL (0 << 1) 449# define RADEON_BFACE_SOLID (3 << 1) 450# define RADEON_FFACE_CULL (0 << 3) 451# define RADEON_FFACE_SOLID (3 << 3) 452# define RADEON_FFACE_CULL_MASK (3 << 3) 453# define RADEON_BADVTX_CULL_DISABLE (1 << 5) 454# define RADEON_FLAT_SHADE_VTX_0 (0 << 6) 455# define RADEON_FLAT_SHADE_VTX_1 (1 << 6) 456# define RADEON_FLAT_SHADE_VTX_2 (2 << 6) 457# define RADEON_FLAT_SHADE_VTX_LAST (3 << 6) 458# define RADEON_DIFFUSE_SHADE_SOLID (0 << 8) 459# define RADEON_DIFFUSE_SHADE_FLAT (1 << 8) 460# define RADEON_DIFFUSE_SHADE_GOURAUD (2 << 8) 461# define RADEON_DIFFUSE_SHADE_MASK (3 << 8) 462# define RADEON_ALPHA_SHADE_SOLID (0 << 10) 463# define RADEON_ALPHA_SHADE_FLAT (1 << 10) 464# define RADEON_ALPHA_SHADE_GOURAUD (2 << 10) 465# define RADEON_ALPHA_SHADE_MASK (3 << 10) 466# define RADEON_SPECULAR_SHADE_SOLID (0 << 12) 467# define RADEON_SPECULAR_SHADE_FLAT (1 << 12) 468# define RADEON_SPECULAR_SHADE_GOURAUD (2 << 12) 469# define RADEON_SPECULAR_SHADE_MASK (3 << 12) 470# define RADEON_FOG_SHADE_SOLID (0 << 14) 471# define RADEON_FOG_SHADE_FLAT (1 << 14) 472# define RADEON_FOG_SHADE_GOURAUD (2 << 14) 473# define RADEON_FOG_SHADE_MASK (3 << 14) 474# define RADEON_ZBIAS_ENABLE_POINT (1 << 16) 475# define RADEON_ZBIAS_ENABLE_LINE (1 << 17) 476# define RADEON_ZBIAS_ENABLE_TRI (1 << 18) 477# define RADEON_WIDELINE_ENABLE (1 << 20) 478# define RADEON_VPORT_XY_XFORM_ENABLE (1 << 24) 479# define RADEON_VPORT_Z_XFORM_ENABLE (1 << 25) 480# define RADEON_VTX_PIX_CENTER_D3D (0 << 27) 481# define RADEON_VTX_PIX_CENTER_OGL (1 << 27) 482# define RADEON_ROUND_MODE_TRUNC (0 << 28) 483# define RADEON_ROUND_MODE_ROUND (1 << 28) 484# define RADEON_ROUND_MODE_ROUND_EVEN (2 << 28) 485# define RADEON_ROUND_MODE_ROUND_ODD (3 << 28) 486# define RADEON_ROUND_PREC_16TH_PIX (0 << 30) 487# define RADEON_ROUND_PREC_8TH_PIX (1 << 30) 488# define RADEON_ROUND_PREC_4TH_PIX (2 << 30) 489# define RADEON_ROUND_PREC_HALF_PIX (3 << 30) 490#define RADEON_SE_CNTL_STATUS 0x2140 491# define RADEON_VC_NO_SWAP (0 << 0) 492# define RADEON_VC_16BIT_SWAP (1 << 0) 493# define RADEON_VC_32BIT_SWAP (2 << 0) 494# define RADEON_VC_HALF_DWORD_SWAP (3 << 0) 495# define RADEON_TCL_BYPASS (1 << 8) 496#define RADEON_SE_COORD_FMT 0x15c0 497# define RADEON_VTX_XY_PRE_MULT_1_OVER_W0 (1 << 0) 498# define RADEON_VTX_Z_PRE_MULT_1_OVER_W0 (1 << 1) 499# define RADEON_VTX_ST0_NONPARAMETRIC (1 << 8) 500# define RADEON_VTX_ST1_NONPARAMETRIC (1 << 9) 501# define RADEON_VTX_ST2_NONPARAMETRIC (1 << 10) 502# define RADEON_VTX_ST3_NONPARAMETRIC (1 << 11) 503# define RADEON_VTX_W0_NORMALIZE (1 << 12) 504# define RADEON_VTX_W0_IS_NOT_1_OVER_W0 (1 << 16) 505# define RADEON_VTX_ST0_PRE_MULT_1_OVER_W0 (1 << 17) 506# define RADEON_VTX_ST1_PRE_MULT_1_OVER_W0 (1 << 19) 507# define RADEON_VTX_ST2_PRE_MULT_1_OVER_W0 (1 << 21) 508# define RADEON_VTX_ST3_PRE_MULT_1_OVER_W0 (1 << 23) 509# define RADEON_TEX1_W_ROUTING_USE_W0 (0 << 26) 510# define RADEON_TEX1_W_ROUTING_USE_Q1 (1 << 26) 511#define RADEON_SE_LINE_WIDTH 0x1db8 512#define RADEON_SE_TCL_LIGHT_MODEL_CTL 0x226c 513#define RADEON_SE_TCL_MATERIAL_AMBIENT_RED 0x2220 514#define RADEON_SE_TCL_MATERIAL_AMBIENT_GREEN 0x2224 515#define RADEON_SE_TCL_MATERIAL_AMBIENT_BLUE 0x2228 516#define RADEON_SE_TCL_MATERIAL_AMBIENT_ALPHA 0x222c 517#define RADEON_SE_TCL_MATERIAL_DIFFUSE_RED 0x2230 518#define RADEON_SE_TCL_MATERIAL_DIFFUSE_GREEN 0x2234 519#define RADEON_SE_TCL_MATERIAL_DIFFUSE_BLUE 0x2238 520#define RADEON_SE_TCL_MATERIAL_DIFFUSE_ALPHA 0x223c 521#define RADEON_SE_TCL_MATERIAL_EMMISSIVE_RED 0x2210 522#define RADEON_SE_TCL_MATERIAL_EMMISSIVE_GREEN 0x2214 523#define RADEON_SE_TCL_MATERIAL_EMMISSIVE_BLUE 0x2218 524#define RADEON_SE_TCL_MATERIAL_EMMISSIVE_ALPHA 0x221c 525#define RADEON_SE_TCL_MATERIAL_SPECULAR_RED 0x2240 526#define RADEON_SE_TCL_MATERIAL_SPECULAR_GREEN 0x2244 527#define RADEON_SE_TCL_MATERIAL_SPECULAR_BLUE 0x2248 528#define RADEON_SE_TCL_MATERIAL_SPECULAR_ALPHA 0x224c 529#define RADEON_SE_TCL_MATRIX_SELECT_0 0x225c 530#define RADEON_SE_TCL_MATRIX_SELECT_1 0x2260 531#define RADEON_SE_TCL_OUTPUT_VTX_FMT 0x2254 532#define RADEON_SE_TCL_OUTPUT_VTX_SEL 0x2258 533#define RADEON_SE_TCL_PER_LIGHT_CTL_0 0x2270 534#define RADEON_SE_TCL_PER_LIGHT_CTL_1 0x2274 535#define RADEON_SE_TCL_PER_LIGHT_CTL_2 0x2278 536#define RADEON_SE_TCL_PER_LIGHT_CTL_3 0x227c 537#define RADEON_SE_TCL_SHININESS 0x2250 538#define RADEON_SE_TCL_TEXTURE_PROC_CTL 0x2268 539#define RADEON_SE_TCL_UCP_VERT_BLEND_CTL 0x2264 540#define RADEON_SE_VPORT_XSCALE 0x1d98 541#define RADEON_SE_VPORT_XOFFSET 0x1d9c 542#define RADEON_SE_VPORT_YSCALE 0x1da0 543#define RADEON_SE_VPORT_YOFFSET 0x1da4 544#define RADEON_SE_VPORT_ZSCALE 0x1da8 545#define RADEON_SE_VPORT_ZOFFSET 0x1dac 546 547#define RADEON_CP_VC_FRMT_XY 0x00000000 548#define RADEON_CP_VC_FRMT_W0 0x00000001 549#define RADEON_CP_VC_FRMT_FPCOLOR 0x00000002 550#define RADEON_CP_VC_FRMT_FPALPHA 0x00000004 551#define RADEON_CP_VC_FRMT_PKCOLOR 0x00000008 552#define RADEON_CP_VC_FRMT_FPSPEC 0x00000010 553#define RADEON_CP_VC_FRMT_FPFOG 0x00000020 554#define RADEON_CP_VC_FRMT_PKSPEC 0x00000040 555#define RADEON_CP_VC_FRMT_ST0 0x00000080 556#define RADEON_CP_VC_FRMT_ST1 0x00000100 557#define RADEON_CP_VC_FRMT_Q1 0x00000200 558#define RADEON_CP_VC_FRMT_ST2 0x00000400 559#define RADEON_CP_VC_FRMT_Q2 0x00000800 560#define RADEON_CP_VC_FRMT_ST3 0x00001000 561#define RADEON_CP_VC_FRMT_Q3 0x00002000 562#define RADEON_CP_VC_FRMT_Q0 0x00004000 563#define RADEON_CP_VC_FRMT_BLND_WEIGHT_CNT_MASK 0x00038000 564#define RADEON_CP_VC_FRMT_N0 0x00040000 565#define RADEON_CP_VC_FRMT_XY1 0x08000000 566#define RADEON_CP_VC_FRMT_Z1 0x10000000 567#define RADEON_CP_VC_FRMT_W1 0x20000000 568#define RADEON_CP_VC_FRMT_N1 0x40000000 569#define RADEON_CP_VC_FRMT_Z 0x80000000 570 571#define RADEON_CP_VC_CNTL_PRIM_TYPE_NONE 0x00000000 572#define RADEON_CP_VC_CNTL_PRIM_TYPE_POINT 0x00000001 573#define RADEON_CP_VC_CNTL_PRIM_TYPE_LINE 0x00000002 574#define RADEON_CP_VC_CNTL_PRIM_TYPE_LINE_STRIP 0x00000003 575#define RADEON_CP_VC_CNTL_PRIM_TYPE_TRI_LIST 0x00000004 576#define RADEON_CP_VC_CNTL_PRIM_TYPE_TRI_FAN 0x00000005 577#define RADEON_CP_VC_CNTL_PRIM_TYPE_TRI_STRIP 0x00000006 578#define RADEON_CP_VC_CNTL_PRIM_TYPE_TRI_TYPE2 0x00000007 579#define RADEON_CP_VC_CNTL_PRIM_TYPE_RECT_LIST 0x00000008 580#define RADEON_CP_VC_CNTL_PRIM_TYPE_3VRT_POINT_LIST 0x00000009 581#define RADEON_CP_VC_CNTL_PRIM_TYPE_3VRT_LINE_LIST 0x0000000a 582#define RADEON_CP_VC_CNTL_PRIM_WALK_IND 0x00000010 583#define RADEON_CP_VC_CNTL_PRIM_WALK_LIST 0x00000020 584#define RADEON_CP_VC_CNTL_PRIM_WALK_RING 0x00000030 585#define RADEON_CP_VC_CNTL_COLOR_ORDER_BGRA 0x00000000 586#define RADEON_CP_VC_CNTL_COLOR_ORDER_RGBA 0x00000040 587#define RADEON_CP_VC_CNTL_MAOS_ENABLE 0x00000080 588#define RADEON_CP_VC_CNTL_VTX_FMT_NON_RADEON_MODE 0x00000000 589#define RADEON_CP_VC_CNTL_VTX_FMT_RADEON_MODE 0x00000100 590#define RADEON_CP_VC_CNTL_NUM_SHIFT 16 591 592 593#endif 594